Hallo, kann mir jemand den Hex-Code erklären? Ich vermuhte das die erste 8-Zahlen die Adressen sind, gefolgt 16 Byte Programmcode. Was haben die letzte zwei Zahlen in den Zeilen, und die letzte drei Zeilen zu sagen? :100000000C9446000C9463000C9463000C94630001 :100010000C9463000C9463000C9463000C946300D4 . . :1007900011F0899801C0899AA2DF8898809BFECFCA :0807A0009EDF872F99270895C1 :0A07A8005445535400303030300047 :00000001FF
Am Anfang eines jeden AVR-Programmspeichers stehen die Interrupt-Vektoren, die Du in den ersten zwei Zeilen stehen siehst. Die letzten Stellen sind die Prüfsumme der Zeile
Some more details: > :100000000C9446000C9463000C9463000C94630001 Die Zeile (record) beginnt mit dem Doppelpunkt. Dann folgen zwei Stellen, die die Länge des record anzeigen (hier 10h, also 16 Bytes). Dann vier Stellen Adresse (hier 0000h, erste Programmzeile), zwei Stellen record-Typ (hier 00h, also (Programm-)Daten) und dann die Daten in der vorne angegebenen Länge. Die letzten beiden Stellen sind die Prüfsumme (Checksum) der Zeile. Die letzte Zeile ist ein sog. End of File-record (EOF), der mitteilt, dass die eigentliche Programmdatei hier zu Ende ist. Allgemein: :LL AAAA TT DD [DD.....DD] CC Was im einzelnen in den Datenbytes steht, ist dann Device-abhängig. Wie gesagt, bei den AVRs stehen an den niedrigsten Adressen die Interrupt-Vektoren, die aufgrund der Speichergröße beim Mega128 32 Bit (also 4 Bytes) breit sind. Dann kommt das eigentliche Programm und am Ende das EOF. Kannst ja mal nach Intel-Hex-Format googeln, wenn Du mehr Infos brauchst...
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.