Hi Leute, kann mir jemand hilfen es zu verstehen wie das Type 04 funktioniert. ich habe die Intel-Hex Dokumentation schon zig mal durch gelesen. alles schoon verstanden bloß der Type 04. Es handelt sich um ein ARM-32 Bit, der mit (µVision Keil) programmiert wird. also die Adressierung sollte im Prinzip 32 bit sein. bei jeder Hex File sieht am Anfang so aus ! :020000040000FA :10000000000200106D01000071010000730100008A :100010007501000077010000790100000000000078 :100020000000000000000000000000007B01000054 danach habe ich in die Konfig vom (µVision Keil) die startadresse wo das Programme geschrieben wird geändert vom 0x000 auf 0x1000. dann sieht das Hex File so aus : :020000040000FA :0402FC00FFFFFFFF02 :020000040000FA :1010000068020010691100006D1100006F110000EE :101010007111000073110000751100000000000044 :101020000000000000000000000000007711000038 so nun was tut der Type 04 in dem Fall ?? danke euch im Vorraus
mourad e. schrieb: > so nun was tut der Type 04 in dem Fall ?? nicht in dem Fall, immer. Er sagt dir mit seinem Datenfeld, welches bei dir 0000 ist, dass du die 16 Bit Adresse im Datenrecord, zb 0020 mit eben diesen im 04 Satz angegebenen 0000 ergänzen sollst um aus der 16 Bit Adresse 0020 die 32 Bit Adresse 00000020 zu machen. Wenn dort gestanden wäre :020000040010FA :1010000068020010691100006D1100006F110000EE dann wäre die 32 Bit Speicheradresse, an der dieser Datensatz abzulegen ist: 00101000 und der nächste Datensatz :101010007111000073110000751100000000000044 soll im Speicher an die Adresse 00101010 usw. usw. einach die 2 Datenbytes vom 04 Datensatz nehmen und vor die im 00 angegebene 2 Byte Startadresse hängen. Das wars dann schon.
@Karl zuerst möchte ich dir danken für die Erklärung, nun fehlt mir leichte das zu verstehen. Außer die Formel, die ich noch nicht klar verstehe. ! (LBA+DRLO+DRI) Modulo 2^32 Wenn in einem Record steht : :02 0000 04 0010 FA also der ULBA = 0x0010 ist klar laut die Doku. Die Adressermittlung der folgenden Type 00 Datensätze erfolgt laut der Formel : > Dein Beispiel > >:020000040010FA >: 10 1000 0068020010691100006D1100006F110000EE also Die Adresse 00101000 = (LBA + DRLO + DRI) Mod 2^32 das einzige was ich von den ersten Record lesen kann ist doch die ULBA( also die höchste 2 Byte der 32 Adresse) 0x0010 dann habe ich mir gedacht die LBA werde von dem Programiere definiert, also angenommen die Adresse 0x2000. was macht der Unterschied zwischen LBA und DRLO ?? oder sind die beide gleich ?
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.