Witam.
Zaczynam programowanie AVRow, jako zadeklarowany linuksowiec staram sie uzywac linuksowych narzedzi, ale niestety nie wychodzi. :(
Prosty program, np. taki (test.S): #v+
#include <avr/io.h>
#define mp r16
.global main
main: ldi mp, 0xff out DDRA, mp
ldi mp, 0x03 out PORTA, mp
loop: rjmp loop #v-
Skompilowany za pomoca avr-gcc (3.4.3, z Debiana testing) po prostu nie dziala. Kiedy napisze cos podobnego w Avr Studio uruchomionym pod wine, i wczytam to za pomoca avrdude (tak samo robie z tym pod avr-gcc), wszystko jest OK.
Po prostu nie dziala, mimo takiego samego kodu (pomijajac roznice w skladni), plik wygenerowany przez gcc jest wikszy.
Kompilacja wyglada tak:
#v+ avr-gcc -I. -mmcu=attiny26 -x assembler-with-cpp \ -Wa,-gstabs,-ahlms=test.lst -c test.S -o test.o avr-gcc -Wl,-Map,led.out.map -mmcu=attiny26 -lm -o led.out test.o avr-objcopy -j .text \ -j .data \ -O ihex led.out led.hex #v-
Nie wiem, co wiecej napisac, stan portu sie nie zmiania, jakby uklad wogole nie byl zaprogramowany. Czy jest cos o czym zapomnialem?