Verbinden einer Firmware mit einem Text und anschließender Bildung einer 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.

Vorgehensweise:

Input_A5_Fill

1. Füllen des imaginären Arbeitsspeichers (128k Byte) mit 0xA5

 

FTC_InputText

2. Laden der ursprünglichen Firmware
3. Laden der ASCII-Datei mit dem Offset von 0x16000

 

FTC_Convert

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

 

FTC_CRC_Set

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.

FTC_CRC_Result

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.

FirmwareTextCrcOutput

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.

 

f_uk 

 english

 

 

 

 

Impressum