Frage zu Intel-Hex-File, RecordType 02

Gast #406739
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
Angehängte Dateien:
Gast #406740
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
Angehängte Dateien:
#406741
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren