Hallo liebe μC Gemeinde, ich hab ein komisches Problem mit meiner Entwicklungsumgebung. Ich kann keine Funktionen aus dem StdPreiph des STM32 aufrufen. Mein System: Board: Hitex STM32PerformanceStick Betriebssystem: Ubuntu 14.04 LTS IDE: Eclipse mit ARM-GCC-Toolchain und OpenOCD Vorgeschichte: Vor einer Weile hab ich ein Olimex-Board mit STM32 eingerichtet, jetzt soll auch der PerformanceStick noch laufen. Herangehensweise: - Den Stick hatte ich relativ schnell mit ARM-GCC und OpenOCD eingerichtet - In Eclipse habe ich ein Template-Projekt (STM32f10x) vom ARM-GCC Plugin benutzt um mir ein Projekt zusammenstellen zulassen - Das erstellte Projekt ließ sich sofort builden und debuggen - Nach ein paar kleinen Änderungen haben meine USER-LEDs dann auch geblinkt (Port und Pins anpassen) - jetzt wollte ich schauen, ob ich auch die Interrupts in die Reihe bekomme und hab ein TIM-Beispielprojekt (TIM9 OC Toggle) von http://stm32-spl-doc-online.esy.es/STM32F10x_StdPeriph_Lib_V3.5.0/stm32f10x_stdperiph_lib_um_html/index2.html verwendet Jetzt zum Problem: - Der Linker kann keine Funktionen aus der stm32f10x_tim.c Source aufrufen, obwohl sie im entsprechenden Header (stm32f10x_tim.h) deklariert sind und der Header klassisch über #include stm32f10x_tim.h in main.c eingebunden ist - Weiterhin ist auch seltsam, dass Typdefinitionen aus dem Header erkannt werden - Auch die Möglichkeit sich vom Aufruf der Funktion in main.c in die stm32f10x.h verweisen zu lassen funktioniert, dennoch ist ein rotes Kreuz neben der Funktion und der Builder ist nicht gewillt seine Arbeit zu machen - Wenn ich die Zeilen auskommentiere funktioniert alles. Es ist bestimmt was ganz banales, aber ich komm einfach nicht drauf...
Hans A. schrieb: > - Der Linker kann keine Funktionen aus der stm32f10x_tim.c Source aufrufen Dann wird die stm32f10x_tim.o Datei nicht korrekt compiliert oder verlinkt.
Das ARM Eclipse-Plugin exkludiert erstmal alle C-Files des HAL/der Stdlib aus dem Build, die nicht benötigt werden. Wenn du mal in das entsprechende Verzeichnis schaust, sind die auch ausgegraut. Mit Rechtsklick -> Resource Configurations -> Exclude from Build kannst du das konfigurieren. Tückisch daran ist, dass die Headerfiles nicht exkludiert werden, daher "siehst" du die Funktionen trotzdem.
Ahhhh...! Ja super! René du hast genau ins Schwarze getroffen, es musste ja was banales sein. Aber da muss man erst mal drauf kommen. Mit einem einfachen Rechtsklick und "Exclude" ging es zwar nicht, aber ich hab mit dem Stichwort schnell eine Lösung gefunden: In Eclipse muss man dass in "Properties ‣ C/C++ General ‣ Paths and Symbols ‣ Source Location" einstellen. Dazu klappt man den jeweiligen Source-Folder auf und bearbeitet den gesetzten Filter. Das hab ich von dieser Seite: http://stackoverflow.com/questions/15935207/adding-header-files-to-eclipse-build-path-for-c Vielen Dank, allein hätte ich da noch ewig gesucht!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.