Forum: Mikrocontroller und Digitale Elektronik Intel Hex Format


von Toni (Gast)


Lesenswert?

Guten Morgen,

ich habe mit dem GCC-Compiler ein Hex-File für einen AVR erstellt. 
Solange ich das File über dem Debugger aufspiele, ist alles OK. Doch bei 
einem ISP-Programmer gibt es immer die Fehlermeldung, dass das File 
nicht in den Controller passt.

Nun hab ich gelesen, das liegt beim GCC oft daran, das im Hex-File noch 
ein EEPROM_Stück angehängt wird, und dadurch das File zu groß scheint. 
Dieses Stück sollte einfach herausgelöscht werden.

Hat da jemand schon mal Erfahrungen mit gemacht? Das Hex-File scheint ja 
im Intel Hex Format zu sein. Hab schon Infos dazu gefunden, doch steht 
dort leider nirgens beschrieben, wie denn dieser EEProm_Part aussieht.

Weiß das vielleicht jemand?


Gruß

von Dirk H. (arm-dran)


Lesenswert?

Toni wrote:
> Guten Morgen,
>
> ich habe mit dem GCC-Compiler ein Hex-File für einen AVR erstellt.
> Solange ich das File über dem Debugger aufspiele, ist alles OK. Doch bei
> einem ISP-Programmer gibt es immer die Fehlermeldung, dass das File
> nicht in den Controller passt.
>
> Nun hab ich gelesen, das liegt beim GCC oft daran, das im Hex-File noch
> ein EEPROM_Stück angehängt wird, und dadurch das File zu groß scheint.
> Dieses Stück sollte einfach herausgelöscht werden.
>
> Hat da jemand schon mal Erfahrungen mit gemacht? Das Hex-File scheint ja
> im Intel Hex Format zu sein. Hab schon Infos dazu gefunden, doch steht
> dort leider nirgens beschrieben, wie denn dieser EEProm_Part aussieht.
>
> Weiß das vielleicht jemand?
>
>
> Gruß

@Toni

welcher AVR ? Richtigen Typ eingestellt?

poste doch mal das HEX-File?

Dirk

von johnny.m (Gast)


Lesenswert?

Überprüf mal die folgenden Punkte:
1.: Im Makefile richtigen µC-Typ angegeben?
2.: Beim Build Meldungen über Speicherauslastung beachtet? (Wenn der 
Code größer als der zur Verfügung stehende Speicher ist, gibt es keine 
Fehlermeldung, sondern nur die Angabe, dass der Speicher zu mehr als 100 
% voll ist!)
3.: Im Debugger gleichen µC-Typ eingestellt wie in der Schaltung 
verwendet?

von johnny.m (Gast)


Lesenswert?

> Doch bei einem ISP-Programmer
...
4.: Was für ein Programmer ist das?

von Toni (Gast)


Lesenswert?

Der Controller ist ein Atmega88, der Debugger das JTAG-ICE mkII und der 
Programmer der AVRISP mkII.

Der Controllertyp ist im Debugger und im Makefile richtig eingestellt. 
Speicherauslastung ist auch ok, sind gerade mal 70% voll.

Mit dem Debugger funktioniert alles ohne Probleme, nur beim Programmer 
gehts nicht. Auch mit dem STK500 klappt es nicht.

von ecslowhand (Gast)


Lesenswert?

Eigentlich müsstest Du für das EEPROM ein eigenes File haben. Mit 
welchem Programm überträgst Du denn das (die) File(s) ?

von Toni (Gast)


Lesenswert?

So,

jetzt klappts! Wie oben schon angedeutet lag es an einer Zeile im 
Hex-File. Diese muss raus!

Bei mir sah die so aus:

:0200000400807A

Ist eigentlich ganz einfach die entsprechende Zeile zu finden. Das 
Hex-File ist ja nach dem Intel Hex Format aufgebaut, und im die 
Speicheradressen sind schön nacheinander im Hex-File angeordnet. Nur die 
eine Zeile sticht sofort heraus, weil Sie gar nicht in das Schema 
passte.


Gruß

von Kalle (Gast)


Lesenswert?

Vielleicht helfen dir diese Informationen beim Verständnis
von I-Hex.

http://www.scienceprog.com/shelling-the-intel-8-bit-hex-file-format/

von Dirk H. (arm-dran)


Lesenswert?

Toni wrote:
> So,
>
> jetzt klappts! Wie oben schon angedeutet lag es an einer Zeile im
> Hex-File. Diese muss raus!
>
> Bei mir sah die so aus:
>

Du solltest hier mal schauen:


> :020000-->04<--0807A

Wieso erzeugt Dein Compiler diese 04?

32Bit Adress Erweiterung ?

Wozu ?


>
> Ist eigentlich ganz einfach die entsprechende Zeile zu finden. Das
> Hex-File ist ja nach dem Intel Hex Format aufgebaut, und im die
> Speicheradressen sind schön nacheinander im Hex-File angeordnet. Nur die
> eine Zeile sticht sofort heraus, weil Sie gar nicht in das Schema
> passte.
>
>
> Gruß

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.