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