Forum: Mikrocontroller und Digitale Elektronik Firmware von Atmega8 auf Atmega168


von Knicklicht (Gast)


Lesenswert?

N'abend,
ich habe mir das hier nachgebaut: http://www.illutzmination.de/udmx.html
Nun habe ich das Problem, dass Reichelt mir anstelle eines Atmega8 einen 
168 geschickt hat. Ich bin erst am Anfang der 
Mikrocontrollerprogrammierung (arduino war orgendwie auch nicht so meins 
und ziemlich oberflächlich)
nun die frage: kann ich die Firmware ohne weiteres auf den 168er flashen 
oder muss ich die neu kompilieren, wnn ja, wie?
Danke schonmal im vorraus(war bisher immer berechtigt)

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Tja Reichelt lässt in letzter Zeit leider komplett nach.
Falschlieferungen ohne Ende, im Lager hebense auch kaum noch was.
Wenn was im Warenkorb liegt das plötzlich nicht mehr im Lager verfügbar 
ist wirds ausm Korb gelöscht und man merkts nichtmal...
Bei manchen Bauteilen ist die Sortierung ne Katastrophe geworden...

So ist das nunmal, wenn BWL Heuschrecken den Laden übernehmen snif

Zum Thema:
Der 168er ist der Nachfolger des 8er, aber einige Register haben andere 
Adressen.

Also neucompilieren.

Is janz einfach, WinAVR installen, darin den Sourcecode öffnen und im 
makefile das atmega8 suchen und gegen 168 ersetzen.

Sollte der Compiler Fehlermeldungen ausgeben, dann guck ich mal drüber.

Es gibt auch ne Apnote was anders is, find die nur grad nich.

edit:
hier die apnote:
http://www.atmel.com/Images/doc2553.pdf

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Angehängte Dateien:

Lesenswert?

So hatte grade etwas Zeit und war dann mal so nett.
Is ja reines find and Replace mit den Registerumbenennungen, Rest macht 
der Compiler.

Compileroutput:
> "make.exe" all
avr-gcc -c -g -Os -Wall -Wstrict-prototypes -I -Wa,-ahlms=uDMX.lst 
-mmcu=atmega168 -I. uDMX.c -o uDMX.o
uDMX.c:211: warning: function declaration isn't a prototype
avr-gcc -c -g -Os -Wall -Wstrict-prototypes -I 
-Wa,-ahlms=usbdrv/usbdrv.lst -mmcu=atmega168 -I. usbdrv/usbdrv.c -o 
usbdrv/usbdrv.o
usbdrv/usbdrv.c: In function 'usbInit':
usbdrv/usbdrv.c:506: warning: cast from pointer to integer of different 
size
usbdrv/usbdrv.c:507: warning: cast from pointer to integer of different 
size
avr-gcc usbdrv/usbdrvasm.S usbdrv/usbdrv.o uDMX.o 
-Wl,-Map=uDMX.map,--cref -mmcu=atmega168 -o uDMX.elf
avr-objcopy  -O ihex \
    --change-section-address   .data-0x800000 \
    --change-section-address    .bss-0x800000 \
    --change-section-address .noinit-0x800000 \
    --change-section-address .eeprom-0x810000 \
    uDMX.elf uDMX.cof
avr-objcopy: --change-section-vma .eeprom+0xff7f0000 never used
avr-objcopy: --change-section-lma .eeprom+0xff7f0000 never used
avr-objcopy: --change-section-vma .noinit+0xff800000 never used
avr-objcopy: --change-section-lma .noinit+0xff800000 never used
avr-objcopy -O ihex -R .eeprom uDMX.elf uDMX.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" 
--change-section-lma .eeprom=0 -O ihex uDMX.elf uDMX.eep
c:\WinAVR-20100110\bin\avr-objcopy.exe: --change-section-lma 
.eeprom=0x00000000 never used
avr-size uDMX.elf
   text     data      bss      dec      hex  filename
   2884        8      577     3469      d8d  uDMX.elf
Errors: none
rm usbdrv/usbdrv.o

> Process Exit Code: 0
> Time Taken: 00:01

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.