Hallo! Ich suche Informationen über den Aufbau der von WINAVR oder AVRStudio generierten HEX-dateien. Herausgefunden habe ich bereits folgendes: Beispielzeilen: :101E00001FE51DBF12E01EBF8B9A93988C988F9888 :061F40005A95E1F7089537 - die 10 bzw.06 zeigt die Anzahl(in Hex)der Datenbytes in der Zeile an - die nächsten zwei Bytes die Byteadresse des ersten Bytes hier 1E00 bzw. 1F40 - was das folgende Byte (00)beinhaltet weiss ich noch nicht. - jetzt kommen die Datenbytes (hier 16 bzw. 6) - das letzte Byte scheint eine Prüfsumme zu sein. Hab's mit XOR versucht, komme aber irgendwie nicht darauf. Vielleicht ist auch ein anderer Algorithmus. Wer weiß, wo ich Informationen dieses Themas betreffend finden kann? MfG Walter
Aha, Wenn ich jetzt noch herausfinde, wie die Prüfsumme berechnet wird, bin ich zufrieden. Ziel ist es einen Atmel mittels Bootloader auszulesen und die Daten dann in ein Hex-file abzuspeichern. Es sollte mit sich mit Ponyprog wieder öffnen lassen.
Gehst Du www.google.de und gibst Du ein "intel hex". Erster Link: http://www.schulz-koengen.de/biblio/intelhex.htm Manche Leute sind so was von unselbständig...
Außerdem können ordentliche Bedienprogramme für Bootloader natürlich gleich ihex selbst abspeichern...
Na gut, besten Dank. (Hätt ja sein können, das es etwas properietäres gewesen wäre.)
1 | int writehex( FILE *fp, ulong adr, uchar *data, int len ) |
2 | {
|
3 | if( len ){ |
4 | int pruef; |
5 | fprintf( fp, ":%02X%04lX00", len, adr ); |
6 | pruef = len + (adr & 0xFF) + (adr >> 8); |
7 | for(; len--; data++){ |
8 | fprintf( fp, "%02X", *data ); |
9 | pruef += *data; |
10 | }
|
11 | fprintf( fp, "%02X\r\n", -pruef & 0xFF ); |
12 | return 1; |
13 | }
|
14 | fputs( ":00000001FF\r\n", fp ); |
15 | return 1; |
16 | }
|
Peter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.