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


von Walter P. (Gast)


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!

von Bastler (Gast)


Lesenswert?

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

von Markus S. (watermax)


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.

von HildeK (Gast)


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.

von Michael U. (amiga)


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

von Walter P. (Gast)


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?

von Fred S. (Gast)


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

von Fred S. (Gast)


Angehängte Dateien:

Lesenswert?

......siehe Anlage!

von [Frank] (Gast)


Lesenswert?

@Walter

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

von ARM-Fan (Gast)


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.

von Walter P. (Gast)


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

von Hannes L. (hannes)


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

...

von Matthias Kölling (Gast)


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

von Bastler (Gast)


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!

von Walter P. (Gast)


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.

von Hannes L. (hannes)


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.

...

von ARM-Fan (Gast)


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.

von Michael U. (amiga)


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

von Hannes L. (hannes)


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...

...

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.