Forum: Mikrocontroller und Digitale Elektronik Frage zu Intel-Hex-File, RecordType 02


von Mike (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

ich versuche gerade, mich ins Intel-Hex-File-Format einzuarbeiten. Wenn
ich mir die Hex-Files meiner AVR-Projekte ansehe, sehe ich dort den
RecordType 02, "Extended Address Segment Record". Kann mir den mal
jemand erklären?

Googlen hat mich zur Beschreibung im Anhang gebracht.

Was ich noch nicht ganz blicke: Welchen Bereich kann ich denn jetzt nun
damit abdecken??? Immer 64kB-Segmente ist klar.
Nicht klar ist, WIEVIELE Segmente ich abdecken kann...
Wer kann helfen???

Mike

von Wolfgang Horn (Gast)


Angehängte Dateien:

Lesenswert?

Hi, Mike,

Du: "Welchen Bereich kann ich denn jetzt nun damit abdecken??? Immer
64kB-Segmente ist klar.
Nicht klar ist, WIEVIELE Segmente ich abdecken kann... Wer kann
helfen???"

Aus dem Dokument: "ULBA: This field contains four ASCII hexadecimal
digits that specify the 16-bit Upper Linear Base Address value.
The high-order byte is the 10th/11th character pair of the record. The
low-order byte is the 12th/13th character pair of the record."

4 ASCII Hex-Digits bedeuten den Bereich von 0x0000 bis 0xffff.

Ciao
Wolfgang Horn

von Günter R. (galileo14)


Lesenswert?

@Mike:

Du kannst mit dem Record-Type 02 zusammen mit den Datenrecords einen
Bereich von etwa bis zu 1 MB (16 * 64K) abdecken. Die endgültige
Adresse berechnet sich wie folgt:

Adresse aus dem Record-Type 00   z.B.   1000
plus Adresse aus Record-Type 02  z.B.  1000

ergibt                                 11000

(alles in Hex), d.h. die Segment-Adresse ist um 4 Bits nach links
verschoben (rechts mit 0 aufgefüllt - so wie es in Deiner Dokumentation
steht)zur Basisadresse addiert; sie gilt solange, bis ein neuer
Record-Typ 02 auftritt; davor ist die Segmentadresse einfach 0000.

Es wird in der Praxis i.d.R. so sein, daß als Segmentadressen nur Werte
auftreten, deren unterste 3 Digits 0 sind, also Werte wie 1000, 2000,
3000, usw., aber eher nicht 137f oder soetwas. Mit dem höchstwertigen
Digit wird also einfach der Basisadresse noch eine höchstwertige Stelle
hinzugefügt, sodaß man letztlich 20 Bits hat und nicht mehr nur 16.

Gruß, Günter

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
Noch kein Account? Hier anmelden.