Servus, mein Testprogramm lässt sich für den atmega16 ohne Probleme Compilieren. Für den atmega8 kommt folgende Fehlermeldung: Assembling: xglobal1.S avr-gcc -c -mmcu=atmega8 -I. -x assembler-with-cpp -Wa,-adhlns=xglobal1.lst,-gst abs xglobal1.S -o xglobal1.o xglobal1.S:34:9: warning: no newline at end of file xglobal1.S: Assembler messages: xglobal1.S:16: Error: illegal opcode call for mcu atmega8 make: *** [xglobal1.o] Error 1 Hab ich da etwas übersehen ? Danke für Hilfe ! C-File: void main( void ) { test1(); for (;;) {} } S-File: #include <avr/io.h> .stabs "",100,0,0,test1 .stabs "xglobal1.S",100,0,0,test1 .global test1 .func test1 test1: push r0 call test2 pop r0 ret .endfunc .func test2 test2: push r0 pop r0 ret .endfunc
Der GNU assembler unterstützt derzeit kein "CALL" auf ATmegas bis 8 KB ROM, sondern nur "RCALL". Die neueren ATmegas können das zwar, aber es wird nicht wirklich benötigt, da man bis 8 KB ROM auch alle Sprungziele mit RCALL erreichen kann.
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.