Forum: Mikrocontroller und Digitale Elektronik ROM Atmega128


von Freudi (Gast)


Lesenswert?

Mal ne wahrscheinlich ganz doofe Frage. Ich chreibe hier nen Programm
für den Atmega128 mit Codevision AVR. Das inzwischen entstehende
HEX-File ist 112 kb gross und dass ROM-File 258 KB. Jetzt stellt sich
mir die Frage warum das ROM-File 258 KB ist, wenn der Atmega128 doch
nur 128 KB Programmspeicher hat ?  Kann mein HEX File dann doch größer
als 128 KB werden, das glaube ich fast garnicht, aber wo flasht der die
258 KB hin ?

Freudi

von Hannes L. (hannes)


Lesenswert?

Das INTEL-HEX-Format (Google-Tip) ist eine Textdatei, die die Werte in
den einzelnen Bytes darstellt und dadurch einen großen Overhead hat.
Eine BIN-Datei würde der wahren Größe entsprechen.

Schau mal, ob und wo dein Compiler die Meldung ausgibt, wieviele Bytes
(Worte?) im Flash belegt sind.

...

von Freudi (Gast)


Lesenswert?

Oh schnelle Antwort. Danke. Sitze gerade nicht vor dem PC mit dem
Compiler. Schau nachher mal. Aber ich weiss das der Chipprogrammer nach
dem ROM File und dem EEP File fragt. Das ROm File hat 258 KB wo flasht
der das hin ? Oder mal präziser gefragt. Was ist denn im ROM File. Bis
heute bin ich davon ausgegangen, das das sozusagen der Inhalt des Flash
ist. ABer das kann ja dann nicht sein wenn das doppelt so gross ist.

Freudi

von Hannes L. (hannes)


Lesenswert?

> Was ist denn im ROM File. Bis
> heute bin ich davon ausgegangen, das das sozusagen der Inhalt des
> Flash ist.

In der Datei ist Text.
Und dieser Text beschreibt nach einem festgelegten Protokoll Adresse
und Inhalt jeder einzelnen Speicherzelle. Weiterhin enthält der Text
noch Prüfsummen.

Frage doch mal Google nach dem oben genannten Suchtipp. Dann fällt es
dir wie Schuppen von den Augen...

...

von André K. (andre-)


Lesenswert?

Es gibt ja 2 Rom Files. Im *.bin sind die reinen Rohdaten enthalten, wie
sie spaeter auch im Flash legen. D.h. Groesse *.bin = Programmgroesse.

im *.hex dagegen befinden sich zu den Rohdaten auch noch die Adressen,
an die die einzelnen Bytes bzw. Bloecke geschrieben werden (dazu,
Checksummen etc.). Diese Informationen brauchen natuerlich Platz,
weswegen das *.hex File immer das ca. 2,8-Fache der Groesse des *.bin
Files besitzt.

http://www.keil.com/support/docs/1584.htm

Die Dateien lassen sich uebrigens einfach ineinander umwandeln.

MfG

von Freudi (Gast)


Lesenswert?

Danke für die Infos werde mal googlen. Habe jetzt auch die Stelle
gefunden in der CodeVision anzeigt wieviel Flash belegt ist. Das ist
einfach ein Thema um das ich mich noch nie gekuemmert habe, der
Programmspeicher war immer gross genug.

Dank an alle
Freudi

von Peter D. (peda)


Lesenswert?

"HEX-File ist 112 kb"

Dann ist Dein Code etwa 40kB, hast also noch reichlich Platz im
128-er.


Peter

von Freudi (Gast)


Lesenswert?

Hey Super Schätzung. 33% des Flashes sind belegt, das sind ca 40 KB. Na
da habe ich ja noch Luft.

Freudi

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.