Moin Moin, ich hatte diesen Artikel Beitrag "AVR ARM STM32F3 Discovery GPIO Einführung" gefunden, und dort schon nachgefragt, aber scheinbar ist der Thread tot... Darum mach ich hier nochmal nen Neuen auf und kopier hier rein, was ich da geschrieben hab. MoinMoin Erstmal vielen Dank für die Einführung, ich hatte mich vor einiger Zeit schonmal mit f3Disco versucht, auch mit CodeBlocks, da bin ich aber schon gescheitert, die ganzen Header und den Compiler richtig zuzuweisen. Nachdem ich einige Zeit Pause machen musste, hab ich das Board nun mal wieder rausgekramt, als ich auf das Tut hier gestoßen bin. Immerhin hab ich CodeBlocks nun so weit, das es versucht, zu compilieren. Ich hab dann das C-File in CodeBlocks eingefügt, auf compilieren geklickt, da hat über die void main (void) gemeckert, die hab ich dann zu ner int main (void) gemacht. Da waren die Warnungen schonmal auf Null.... aber dann gabs ja noch die 9 Fehlermeldungen. Hier mal ein BuildLog: -------------- Build: Debug in MalSehen (compiler: GNU ARM GCC Compiler)--------------- arm-none-eabi-gcc.exe -Wall -g -Os -IC:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\_htmresc -IC:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Libraries\CMSIS\De vice\ST\STM32F30x\Include -IC:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Libraries\CMSIS\De vice\ST\STM32F30x\Source\Templates\arm -IC:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Libraries\CMSIS\In clude -IC:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Libraries\CMSIS\Li b\ARM -IC:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Libraries\CMSIS\Li b\GCC -IC:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Libraries\CMSIS\RT OS -IC:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Libraries\CMSIS\SV D -IC:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Libraries\STM32_US B-FS-Device_Driver\inc -IC:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Libraries\STM32F30 x_StdPeriph_Driver\inc -IC:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Project\Peripheral _Examples\GPIO_IOToggle -IC:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Utilities\STM32F3_ Discovery -IC:\Programme\CodeBlocks\stm32f3-discovery-basic-template-master -IC:\Programme\CodeBlocks\Projekte\ARM\MalSehen -c main.c -o obj\Debug\main.o arm-none-eabi-g++.exe -o bin\Debug\MalSehen.exe obj\Debug\main.o C:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Libraries\CMSIS\Lib\ ARM\arm_cortexM0b_math.lib C:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Libraries\CMSIS\Lib\ ARM\arm_cortexM0l_math.lib C:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Libraries\CMSIS\Lib\ ARM\arm_cortexM3b_math.lib C:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Libraries\CMSIS\Lib\ ARM\arm_cortexM3l_math.lib C:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Libraries\CMSIS\Lib\ ARM\arm_cortexM4b_math.lib C:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Libraries\CMSIS\Lib\ ARM\arm_cortexM4bf_math.lib C:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Libraries\CMSIS\Lib\ ARM\arm_cortexM4l_math.lib C:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\Libraries\CMSIS\Lib\ ARM\arm_cortexM4lf_math.lib c:/programme/codeblocks/gnu_tools_arm_embedded/bin/../lib/gcc/arm-none-e abi/4.6.2/../../../../arm-none-eabi/lib\libc.a(lib_a-exit.o): In function `exit': exit.c:(.text.exit+0x2c): undefined reference to `_exit' obj\Debug\main.o: In function `InitClock': C:\Programme\CodeBlocks\Projekte\ARM\MalSehen/main.c:20: undefined reference to `RCC_HSEConfig' C:\Programme\CodeBlocks\Projekte\ARM\MalSehen/main.c:21: undefined reference to `RCC_WaitForHSEStartUp' obj\Debug\main.o: In function `InitGPIOE': C:\Programme\CodeBlocks\Projekte\ARM\MalSehen/main.c:26: undefined reference to `RCC_AHBPeriphClockCmd' C:\Programme\CodeBlocks\Projekte\ARM\MalSehen/main.c:34: undefined reference to `GPIO_Init' obj\Debug\main.o: In function `InitGPIOA': C:\Programme\CodeBlocks\Projekte\ARM\MalSehen/main.c:39: undefined reference to `RCC_AHBPeriphClockCmd' C:\Programme\CodeBlocks\Projekte\ARM\MalSehen/main.c:47: undefined reference to `GPIO_Init' obj\Debug\main.o: In function `main': C:\Programme\CodeBlocks\Projekte\ARM\MalSehen/main.c:61: undefined reference to `GPIO_SetBits' C:\Programme\CodeBlocks\Projekte\ARM\MalSehen/main.c:67: undefined reference to `GPIO_ResetBits' collect2: ld returned 1 exit status Process terminated with status 1 (0 minutes, 1 seconds) 9 errors, 0 warnings (0 minutes, 1 seconds) wo liegen denn die ganzen "GPIO_ResetBits" und vor allem die RCC_AHBPeriphClockCmd?.. die hatte mir schonmal bei nem Versuch dazwischengefunkt... MfG Chaos P.S. würde es statt den ganzen -IC:\Programme\CodeBlocks\STM32F3-Discovery_FW_V1.1.0\_htmresc usw eigentlich auch reichen einfach nur -IC:\Programme\CodeBlocks\ zu schreiben bzw anzugeben? Findet er sich dann von selbst in den Subdirectories zurecht? P.P.S. Nun hab ich noch gelesen, das der ganze Ordner, STM32F3-Discovery_FW_V1.1.0, in das Projekt kopiert werden muss. In meinem Fall also in //Codeblock/Projekte/STM32...? oder muss der da noch in //bin oder //obj? Irgendwie ist mir das noch nicht so richtig klar... Heißt das, das ich in jedes neue Projekt immer den ganzen STM32F3-Ordner kopieren muss? mhh, irgendwie macht es keinen Unterschied, egal wohin ich den Ordner kopiere..
Gibt es denn nicht irgendwo ne Schritt für Schritt Anleitung, die mir sagt, welche Dateien wo liegen müssen, und was ich in CodeBlocks einstellen muss, damit ich das STM32F3Discovery zum laufen bekomm? Irgendwie reichen meine Googlekünste wohl nicht. Verzweifelte Grüße, Chaos
Da bin ich auhc schon drauf gestoßen, aber die wollen 120€ für das EPS.. das is mir n bischn viel für privat und erstmal zu sehen, wie man denn die LED´s an und aus bekommt.
Nur mal probieren? http://forums.codeblocks.org/index.php?topic=13609.0 ganz unten: Unlicensed version has 25% flash capacity limit (32KB max.) for selected device. Wenn CodeBlocks nichts freies für STM32 bietet, wie wäre es mit eclipse? Oder alles mit Makefile...
Ja das ist ja schonmal was, ich registriers grad, bin gespannt, ob das dann auch klappt. Mit Eclipse wären meine Probleme auch aus der Welt sagst du? Und für die Makefile-geschichte, kannst du mir da ein Tutorial empfehlen? oder falls das möglich ist, mir auf die schnelle n kleinen Anriß davon geben? Aber erstmal vielen Dank für deine Hilfe =) MfG Chaos
>Mit Eclipse wären meine Probleme auch aus der Welt >sagst du? Damit fangen deine Probleme erst an. Das ist nicht so einfach. Eclipse pur aufzusetzen bedeutet eine lange schmerzvolle Einarbeitung. Openocd noch dazu macht noch mal lange aua. > Und für die Makefile-geschichte, kannst du mir da ein Tutorial >empfehlen? makefile zu Fuss willst du als Anfänger auch nicht. Schau dir doch mal http://www.coocox.org/index.html an. Vieleicht kommst du damit zurecht.
Hmm... CooCox CoIDE hab ich auch schon versucht... da sind im Endeffekt die selben Probleme aufgetaucht. Es sind zwar einige Beispiele dabei, aber die sind dann fürs F0 oder F4 und das klappt damit auch nicht, das F3 anzusprechen. Und dort hatte ich genau die selben Probleme, die STM32Libary überhaupt einzubinden. Dort hatte ich es auch soweit, das er immerhin die #includeten Files gefunden hat, aber dennoch hat er auch dort solche Querverweisfehlermeldungen rausgespuckt.
>Und dort hatte ich genau die selben Probleme, die >STM32Libary überhaupt einzubinden. Wieso? Die musst du doch nur in dein Projekt reinlegen damit die Dateien auch mit compiliert werden. Die Fehlermeldungen vom Linker sagen auch das du die Dateien der Library nicht mit compiliert hast. Es reicht nicht nur die Header Dateien zu includen.
soo die EPS-Geschichte läuft nun so halbwegs. Er compiliert zwar, aber spuckt kein Hex-File aus... Ich meine im "normalen" CodeBlocks konnte man bei den Compilersettings ein Häkchen bei "erzeuge Hexfile"(sinngemäß) setzen, aber ich find das nicht mehr. Könnt ihr mir da auf die schnelle weiterhelfen? Und dann werd ich mir nun mal das diller-tech angucken =)
HEUREKA!! Es geht es geht es geht. Ich glaub ich hab mich in meinem ganzen Leben noch nicht so darüber gefreut, das n paar simple LED´s an und ausgehen. In den Buildoptions stand das er eine project.mot erstellen soll, daraus hab ich dann einfach .hex gemacht, und nun macht er mir auch meine Hex. Nochmal vielen Dank für eure Hilfe, vom halbtotgefreuten Chaos =)
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.