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
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
Zum übersetzen benutze ich folgendes:
Code:
avr-gcc -o main.elf -mmcu=atmega32 main.S
avr-objcopy -O ihex -j .text -j .data main.elf main.hex
Läuft ohne Fehler durch. Das ganze wird dann mit AVRDUDE auf den Atmega32 geklatscht.
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)
Lesezeichen