Fehler Konvertierung GCC nach IAR bzw Keil

Gast #4921976
Guten Tag,
ich habe einen C-Code, geschrieben für den GCC, den ich gerne für IAR 
bzw Keil konvertieren würde. Ich hatte es mir soweit angeschaut, aber 
ich verstehe nicht, was die angezeigten Fehler bedeuten bzw wie ich 
diese löse.

In IAR wird die Fehlermeldung "Error[Og006]: Syntax error in inline 
assembly: "Error[0]: Invalid syntax" ..\test IAR fc\serial.c 81" für 
dieses Statement gegeben:

#define disable_interrupts() asm(" cpsid i ")
disable_interrupts();

Keil scheint hierbei hingegen weniger ein Problem zu haben.

Kann jemand ggf helfen? Es kann ja wirklich nur eine Syntax-Sache sein. 
Der Code läuft ja unter GCC.
Angehängte Dateien:
Gast
IAR Technical Note 86655:

...

"Background:
Now and then there are users requesting that IAR makes a "GCC to EWARM 
Migration Guide". This might seem to be trivial task (as IAR have 
written other Migration Guides), but it is not trivial, as there is not 
"one GCC compiler" so we are not able to cover all GCC variants.

Suggestion:
The most different area between GCC and EWARM is Inline Assembler and 
such constructions (and some other issues) will be commented in this 
Tech Note (and in the attachment). The goal is that the 9 examples + 
comments should cover the issues that are most different between GCC and 
EWARM, and that other issues can be sorted out by the developer that 
performs the migration."

...
1
#define disable_interrupts() asm(" cpsid i ")

Assembler Syntax ist nicht so ohne weiteres zwischen dem GCC und IAR 
kompatibel... Aus diesem Grund stehen in den CMSIS Headern im Normalfall 
eine Reihe #defines, die als Compiler Switches dienen.

Ich würde dazu raten, diese Header zu nutzen ;)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 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.