mikrocontroller.net

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


Autor: Mike (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Wolfgang Horn (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Günter R. (galileo14)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.