www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programmgröße feststellen aus hex-File


Autor: Walter P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum,

ich bin schon die ganze Zeit am rumsuchen, wie ich
anhand eines .hex-Files den tatsächlich
benötigten Speicherplatz von einem Atmel ATmega8 feststellen kann.
Hab schon mit avr-size -C --mcu=atmega8 Testprogramm.hex
herumexperimentiert, kam aber leider zu keinem Ergebnis.
Vielleicht kann mir einer von Euch Spezialisten weiterhelfen.

Danke schon mal im Voraus!

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das *.hex file ist doch das Programm oder versteh ich was falsch?
Größe  vom *.hex file = Programmgröße ?

Autor: Markus Schneider (watermax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bastler wrote:
> Das *.hex file ist doch das Programm oder versteh ich was falsch?
> Größe  vom *.hex file = Programmgröße ?

Nicht ganz, da ist noch ein wenig Overhead mit dabei.

Ansonsten steht die Größe des Programms im MAP-File.

Autor: HildeK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hätte mal gemeint: im Hexfile steht z.B. 12 34 56 78 9A usw. Dann 
ist jedes Byte fürs Programm im Hexfile 3 Byte lang - zwei Ziffern und 
ein Blank.

Da ich ATMEL HEX Files nicht kenne: in anderen ist oft auch noch pro 
Zeile eine Adressangabe vorhanden. Die müsste dann ebfalls abgezogen 
werden.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich frage mich im Moment: wozu?

Wenn das .hex ein Programm für einen Mega8 ist, muß es passen.
Ansonsten sagt ja der Compiler/Assembler, wie die Belegung ist, beim 
Erzeugen des .hex.

Wenn es für eine andere CPU ist, nutzt es im Mega8 nichts.

Ansonsten: .hex aufmachen mit einem Texteditor Deiner Wahl.
Formatbeschreibungen liegen im Internet (gibt verschiedene, meist 
Intel-Hex).

Startadresse schauen, wo der Inhalt hin soll, Endadresse schauen, wo es 
endet und ausrechenen, wie groß die Diferenz ist.

Gruß aus Berlin
Michael

Autor: Walter P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

eigentlich schon. Aber auf dem Rechner wird das Hex-File größer
abgespeichert als es Platz auf dem Mikrocontroller einnimmt.
Hab in diesem Forum gelesen, dass ein Hex-File ca. die dreifache Größe
hat, als es später im Controller benötigt. Ich hätte jetzt nur gerne
gewusst, wie ich dies konkret feststellen kann. Bin auf der Suche nach 
einer exakten Aussage und keiner Daumenregel mit Circa-Angaben.
Vielleicht haben die Spezialisten hier einen Tip oder einen Link auf
eine Software. Theoretisch müßte es auch AVR-Studio können, oder?

Autor: Fred S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Walter,

falls Dein Programm keine ungenutzten "Lücken" im Flash hat, kannst Du 
die HEX-Datei mit ReAVR ( http://avr.jassenbaum.de/ja-tools/reavr.html) 
öffnen. Dort steht die letzte benutzte Adresse am Ende. Dann brauchst Du 
nur noch die Startadresse zu subtrahieren. Einen direkteren Weg kenne 
ich nicht, da ich das AVR Studio verwende, was die Dateigröße beim 
Assemblieren oder Kompilieren angibt.

Gruß

Fred

Autor: Fred S. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
......siehe Anlage!

Autor: [Frank] (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Walter

Oder nimm ein Konvertierungsprogramm (z.B. HEX2BIN), dann siehst Du den 
kompletten Speicherbedarf.

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was soll denn das Theater immer?
Guckt euch doch einfach mal 5 Minuten an, WAS ein HEX-File überhaupt 
ist.

http://en.wikipedia.org/wiki/.hex

Dann ist euch klar wieso das größer ist als die eigentlichen Binärdaten.
Und außerdem wie man daraus auf die Speicherbelegung zurückschließen
kann - warum auch immer man das tun will.

Autor: Walter P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ARM-Fan (Gast),

jetzt mal ganz langsam...! Ruhig durchatmen!
Bis hierher war eigentlich noch gar kein Theater,
finde ich. Zum Theater hast Du meiner Meinung nach am Meisten 
beigetragen.

Ich hab das Problem ein Hex-File zu haben, dass von einem anderen 
generiert wurde. Jetzt möchte ich eben wissen, welchen Controller ich 
bezüglich Speichergröße auswählen muss, um genügend Platz zu haben.
Dazu muss ich wissen, was z.B. bei 15 kByte als hex-File der Chip an 
Platz
bieten muss!

Also dann servus

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Walter P. wrote:
> Hallo ARM-Fan (Gast),
>
> jetzt mal ganz langsam...! Ruhig durchatmen!
> Bis hierher war eigentlich noch gar kein Theater,
> finde ich. Zum Theater hast Du meiner Meinung nach am Meisten
> beigetragen.

Jetzt bist Du aber total ungerecht!

>
> Ich hab das Problem ein Hex-File zu haben, dass von einem anderen
> generiert wurde. Jetzt möchte ich eben wissen, welchen Controller ich
> bezüglich Speichergröße auswählen muss, um genügend Platz zu haben.
> Dazu muss ich wissen, was z.B. bei 15 kByte als hex-File der Chip an
> Platz
> bieten muss!

Alle Informationen, die Du zur Lösung Deines Problems brauchst, sind in 
diesem Thread bereits genannt worden. Also nutze sie! Oder brauchst Du 
auch zum Pullern fremde Hilfe?

>
> Also dann servus

...

Autor: Matthias Kölling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du ein fremdes Programm nutzen willst, solltest Du noch etwas mehr 
wissen, als nur die Speichergröße. Da wären auch die verwendeten 
Ressourcen interessant.

Gruß Matthias

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich hab das Problem ein Hex-File zu haben, dass von einem anderen
> generiert wurde. Jetzt möchte ich eben wissen, welchen Controller ich
> bezüglich Speichergröße auswählen muss, um genügend Platz zu haben.
> Dazu muss ich wissen, was z.B. bei 15 kByte als hex-File der Chip an
> Platz
> bieten muss!


Das hex-File wurde für EINEN bestimmten Controller erstellt!
Da kann man nichts mehr auswählen, sondern nur DEN RICHTIGEN nehmen!

Autor: Walter P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hannes Lux,

falls ich ungerecht wirkte, muss ich mich entschuldigen.
Sorry!
Ich bin aber AVR-Einsteiger und hab eben einfach eine Frage
ans Forum gestellt. Ich kenn mich hald nicht so gut aus bisher!

Wenn dann ein Beitrag kommt, der ohne "Hallo" oder der gleichen
beginnt und den Anfangskommentar:

               "Was soll denn das Theater immer?"

besitzt, ist das meiner Meinung nach auch nicht gerade freundlich, oder?
Ich denke wir sollten wieder zum fachlichen übergehen.

Habe natürlich die Hilfestellungen vom Forum bereits schon genutzt und
umgesetzt!

Danke nochmal und schönen Nachmittag.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Walter P. wrote:
> Hallo Hannes Lux,
>
> falls ich ungerecht wirkte, muss ich mich entschuldigen.

Bei mir brauchst Du Dich nicht entschuldigen, mir hast Du (noch) nichts 
getan.

> Sorry!
> Ich bin aber AVR-Einsteiger und hab eben einfach eine Frage
> ans Forum gestellt.

Dummerweise eine Frage, die schon öfters gestellt und erschöpfend 
beantwortet wurde.

> Ich kenn mich hald nicht so gut aus bisher!

Dann wird es Zeit zu lernen.

>
> Wenn dann ein Beitrag kommt, der ohne "Hallo" oder der gleichen
> beginnt und den Anfangskommentar:
>
>                "Was soll denn das Theater immer?"

Naja, es nervt, wenn immer dieselben Fragen kommen.

Und es nervt auch, wenn erschöpfend (mit Links, Suchbegriffen oder 
anderen Hinweisend) geantwortet wird und als Dankeschön Sprüche wie 
diese kommen:

>> Bin auf der Suche nach
>> einer exakten Aussage und keiner Daumenregel mit Circa-Angaben.

Mach Dich mit dem Format der Intel-Hex-Datei vertraut, dann wirst Du 
sehen, dass es keinen korrekten Umrechnungsfaktor dafür gibt. Du wirst 
dann schon die Datei analysieren müssen und die gewonnenen Informationen 
entsprechend umsetzen müssen. Oder Du nimmst entsprechende Software wie 
Disassembler (brauche ich z.B. nicht, da ich zu meinen HEX-Dateien auch 
die ASM-Quelltexte habe), Konverter oder ISP-Programm.

Dazu kommt noch die Tatsache, dass Deine Frage völlig irrelevant ist. Du 
musst die exakte Dateigröße nicht wissen, wenn Du weißt, dass die Datei 
für einen Mega8 assembliert oder compiliert wurde. Dann passt sie eben 
nur zum Mega8. Die AVRs sind soooo unterschiedlich in ihrer 
Hardwareausstattung, dass man fertige HEX-Dateien nicht mehr für einen 
anderen Typ verwenden kann.

>
> besitzt, ist das meiner Meinung nach auch nicht gerade freundlich, oder?

Aber verständlich und nachvollziehbar. Mit etwas Sucherei hättest Du Dir 
diese Frage sparen können, sie wurde bereits mehrfach gestellt und 
beantwortet. So ein Forum ist nämlich eine Diskussionsplattform und 
keine kostenlose Hotline für Faule.

> Ich denke wir sollten wieder zum fachlichen übergehen.

Ich denke, das Fachliche ist erledigt. Deine Frage ist beantwortet.

>
> Habe natürlich die Hilfestellungen vom Forum bereits schon genutzt und
> umgesetzt!

Na siehste, geht doch...

>
> Danke nochmal und schönen Nachmittag.

...

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Hannes für die Schützenhilfe ;-)

Ich wollte ja nicht stänkern, aber:

Mit "ihr" und "Theater" meinte ich tatsächlich die immer
wiederkehrenden Fragen zu HEX-Dateien und deren Größen
und die noch alberneren Antworten wie "ungefähr 3x so groß...",
anstatt einfach Mal "hex file format" in google einzugeben und
zu schauen, was das eigentlich ist.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Walter P. schrieb:
>> Ich hab das Problem ein Hex-File zu haben, dass von einem anderen
>> generiert wurde. Jetzt möchte ich eben wissen, welchen Controller ich
>> bezüglich Speichergröße auswählen muss, um genügend Platz zu haben.
>> Dazu muss ich wissen, was z.B. bei 15 kByte als hex-File der Chip an
>> Platz
>> bieten muss!

Bastler antwortete:
>Das hex-File wurde für EINEN bestimmten Controller erstellt!
>Da kann man nichts mehr auswählen, sondern nur DEN RICHTIGEN nehmen!

Auf diesen Umstand hatte ich bereits im Posting vom 18.03.2008 13:22 
hingewiesen...

Gruß aus Berlin
Michael

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nunja, wenn der Fragende auf seine eigentlich unnötige Frage 
erschöpfende Antworten erhält und daraufhin auch noch die Antworter 
maßregelt, als wäre er hier der Moderator, dann rutscht auch mir ein 
dummer Spruch heraus...

Sorry, ich kann auch nicht aus meiner Haut...

...

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.