Hallo zusammen,
ich möchte jetzt, nach dem ich immer nur C programmiert habe, mich auch einmal mit Assembler auseinandersetzen. Und dafür den AVR-GCC, der ja schon installiert ist, verwenden.
Code hab ich folgenden:
main.S
Zum übersetzen benutze ich folgendes:Code:#include <avr/io.h> .text ; was nun folgt, gehört in den FLASH-Speicher .global main ; main ist auch in anderen Modulen bekannt main: ; zu 'main' wird nach Reset hingesprungen LDI R24, 255 ; der wert "255" = FF ins allgemeine Register R24 OUT DDRD, R24 ; das kommt ins Controll-register f. PortD ; dadurch ist das Port auf OUTPUT gestellt Hauptschleife: ; ein Sprunglabel LDI R24, 255 ; der wert "255" = FF ins allgemeine Register R24 OUT PORTD, R24 ; schreiben wir nach PortD rjmp Hauptschleife ; immer wiederholen
Läuft ohne Fehler durch. Das ganze wird dann mit AVRDUDE auf den Atmega32 geklatscht.Code:avr-gcc -o main.elf -mmcu=atmega32 main.S avr-objcopy -O ihex -j .text -j .data main.elf main.hex
Der Controller sitzt auf einem AVR-Funk-Evaluationsboard von Pollin. Dort sind LED1 und LED2 an PD5 und PD6 angeschlossen.
Die sollten jetzt eigentlich auch Leuchten. Tun sie aber nicht!
Weis jemand Rat?
Viele Grüße und vielen Dank schon mal
-schumi-
PS: OS = Ubuntu 11.10; AVR-GCC-Version = gcc-Version 4.5.3 (GCC)







Zitieren
Lesezeichen