Mikrocontroller: "Compiler-Optimizer-Fehler" finden?

18/02/2015 - 19:34 von Manuel Reimer | Report spam
Hallo,

um einen STM32F103 via USB flashen zu können wollte ich mir eigentlich
folgende Bootloader bauen:

https://github.com/tormodvolden/map..._platforms

Leider habe ich diesen auch nach vielen Versuchen nie zum Rennen
gebracht. Bis mich jemand auf die Idee gebracht hat statt mit dem, von
meinem Distributor ausgelieferten, GCC 4.9 mal mit GCC 4.8 zu bauen.

Ergebnis: Mit GCC 4.8 làuft der Bootloader plötzlich einwandfrei. Mit
einem großen *aber*. Und zwar klappt das ganze nur mit bestimmten
Optimierungs-Einstellungen. Mit "-Os" mit GCC 4.8 gebaut làuft der
Bootloader. Mit "-O3" gebaut làuft das resultierende Binary auch mit GCC
4.8 nicht. Mit GCC 4.9 gebaut bekomme ich, egal welche Einstellungen,
kein lauffàhiges Binary hin.

Nach dem Eingrenzungs/Ausschlussverfahren habe ich als erste Kandidaten
für das Problem diese zwei Zeilen ausgemacht:

https://github.com/tormodvolden/map.../dfu.c#L62
https://github.com/tormodvolden/map.../dfu.c#L63

Zwei eigentlich recht "langweilige" Zuweisungen. Mir will echt nicht in
den Sinn kommen was da das Problem sein soll...

Hat jemand einen Tipp?


Zusàtzliche Frage am Rande: Eigentlich wollte ich mich ja schon immer
mal in die Mikrocontroller-Programmierung reinfinden. Wenn ich aber sehe
mit was für Problemen man da zu tun hat vergeht mir die Lust. Reicht es
von ST-Mikrocontrollern Abstand zu halten oder hat man z.B. bei einem
Atmel àhnliche Probleme?

Danke im Voraus

Gruß

Manuel
 

Lesen sie die antworten

#1 Christian Zietz
18/02/2015 - 19:42 | Warnen spam
Manuel Reimer schrieb:

Nach dem Eingrenzungs/Ausschlussverfahren habe ich als erste Kandidaten
für das Problem diese zwei Zeilen ausgemacht:

https://github.com/tormodvolden/map.../dfu.c#L62
https://github.com/tormodvolden/map.../dfu.c#L63

Zwei eigentlich recht "langweilige" Zuweisungen. Mir will echt nicht in
den Sinn kommen was da das Problem sein soll...

Hat jemand einen Tipp?



Wie sieht denn der zugehörige Assembler-Quelltext aus, in der
lauffàhigen und in der nicht lauffàhigen Version? So habe ich vor langer
Zeit mal einen Bug im Optimizer des gcc für AVR32 gefunden... und gefixt.

Zusàtzliche Frage am Rande: Eigentlich wollte ich mich ja schon immer
mal in die Mikrocontroller-Programmierung reinfinden. Wenn ich aber sehe
mit was für Problemen man da zu tun hat vergeht mir die Lust. Reicht es
von ST-Mikrocontrollern Abstand zu halten oder hat man z.B. bei einem
Atmel àhnliche Probleme?



Compiler-Bugs kann es überall geben, selbst auf dem PC. Das ist nicht
uC-spezifisch. Wenn Dir deshalb die Lust vergeht, dürfest Du gar nicht
programmieren.

Christian
Christian Zietz - CHZ-Soft - czietz (at) gmx.net
WWW: http://www.chzsoft.de/
PGP/GnuPG-Key-ID: 0x52CB97F66DA025CA / 0x6DA025CA

Ähnliche fragen