MPLAB X, XC8 - Inline Assembler #asm, #endasm Statements

Gast #6214252
Lesenswert?
• ▲
▼
Hallo Leute,

ich bin gerade dabei, mich in MPLAB X mit dem XC8-Compiler 
einzuarbeiten.

Aktuell habe ich folgendes Problem bei der Verwendung von inline 
Assembler:

Folgendes funktioniert nicht:
(MPLAB unterstreicht alles rot und gibt beim compilieren einen Fehler 
aus:
error: (876) syntax error)
1
#asm
2
PSECT  vect_psect,class=CODE
3
.
4
.
5
.
6
#endasm

wenn ich jede einzelne Zeile in ein separates asm(".."); - Statement 
verpacke dann compiliert es ohne Fehler:
1
asm("PSECT  vect_psect,class=CODE");

Laut Compiler Manual gibt es die #asm/#endasm Statements aber man liest 
in diversen Foren dass dieses Verhalten öfters bei jemandem aufgetreten 
ist - aber leider keine Lösung dazu. Das ganze ist irgendwie nervig,weil 
es bei mehreren Zeilen unübersichtlich wird, bzw. wenn es laut Manual 
funktionieren sollte dann erwarte ich auch dass es funktioniert - wer 
weiß was im Hintergrund sonst alles anders läuft...

Hat da jemand vielleicht eine Idee?

Viele Grüße

Max
#6214317
Lesenswert?
• ▲
▼
Compiler auf C90 umstellen.

In der Dokumentation (Readme_XC8_for_PIC.htm) des XC8 findet man unter
4. Migartion issues:

"
In-line assembly The #asm ... #endasm form of inline assembly is no 
longer accepted when building for C99. The asm() form of inline assembly 
is now the only way to embed assembly instructions inline with C code.
"
Gast #6214349
Lesenswert?
• ▲
▼
@Chris - super, das hat mich weiter gebracht. Es compiliert jetzt 
fehlerfrei - etwas unschön ist, dass MPLAB dennoch die 
Assemblersequenzen rot unterwellt, aber damit kann ich notfalls leben, 
bzw. gäbe es hiefür auch noch eine Lösung?

Bzw. ich glaube ich bleibe bei C99 und lebe mit den asm("") Statements - 
wichtig ist, dass ich jetzt weiß warum es so ist wie es ist - DANKE!

Viele Grüße

Max

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.