..."Und ist typisch für falsche Verwendung der Include-Files."
Ach ja?
es wäre wohl besser gewesen, wenn du anstelle dieser Bemerkung mal
erklärt hättest, wie man Include-Files richtig verwendet.
Mal ganz prinzipiell: Die Sprache C ist so gedacht, daß man eine
C-Quelle komplett separat übersetzen kann, ohne auf irgendwelche in der
Quelle nicht genannten Bezüge vertrauen zu müssen. Aber schlechte
Programmierer (von denen es Myriaden gibt) ignorieren dies und arbeiten
gerne mit Zusatz-Definitionen auf der Kommandozeile, bestimmten
Reihenfolgen beim Einbinden von Header-Dateien und so weiter.
Also, es gibt keine falsche Verwendung von Include-Files, sondern nur
fehlerhaft geschriebene Include-Files. Leider betrifft dies fast alles,
was mit den STM32-Controllern zu tun hat. Da gibt es keine Sicherung
gegen doppeltes Einbinden, keine 'extern' Vermerke, dafür aber
Variablenvereinbarungen und so weiter.
Mein Rat an Tobi: Verzichte erstmal auf alles Vorgefertigte
(ST-Standard-Libs, Startup-Dateien, chipspezifische Header) und mach all
dieses dir für's erste selber - und zwar anhand des zum Controller
gehörigen Hardware-Manuals. Das ist zwar die extrem verschärfte
Ochsentour, aber wenn man sich da durchgebissen hat, kennt man seinen
Prozessor und weiß, was für einen undurchsichtigen Wust und Overhead man
sich durch die oberschlauen Bibliotheken einfängt.
Alles Gute
wolfgang