SDCC externe ASM Datei einbinden

OP #1944506
Lesenswert?

Hallo,

ich muss für den CC2530 eine asm in meinem C Programm aufrufen.
Ich nutze den Compiler SDCC.

Die .asm Datei sieht folgendermaßen aus:

.globl _doSmth

.area CSEG (REL,CON,CODE)
.even

_doSmth:
MOV PCON, #0x01
NOP
RET


und mein C-Code:

void foo(void){
_doSmth();
}

Aber das geht scheinbar nicht so?
Muss ich die asm-Datei noch irgendwie includen oder sonst was machen 
damit?

In meinem makefile hab ich die Datei angegeben:
SOURCEFILES +=
  drivers/usb/library/cc2530/_doSmth.asm
OP #1945222
Lesenswert?

wenn ich das einfach so schreibe:

void doSmth(){

  _asm

  .area CSEG (REL,CON,CODE)
  .even

  MOV PCON, #0x01
  NOP
  RET

  _endasm;

}

dann bekomme ich einen compilefehler:

../../../src/drivers/radios/cc2530/doSmth.c:161: syntax error: token -
> 'CSEG' ; column 11
make: *** [../../../build/apps/doSmth/usbDongle/drivers/radios/cc2530/
doSmth.rel] Fehler 1
#1945255
Lesenswert?

Ich kenne den Compiler zwar nicht, aber kannst Du mal cut&paste vom 
ganzen Übersetzungsvorgang machen?  Vermutlich kommt die Fehlermeldung 
ja vom Linker, und anhand dessen Kommandozeile kann sich dann eventuell 
ergeben, dass es mit einer Änderung am Makefile getan ist (den als 
Anhang auch noch beifügen).

P.S.  Ich meine damit die erste Version, nicht Inline-Assembler.  Denn 
es muss möglich sein, externe Assembler-Files einzubinden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren