mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Intel Hex Format


Autor: Toni (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Dirk Hofmann (arm-dran)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: johnny.m (Gast)
Datum:

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

Autor: Toni (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: ecslowhand (Gast)
Datum:

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

Autor: Toni (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Kalle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht helfen dir diese Informationen beim Verständnis
von I-Hex.

http://www.scienceprog.com/shelling-the-intel-8-bi...

Autor: Dirk Hofmann (arm-dran)
Datum:

Bewertung
0 lesenswert
nicht 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ß

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.