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 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
Ü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?
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.
Eigentlich müsstest Du für das EEPROM ein eigenes File haben. Mit welchem Programm überträgst Du denn das (die) File(s) ?
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ß
Vielleicht helfen dir diese Informationen beim Verständnis von I-Hex. http://www.scienceprog.com/shelling-the-intel-8-bit-hex-file-format/
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.