Assembler Code in *.c File integrieren, nur wie im CCE?

Gast #1073036
Lesenswert?
• ▲
▼
In meinem C-Büchlein welches ich habe, steht, dass man Assembler Code 
ganz einfach in einem *.c File einbinden kann, nämlich so:
1
asm("instruction");

Nur leider funktioniert das in meinem Code Composer V3 nicht.
Es gibt beim Kompilieren eine Fehlermeldung.

Weiss jemand von euch wie man das im CCE machen kann?
Gast #1073200
Lesenswert?
• ▲
▼
Bei mir bringt er die Fehler:


"Illegal mnemonic specified"
mov  #0xFFFE,R12

"Symbol mov has already been defined"
mov  @R12,PC

"Illegal mnemonic specified"
mov  @R12,PC


PS: Wie kann man im CCE bequem nachschauen wie viel Flash das Programm 
benötigt?
Gast #1073278
Lesenswert?
• ▲
▼
Hmm, und wie mache ich das?
Hab von Assembler keine Ahnung.

Die Funktion ist einfach die, dass der ProgramCounter an den absoluten 
Programmanfang springt, also vor die Initialisierung der Variablen etc.
#1073383
Lesenswert?
• ▲
▼
Also ein "Kaltstart"? Kannst ja auch den Watchdog abschießen, dann hast 
du einen kompletten Neustart...
z.B. mit

WDTCTL = 0xDEAD;

Problem an deinem Code ist, dass er nicht atomar ist, der C-Compiler 
kann also im ungünstigsten Fall die Befehle so verteilen, dass sie nicht 
direkt hintereinander stehen....du müsstest dann eine extra asm-Datei 
schreiben, da eine Funktion deklarieren und diese dann aus C aufrufen. 
Wie das geht, steht im User Guide des CCE v3.

Achso, CCE zeigt leider erst beim Flashen an, wie groß der Code geworden 
ist....hab da auch noch nix anderes gefunden. Höchstens TI-txt file 
erzeugen lassen und nachschauen....
#1073395
Lesenswert?
• ▲
▼
Übrigens, so klappts im CCE:
1
asm(" mov.w #0xFFFE,R12");

Wichtig ist der Freiraum vor dem mov. Auszug aus dem User Guide:

"The inserted code must be a legal assembly language statement. Like all 
assembly language statements, the line of code inside the quotes must 
begin with a label, a blank, a tab, or a comment (asterisk or 
semicolon)."

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.