-
-
C und Assembler mit AVRStudio : Gelöst
Gelöst durch einfügen von nachfolgender Definition ins Assembler-File
// Das ist die Quick-Hack Version, mehr Infos unter include/avr/sfr_def.h
#define __SFR_OFFSET 0
Erstmal einen Guten Tag alle zusammen.
Mache mich gerade mit AVRStudio und AVR vertraut.
WIN-AVR und AVR-Studio aktuelle Version, Testboard von myAVR(ATmega
Reine C-Programme auch mit mehreren C-Modulen laufen problemlos. Ebenso reine Assembler-Programme bzw. C-Programme mit Inline-Code.
Irgendwie bekomme ich allerdings den Aufruf einer Ass.-Routine aus einem C-Prog nicht zum laufen.
Nachfolgend die beiden Module meines Testprogramms.
Compiliert und gelinkt wird das einwandfrei. Nur scheint der Aufruf nicht zu funktionieren. Wie gesagt als reines C- bzw. Assmblerprog geht das einwandfrei. Jemand eine Idee ?
Gruss
Jürgen
// avrTest.c
#include <avr/io.h>
extern void LEDsOn(void);
int main()
{
while(1)
LEDsOn();
}
// avrAsm.S
// Das ist die Quick-Hack Version, mehr Infos unter include/avr/sfr_def.h
#define __SFR_OFFSET 0
include "avr/io.h"
// Setze Bit 0,1,2 von Port-B auf an
.global LEDsOn
.func LEDsOn
LEDsOn:
push r16
ldi r16,0xff
out DDRB,r16
ldi r16, 0x7
out PORTB,r16
pop r16
ret
.endfunc
.end
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen