www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik groesse flash = groese der hex file


Autor: iswald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also angenommen zB ich hab einen Mega32, dann hat der 32KByte flash
speicher. Im Flash wird ja via ISP der Prgrammcode abgelegt in Form
einer *.hex File.
Darf nun bei oben gen. uC die Hex Datei max. 32KByte gross sein oder wo
sind da die Limits?

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Hex Datei ist mehr als doppelt so groß wie der Flash speicher, da
die Daten eben als Hex Code und nicht Binär abgelegt werden.
Ganz grob kann man sagen: Die Hex Datei ist 2-2,5 mal so groß, wie die
wirklichen Daten.

Autor: Dave W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das wäre recht logisch :)

Gehe bei der Größe aber nicht nach der Dateigröße der (Intel-)Hexdatei,
denn da ist noch etwas zusätzlicher Stuff zu den Mnemonics.

Im Spezialfall Bootloader darf es nicht ganz so groß sein.

Autor: iswald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
d.h. heisst meine hex Datei darf 64-80 Kbyte gross werden?
Kann man das nicht irgendwie genauer rauskriegen?

wieso wird denn das prog eig als hex datei abgelegt?
wenn man nun die groesse der binaer datei haette waere das dann genau
entsprechend die groesse des flashspeichers also 32KB?

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> d.h. heisst meine hex Datei darf 64-80 Kbyte gross werden?

Es heißt, daß es dir egal sein sollte, wie groß die Hex-Datei ist.
Wichtig ist, wie groß der Maschinencode ist.

> Kann man das nicht irgendwie genauer rauskriegen?

Du kannst einfach avr-size benutzen, um dir die Größe des Code in Bytes
anzeigen zu lassen.

Autor: iswald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
avr-size main.o
text    data     bss     dec     hex filename
4985      21      41    5047    13b7 main.o


bzw im non berkely format:

iswald@ewald:~> avr-size -A main.o
main.o  :
section          size   addr
.text            3484      0
.data              21      0
.bss               41      0
.stab            7752      0
.stabstr         4186      0
.progmem.data    1501      0
Total           16985


heist das jetzt dass mein uC 16985 Byte Flash braucht um den Code
aufnehmen zu koennen!?

Autor: Thomas O. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
also ich habe einen hex2bin converter falls es dir hilft, damit musste
ich früher meine hexfiles wandeln um sie mit einem Dos commandozeilen
Programm auf den AVR zu flashen.

Autor: Ronny Schulz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist den reell sdas Problem. Das die Datei binär vorliegen soll oder
warum die Datei so groß ist. Wenn Du sie binär brauchst, kannst Du sie
vom Linker so erstellen lassen. Ich mache das auch so bei Dateien, die
vom Bootloader geflasht werden, da mein Bootloader Binärdateien liest
und ich keine Lust hatte das Intel-Hex-Protokoll mit einzubinden. Binär
ist einfach leichter, wenn man hintereinander flashen will. Mit Hex kann
man aber auf Grund der Struktur an verschiedenen Adressen im Flash
schreiben.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> heist das jetzt dass mein uC 16985 Byte Flash braucht um den Code
> aufnehmen zu koennen!?

Nein. Es heißt, daß alle Segmente zusammen inklusive z.B.
Debug-Informationen (stabs) soviel brauchen. Wenn du avr-size mit dem
hex-File aufrufst, gibt er dir nur noch die Flash-Größe an, weil das
als einziges im hex-File übrig bleibt.

Autor: Gerhard Meyer Vorfelder (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
avr-size main.hex
   text    data     bss     dec     hex filename
      0    5100       0    5100    13ec main.hex

Sprich mein uC brauch einen Flashspeicher von 5100 Byte um das Programm
aufnehmen zu koennen? (der Mega16 hat ja zB 16 000 Byte)

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja und Nein.

Wenn keine "Löcher" in der Hex-Datei sind, also alle Daten
sequentiell ins Flash kommen, dann Ja.

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.