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

Gast #6214252
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
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
@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

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.