GCC und Code::Blocks, Präprozessor defekt

Gast #6517429
Lesenswert?
• ▲
▼
Hallo allerseits,

ich habe ein Problem mit Code::Blocks und dem GCC für den STM32. Und 
zwar scheint es als ob der Präprozessor nicht aufgerufen wird. Im 
ASM-Startup-Script gibt es dann eine Fehlermeldung, dass ein Label 
doppelt initialisiert wird, weil offensichtlich beide Teile des 
Präprozessor-#if-Blockes ausgewertet werden (Code-Fragment siehe unten). 
Ich habe dann den #else-Zweig einfach rausgeschmissen, habe dann aber 
über Compilerwarnungen festgestellt, dass auch im C-Code einer 
Bibliothek merkwürdige Dinge passieren, mit Warnungen in #ifdef-Blöcken, 
die im Editor ausgegraut sind, also gar nicht kompiliert werden sollten. 
Das Kompilieren hat aber funktioniert. Mein Verdacht ist nun, dass der 
Compiler ohne vorigen Aufruf des Präprozessors durchläuft oder zumindest 
nur mit reduzierter Funktionalität.
Aber kann das überhaupt sein?
-> Gibt es irgendwelche Einstellungen die man machen muss, oder gibt es 
Kommandos (die bei mir evtl. gesetzt sind), um den Präprozessor 
einzuschränken?

Den ARM-GCC-Compiler habe ich für Code:Blocks selbst eingerichtet und da 
kann natürlich etwas falsch sein.

Code::Blocks deshalb um später den Chip-Hersteller wechseln zu können, 
ohne eine neue IDE zu benötigen, aber das nur am Rande.
1
#if 1
2
 [...]
3
.flash_to_ram_loop:
4
 [...]
5
#else
6
 [...]
7
.flash_to_ram_loop:
8
 [...]
9
#endif

Fehlermeldung: startup_stm32f10x_md.s|166|Error: symbol 
`.flash_to_ram_loop' is already defined|
Gast #6517474
Lesenswert?
• ▲
▼
Nachtrag:

Wenn ich die Startup-Datei in der Konsole kompiliere, kommt die gleiche 
Fehlermeldung.
1
>arm-none-eabi-gcc.exe -mcpu=cortex-m3 -c startup_stm32f10x_md.s -o startup_stm32f10x_md.o
1
startup_stm32f10x_md.s: Assembler messages:
2
startup_stm32f10x_md.s:167: Error: symbol `.flash_to_ram_loop' is already defined

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.