Hallo Ich versuche schon seit einigen Tagen ein Crossworks Projekt für einen STM32F105RB zu erstellen, zusammen mit der Firmwarelib 3.3 von ST Doch leider bekomme ich es nicht hin. Der Compiler findet immer Dateien nicht. zudem findet er die Funktion Assert_Param nicht. Hat vielleicht jemand ein Beispiel Projekt für mich? Danke schonmal...
push hlft nicht viel, da deine frage etwas diffus ist... stmmen die einstellungen, wo der compiler die libs sucht usw ? hast mal ein beispiel-programm als test compiliert?
Ich kann leider auch kein Test programm kompilieren... Ich weiss leider nicht ob es an den Compiler einstellungen liegt. Ich hab bei den User Defined Includes bei den Preprocessor einstellungen die Verzeichnisse inc / src und die des CMIS hinzugefügt Leider meckert er das er assert_param nicht findet sowie diverse funktionen nicht. Ich habe versucht die notwendigen dateien mit #include einzubinden oder diese bei sourcefiles dem projekt hinzuzufügen... Erste variante klappt... jedoch nicht für Interrupts oder Timer da kennt er die nötigen bezeichner wie TIM2 nicht.
Bei mir ist die "stm32f10x_conf.h" eingebunden, diese hat dann alle .h Dateien der STM Lib. Darin ist das Makro assert_param() definiert. Ich habe es nicht aktiviert:
1 | /* #define USE_FULL_ASSERT 1 */
|
erstmal muss ein beispiel funktionieren ! was haste denn drin, in deinem prg? ..conf.h ..lib.h ..rcc.h ..it.h ..map.h ?
Also ich gehe folgendermassen vor: ----Vorbereitung---- 1. Ich erstelle einen neuen Ordner namens Test 2. Ich kopiere aus dem Ordner der Firmwarelib 3.3.0 den ordner inc (aus library) 3. Ich kopiere aus dem Ordner der Firmwarelib 3.3.0 den ordner src (aus library) 4. Ich kopiere aus dem Ordner der Firmwarelib 3.3.0 den ordner CM3 (aus library/CMSIS) 5. Ich kopiere den INHALT aus dem Ordner der Firmwarelib 3.3.0 das Beispiel GPIO/IOToggle (aus Project/STM32F10x_StdPeriph_Examples) ----Crossworks---- 1. Ich Öffne Crossworks 2.0 mit Adminrechten unter Windows7 -> Info: Ich habe bei Crossworks das Package für die FW3.3.0 installiert! 2. Ich gehe auf: File -> New Project 3. Ich wähle: Generic STM32 -> An Executable for STMicroelectronics STM32 4. Ich wähle den Ordner Test als ziel und gebe den namen Beispiel ein -> Next 5. Ich wähle 6MHz und als Prozessor STM32F105RB -> Next 6. -> Next 7. Finish 8. Ich gehe bei Projekt auf Sourcefiles -> Rechtemaustaste -> Addexisting -> Wähle main.c aus dem ordner test 9. Ich öffne main.c mit doppelklick 10. Ich mache rechtemaustaste auf Project "Beispiel" 11. Ich wähle oben rechts: Configuration -> Common 12. Ich scrolle bis zu Preprocessor 13. Ich editiere User Include Directories -> Info: Dort steht bereits: $(TargetsDir)/STM32/include 14. Ich füge hinzu: inc/; src/; CM3; 15. Bestätige mit Ok 16. Bestätige mit Ok 17. Ich mache auf Projekt rechtemaustaste -> Build Error: stm32f10x.h: No such file or directory Error: stm32_eval.h: No such file or directory Error: 'RCC_APB2Periph_GPIOA' undeclared (first use in this function) Error: 'GPIO_Pin_All' undeclared (first use in this function) Und noch ein paar weitere.... Habe mir mühe gegeben es so ausführlich wie möglich zu beschreiben.... Danke für eure Hilfe!
Du solltest Deine Pfade relativ zu $(ProjektDir) anlegen. Das aktuelle Verzeichnis ist nähmlich mitnichten das Projektverzeichnis Gruß Tom
Hallo Claudio, wollte mal nachfragen, ob Du das Problem mitlerweile gelöst hast... ich möchte nämlich auch gerade im Vorfeld klären ob, und wie weit sich die Std_Lib von ST in Crossworks verwenden lässt, bevor ich dafür eine Lizenz kaufe. Viele Grüße, Mic
Hallo Leider hat niemand mehr etwas geantwortet... Somit ist es im Sande verlaufen :(
Hast Du das mit den relativen Pfaden probiert? Bei mir läuft dsa system problemlos Gruß Tom
nein hab ich ehrlich gesagt nicht getestet... Kannst du mir vielleicht eine Komplettes Beispiel Programm senden? Also Ordner Mit allem drin als Zip... wäre meega nett... Am besten an claudio.hediger (aäääaatt) gmail.com :) Danke
vielleicht könntest du das beispiel auch hier reinstellen? würde mich auch interessieren... ich finde die ST- Lib eingentlich sehr schön, wär prima, wenn man die auch in Crossworks verwenden könnte. THX!
Bitte sehr, hier auf dem Silbertablett ;-) STM32F10x Standard Peripherals Library kuck mal gleich am Anfang gibts nen neuen Abschnitt mit Link. Gruß Tom
Vielen Dank Hab es gleich Ausprobiert... doch leider klappts nicht :( Hier die Fehler meldungen: Building “ARM_LED_Test” in configuration “THUMB Flash Debug” — 5 errors, 1 occurrence Compiling system_stm32f10x.c — 5 errors, 1 occurrence In file included from C:/Users/darkhedie/Desktop/cw/ARM_LED_TEST/../ST_StandardLib/CMSIS/CM3/D eviceSupport/ST/STM32F10x/stm32f10x.h:8073, from C:/Users/darkhedie/Desktop/cw/ARM_LED_TEST/../ST_StandardLib/CMSIS/CM3/D eviceSupport/ST/STM32F10x/system_stm32f10x.c:33: stm32f10x_exti.h: No such file or directory stm32f10x_gpio.h: No such file or directory stm32f10x_rcc.h: No such file or directory stm32f10x_usart.h: No such file or directory misc.h: No such file or directory Build failed
Sorry, da weiß ich jetzt echt nicht mehr weiter wo das Problem sein soll. Ich hab bei mir das ganze ziemlich schnell (1Tag) am Laufen gehabt. Ist eigentlich wirklich nicht so schwer. Gruß Tom
Thomas Burkhart schrieb: > Bitte sehr, hier auf dem Silbertablett ;-) > > STM32F10x Standard Peripherals Library kuck mal gleich am Anfang > gibts nen neuen Abschnitt mit Link. > > Gruß > Tom 1000 Dank Tom! Ist ja wirklich auf dem Silbertablett serviert :) Ich bin z.Zt. noch auf der "Suche" nach der richtigen IDE... Wahrscheinlich werd ich auch auf CW setzen, bin noch am Infos zusammen suchen. Wollte net gleich die 30 Tage Testversion damit "verschwenden" die Lib einzubinden. Also nochmal Danke!!!
Kein Problem! Ich hab hier im Forum schon so viel Hilfe bekommen, da helfe ich auch gerne Tom
@Claudio Hediger: So... hatte zunächst die selben Fehler wie Du... hab dann zusätzlich noch unter Project->Properties->Preprocessor Options->System Include Directories hinzugefügt: Ort von inc und src Ordner, d.h. C:\...\STM32F10x_StdPeriph_Driver\inc C:\...\STM32F10x_StdPeriph_Driver\src Und die CMSIS Dateien C:\...\CMSIS\CM3\CoreSupport C:\...\CMSIS\CM3\DeviceSupport\ST\STM32F10x vielleicht hilft Dir das auch? Grüße, MIC
Das Problem mit assert_param konnte ich lösen indem ich folgende Preprocessor Definitions in den Einstellungen definiert habe: USE_STDPERIPH_DRIVER STM32F10X_HD INITIALIZE_STACK In diesem Fall wird in stm32f10x.h die Header stm32f10x_conf.h eingebunden, in der assert_param definiert ist. Sieh dir dazu die Beispiele an, die mit dieser Lib ausgeliefert werden. In den Include Directories musst noch $(ProjectDir) definiert werden, damit die Header Datei gefunden wird.
Hi, ich habe ebenfalls dieses assert_param-Problem. Ich habe mir zunächst dieses Beispiel [[Datei:CrossWorks_StandardLib_Setup.zip]] geladen und geöffnet. Da ich aber einen STM32f103 RB und keinen RE auf meinem Board habe, musste ich (glaube ich wenigstens) unter Project-Properties -> Build Options -> Target Processor den Prozessor-Typ ändern. An dieser Stelle fangen wohl meine Problemchen an. Kann man überhaupt so einfach das Target ändern? Bekomme nun 5 ähnliche Fehler : E:/...../../ST_StandardLib/STM32F10x_StdPeriph_Driver/src/misc.c:98: undefined reference to `assert_param' ein #define USE_FULL_ASSERT hat leider auch nichts gebracht :( @ Rooney Bob Wie ich gesehen habe hast due diesen Fehler beseitigen können. An welcher Stelle machst du die entsprechenden Eintragungen? USE_STDPERIPH_DRIVER STM32F10X_HD (in meinem Fall wohl STM32F10X_MD) INITIALIZE_STACK Gruß Stefan
Die entsprechenden #defines setzt Du am Afnag von ST_StandardLib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h INITIALIZE_STACK Habe ich bei mir nicht gesetzt. In ST_StandardLib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c Am Anfang Deinen CPU Takt setzen. Gruß Tom
Vielen danke, ich habe nicht daran gedacht einfach ein #define ... zu schreiben. Bin davon ausgegangen, dass ich in den Crossworks-Einstellungen irgendetwas ändern müsste. Werde es heute Abend direkt mal ausprobieren. Gruß Stefan
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.