HEXit – Linken und CRC

Eine Firmware soll um einen Copyright Text ergänzt werden und anschließend mit einer CRC gesichert werden.
Die Firmware liegt im Intel-Hex Format vor, während die Textdatei im ASCII-Format vorliegt. Das Ergebnis soll als Binärdatei (als Abbild des Flash Memorys) und mit dessen exakter Größe (128kByte) gespeichert werden. Jeder nicht benutzte Speicherplatz soll mit dem Code 0xA5 gefüllt werden. Zum Schluss soll eine CRC-32 berechnet, und in die letzten 4 Byte geschrieben werden.

1. Füllen des imaginären Arbeitsspeichers (128k Byte) mit 0xA5
2. Laden der ursprünglichen Firmware
3. Laden der ASCII-Datei mit dem Offset von 0x16000  
4. Alle Quellen verbinden (Link)
Das Überschreiben wird erlaubt, damit der ursprünglich mit 0xA5 gefüllte Speicher mit der Firmware und dem Text überschreiben werden kann.
5. Wahl des Output Formates Binärdatei
6. Aktivierung der CRC Berechnung
Auswahl des CRC Typs, hier CRC-32. Die CRC darf nicht bis zum Dateiende, sondern nur bis vor der Stelle, an der sie selbst eingebaut wird, berechnet werden. Daher wird als End-Adresse „User defined“ 0x1FFFB gewählt.
7. Einbau der CRC in die Zieldatei
Aktivierung von „Write CRC into file“ an die Adresse 0x1FFFC. Wahl der Reihenfolge MSB.
8. Auswahl des Dateinamen für die Ergebnis-Datei(Firmware_1c.bin)
9. Das Projekt mit Execute ausführen.
In diesem Beispiel wurde eine CRC-Summe von 0x7BB8A65F errechnet
Ein Mausklick auf das CRC Value Feld kopiert das Ergebnis in die Zwischenablage.
Das Ergebnis mit dem File-Analyzer betrachtet: Die in der Datei „eingebaute“ CRC.   Der Copyright-Text Die hellgrüne ausgefüllte Fläche zeigt den mit dem Wert 0xA5 ausgefüllten Bereich   Die Firmware.