.hex auf verschiedenen AVR's

#2347471
Lesenswert?

Die Hexen müssen abgestimmt sein.
Es gibt Ausnahmen, wie z.B. dass der mega128 per fuse setting als ein 
mega103 betrieben werden kann.

Ich habe neulich ein Projekt für einen mega16 aus einem Template-Projekt 
für den 32er erstellt. Ich hatte vergessen, den Prozesortyp im makefile 
umzustellen. Fazit: nach dem ersten Funktionsaufruf schmiert der 
Prozessor ab. Warum, hab ich noch nicht herausgefunden. Liegt der RAM 
auf einer anderen IO-Adresse, da er beim 32er größer ist??
Flashen und der mainloop allein funktionierten allerdings einwandfrei.

mfg mf
#2347551
Lesenswert?

Therfd schrieb:
> Oder müssen die .hex Files auf den jeweiligen AVR abgestimmt sein?
ja, die fast einzige Ausnahme sind die Baureihen, die sich nur durch 
die Speichergröße unterscheiden z.B. tiny24, 44, 84 - auch daran zu 
erkennen das die dasselbe Datenblatt haben.
Ansonsten funktioniert das vielleicht durch Zufall, weil gerade die 
abweichenden Funktionen/Register/Interrupts nicht benutzt werden.

Sascha
#2347565
Lesenswert?

Das genormte .hex-Format enthält die Anfangsadresse der zu speichernden 
Daten in jedem Zeilenbeginn.
Wenn also der Kontroller die gleiche Speicherstruktur hat, wie z.B. 
Anfangsadresse des Speichers, geht es ohne weiteres. Die Lauffähigkeit 
geht eher dadurch verloren, dass die Plätze für die Int-Vektoren anders 
liegen oder dass die im Programm angesprochenen 
special-function-register andere Adressen haben.
Gast #2347575
Lesenswert?

Hi

>ja, die fast einzige Ausnahme sind die Baureihen, die sich nur durch
>die Speichergröße unterscheiden z.B. tiny24, 44, 84 - auch daran zu
>erkennen das die dasselbe Datenblatt haben.

Das ist kein eindeutiges Kriterium. ATMega48/88/168 teilen sich auch ein 
Datenblatt. Aber bei den ATMega48/88 belegt ein Eintrag in der 
Interrupvektortabelle ein Word (rjmp). Beim ATMega168 sind es zwei Word 
(jmp). Obwohl ein Programm der ersten beiden in den ATMega168 passt wird 
der erste Interrupt einen Sprung ins Nirvana zur Folge haben.

MfG Spess

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren