www.mikrocontroller.net

Forum: Compiler & IDEs SDCC externe ASM Datei einbinden


Autor: Max M. (invoices)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias K. (matthiask)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannste den einen Befehle nicht gleich in C machen oder den ASM-Code 
Inline includen?
_asm 

...

_endasm;

Autor: Max M. (invoices)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schreib einfach PCON = 1; und gut. Da brauchst du doch kein Assembler!?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.