Ja oben im Betreff steht es ja. Was nutzt ihr denn so um eure STM32 Controller zu programmieren? Ich mache hier mal eine Frage-Liste dir ihr durchgehen könnt und kommentiert grad drunter. Nutzt ihr eine IDE? Ja / Nein Wenn ja, welche? Wie war die Konfiguration? Welche Toolchain ist in Betrieb? Wie handhabt ihr es mit dem debuggen und flashen? Nutzt ihr CubeMX seit es die Hal-Libs gibt? Wie sind eure Erfahrungen mit CubeMX? Wie handhabt ihr es mit komplexen Dingen, die middleware erfordern (ethernet, usb, etc..) konfiguriert ihr euch selber die middleware auf die hal-lib oben drauf, nutzt ihr CubeMX oder doch copy&paste aus fertigen Beispielen? Nutzt ihr Libraries die nochmals eine weitere Abstraktion als HAL bieten? Wenn ja, welche und woher habt ihr diese? Gruß
Bernd schrieb: > Nutzt ihr eine IDE? Ja / Nein Teils teils. Meist nur KWrite, zum debuggen ist Eclipse doch ganz praktisch. > Wenn ja, welche? Wie war die Konfiguration? Eclipse war Ok. Bis das mit dem JLink und allem funktioniert hat, muss man die Parameter richtig einstellen. Teils durch probieren. SW4STM32 ging eigentlich direkt. Das JLink-Plugin nachgeladen, ging ohne Probleme. > Welche Toolchain ist in Betrieb? Bei beiden gibt es ab und zu Probleme mit Breakpoints, ob es an der gdb-Schnittstelle von Segger liegt ka. Da sind ab und zu noch die alten gesetzt, also nach dem kompilieren. SW4STM32 nutzt Ressource in Eclipse und das geht nur mit absoluten Pfaden in der Makefile. Sprich ich brauch ein Eclipse um das zu kompilieren und kann nicht einfach 'make' in der Konsole eingeben (wenn ich es verschoben hab). Ist aber eine Sache von Eclipse. > Wie handhabt ihr es mit dem debuggen und flashen? Auf den Käfer klicken :P (Plugin für Segger JLink) > Nutzt ihr CubeMX seit es die Hal-Libs gibt? Ja auch die alte HAL davor. Mit Cube ist vieles einfacher. Bin echt kein Fan von so etwas, aber ob ich das strukt von Hand befülle oder einfach den Clock-Tree zusammen klicken kann, spricht nichts dagegen. Kommt das gleiche raus. > Wie sind eure Erfahrungen mit CubeMX? Sehr gut > Wie handhabt ihr es mit komplexen Dingen, die middleware erfordern > (ethernet, usb, etc..) konfiguriert ihr euch selber die middleware auf > die hal-lib oben drauf, nutzt ihr CubeMX oder doch copy&paste aus > fertigen Beispielen? USB gibts mittlerweile direkt von Cube. Läuft ganz gut. Ethernet auch. Z.B. das STMWin einfach zum Projekt hinzu gefügt. Oder andere Sachen (z.B. Bootloader-API etc) ist bei meinen Projekten immer so, dass ich das Projekt nur einmal mit Cube erstelle und bei Änderungen nur noch die entsprechenden Dateien kopiere, bzw. das direkt selbst ändere. > Nutzt ihr Libraries die nochmals eine weitere Abstraktion als HAL > bieten? Ne so viele Nerven habe ich dann auch wieder nicht. RTOS geht übrigends auch direkt mit Cube. Hab bei einem Projekt davor das noch von Hand zusammen gestellt und in mein Projekt kopiert.
Nehm Arduino IDE mit stm32duino Libs. STLink v2 zum Flashen.
Keine IDE, Texteditor + Makefile. Als Toolchain arm-none-eabi aus den Distributionsrepos. Programmieren und Debuggen mit openocd + gdb für die Boards mit STLink v2, oder Programmieren mit stm32flash und dem seriellen Bootloader. Mit Cube und HAL hab ich mich noch nicht allzu sehr befasst. Dafür funktioniert es inzwischen mit den 'alten' libs und einigen Zusatzbibliotheken ganz annehmbar.
Meine ersten Schritte mit dem STM32F4 habe ich mit Atollic gemacht. Vorteile: Bekannte Umgebung von Eclipse, alles in einem Paket, keine Konfiguration nötig. Nachteil: Codebeschränkung von 32kByte Hier habe ich mich auch mit der HAL auseinander gesetzt. Nicht nur, wie man diese verwendet, sondern was auch für ein SourceCode dahinter steht. Die ineffizienz des Codes hat mich erschreckt, die Initialisierungsroutinen fand ich zu verwirrend. Da habe ich mich entschlossen, wieder direkt auf Register-Ebene zu arbeiten. CubeMX habe ich mir noch nicht genauer angeschaut, scheint aber sehr komfortabel zu sein (vor allem Clock Tree und PinMux). Seit kurzem arbeite ich mit eclipse, Gnu GCC und OpenOCD. Die Installation klappte ohne Probleme nach dieser Anleitung: Beitrag "STM32-Toolchain mit Eclipse CDT 4.3, GnuArmEclipse, OpenOCD 0.8.0, Gnu Arm GCC 4.8, STM32CubeMX" Als Middleware benutze ich bisher meine eigenen Libs. Im Rahmen von Forschung und Entwicklung habe ich mir angeschaut, wie Ethernet und Bluetooth funktioniert. USB kommt als nächstes, bis dahin nutze ich noch die STM VCP Bibliothek. lwIP kam für mich nicht in Frage, da ich mir den Source Code angeschaut habe. Diesen Programmierstil möchte ich nicht unterstützen! Da ich nun meine Projekte auf FreeRTOS migriere, werde ich meine eigene Bluetooth Library verwerfen und auf BtStack setzen. Das ist aber zur Zeit noch in Arbeit. Mit FreeRTOS kann ich nun meine Applikation modular erweitern, ohne etwas am StartupCode zu ändern. Ein angepasstes Linkerskript lässt automatisch alle Initialisierungen aufrufen und Tasks erstellen, ohne den Startup Code anfassen zu müssen. Ich debugge mit einem STlink V2, wobei das Programm aus dem RAM läuft. Dabei wird zwar gerne der Speicher knapp, aber es reicht, um einzelne Module zu testen und zu debuggen. Das endgültige Programm wird dann ebenfalls mit dem STlink ins Flash geschrieben.
> Nutzt ihr eine IDE? Ja / Nein MDK-ARM > Wenn ja, welche? Wie war die Konfiguration? CMSIS-Pack, durch CPU Auswahl > Welche Toolchain ist in Betrieb? armcc > Wie handhabt ihr es mit dem debuggen und flashen? ULINK pro, Analyzer der IDE > Nutzt ihr CubeMX seit es die Hal-Libs gibt? aktuell nein > Wie handhabt ihr es mit komplexen Dingen, die middleware erfordern > (ethernet, usb, etc..) konfiguriert ihr euch selber die middleware auf > die hal-lib oben drauf, nutzt ihr CubeMX oder doch copy&paste aus > fertigen Beispielen? CMSIS-RTOS, ARM middleware > Nutzt ihr Libraries die nochmals eine weitere Abstraktion als HAL > bieten? nur CMSIS Headerfile-Standard. Da ich an dieser Stelle oft am CPU Limit arbeite, schreib ich die Treiber lieber selber VG, /th.
Bernd schrieb: > Nutzt ihr eine IDE? Ja / Nein Beruflich: MDK µVision (leider) Privat: aktuell das neue Attolic Truestudio, jetzt ohne CodeSize limit > Welche Toolchain ist in Betrieb? arm-gcc oder GCC hab noch nicht geschafft llvm ans laufen zu bekommen > Wie handhabt ihr es mit dem debuggen und flashen? bequem von der IDE aus > Nutzt ihr CubeMX seit es die Hal-Libs gibt? Nur für die neusten STM32 die keine Stdlib mehr haben. Will aber noch die HAL von dem ChinbiOS projekt mal ausprobieren oder die open-cm3 lib > Wie sind eure Erfahrungen mit CubeMX? bisher eher wechselhaft > Nutzt ihr Libraries die nochmals eine weitere Abstraktion als HAL > bieten? Ja, diese werden dann aber für meien zwecke angepasst > Wenn ja, welche und woher habt ihr diese? betriebs intern entwickelt
Little B. schrieb: > Meine ersten Schritte mit dem STM32F4 habe ich mit Atollic gemacht. > Vorteile: Bekannte Umgebung von Eclipse, alles in einem Paket, keine > Konfiguration nötig. > Nachteil: Codebeschränkung von 32kByte Atollic ist mittlwerweile nicht mehr Codegrößenbeschränkt. > Nutzt ihr eine IDE? Ja / Nein > Wenn ja, welche? Wie war die Konfiguration? uVision5 / MDK-ARM IAR Atollic openSTM32 CooCox (1.7) Irgendwo sind sie alle gleich. > Welche Toolchain ist in Betrieb? Die jeweilige Hersteller Toolchain. > Wie handhabt ihr es mit dem debuggen und flashen? per Debugger ULink2 ST-Link > Nutzt ihr CubeMX seit es die Hal-Libs gibt? erst in letzter Zeit > Wie sind eure Erfahrungen mit CubeMX? Bisher gut. Kann diese leider nicht durchgängig nutzen, da nicht alle benötigten Änderungen unverändert gelassen werden. > Wie handhabt ihr es mit komplexen Dingen, die middleware erfordern > (ethernet, usb, etc..) konfiguriert ihr euch selber die middleware auf > die hal-lib oben drauf, nutzt ihr CubeMX oder doch copy&paste aus > fertigen Beispielen? Entweder setze ich es selbst auf und nehme Beispiele/CubeMX als Vorlage oder lasse CubeMX gleich die Arbeit der Initialisierung machen. Warum willst Du es wissen? Machst Du als nächstes die gleiche Umfrage auch für die anderen Prozessorfamilien?
Als totaler STM32-Anfänger hab ich "System Workbench for STM32" mit CubeMX benutzt (für ein SMM32 F3 Discovery Board), und eigentlich keine Probleme gehabt... CooCox hingegen hat bei mir extrem rumgezickt...
Erstmal danke für eure Antworten! Ich bin gerade dabei meine ersten Erfahrungen mit dem STM32 zu sammeln. Habe unter Anderem schon cocox ausprobiert, genauso wie das OpenSTM32. Wirklich warm geworden bin ich mit keinem. Komplexere Sachen wie z.B. USB, die ich mit CubeMX generiert hatte habe ich nicht ans laufen bekommen. OpenSTM32 kannte teilweise Datentypen wie uint_xy nicht, teilweise Compilerfehler weil er irgendwelche Header-Dateien nicht auflösen konnte obwohl explizit der Pfad dazu angegeben war. Genauso in OpenSTM32. Ich öffne ein frisch erstelltes Projekt von CubeMX und zeigt erstmal > 1000 Fehler an. Im großen und ganzen für mich bisher relativ frustrierend, also nicht der STM32 an sich sondern dass die IDEs so viel Probleme machen. Werde aber bald ein größeres Projekt mit einem F407 machen müssen und will eine IDE auf die ich mich verlassen kann. Aber wie sagt man so schön: 99,9% der Computerfehler sitzen vor dem Computer. Wahrscheinlich liegt es an meiner Unfähigkeit. Aber das Atollic werde ich mal antesten, danke für den Tipp!
Genauso das Toolchain tutorial mit Eclipse wo jemand den Link gepostet hat, werde ich auch mal versuchen. Danke ebenfalls hierfür!
Bernd schrieb: > Genauso in OpenSTM32. Ich öffne ein frisch erstelltes Projekt von CubeMX > und zeigt erstmal > 1000 Fehler an. Kann ich so nicht bestätigen. Ich vergesse aber schonmal gerne die Projektsettings zu setzen.
Das atollic studio ist auch ganz brauchbar. Seit kurzen gibt es keine Codesizebegrenzung in der lightversion mehr.....
> Nutzt ihr eine IDE? Ja > Wenn ja, welche? Wie war die Konfiguration? SEGGER Embedded Studio https://www.segger.com/embedded-studio.html Konfiguration? Das funktioniert einfach out of the box > Welche Toolchain ist in Betrieb? SES benutzt den GCC Comppiler > Wie handhabt ihr es mit dem debuggen und flashen? Auch mit SES und natürlich J-Link. > Nutzt ihr CubeMX seit es die Hal-Libs gibt? Wenn es geht, dann lieber alles selber machen. Brauche aber da auch meistens nicht viel. > Wie sind eure Erfahrungen mit CubeMX? Leider wenig Erfahrung damit. > Wie handhabt ihr es mit komplexen Dingen, die middleware erfordern > (ethernet, usb, etc..) konfiguriert ihr euch selber die middleware auf > die hal-lib oben drauf, nutzt ihr CubeMX oder doch copy&paste aus > fertigen Beispielen? Middleware benutze ich embOS und die anderen Middleware Produkte von Segger. Klar, ist nicht kostenlos, aber funktioniert einwandfrei und vor allem auch out of the box. Kein doofes Rumgebastel. > Nutzt ihr Libraries die nochmals eine weitere Abstraktion als HAL > bieten? Nö.
Bernd schrieb: > Nutzt ihr eine IDE? Ja / Nein Ja, em::Blocks: http://http://www.emblocks.org/ Nachfolger ist EmBitz > Wenn ja, welche? Wie war die Konfiguration? Einfach, eigentlich nur installieren und loslegen. > Welche Toolchain ist in Betrieb? GCC vom em::Blocks. > Wie handhabt ihr es mit dem debuggen und flashen? Wird von der IDE erledigt. Adapter: ST-LINK/V2 clone (über USB). > Nutzt ihr CubeMX seit es die Hal-Libs gibt? Nein, bis jetzt nicht. > Wie sind eure Erfahrungen mit CubeMX? Mal kurz angeschaut, nur für die Berechnung der Clocks zu aufgeblasen. Andere Funktionen noch nicht probiert. > Wie handhabt ihr es mit komplexen Dingen, die middleware erfordern > (ethernet, usb, etc..) konfiguriert ihr euch selber die middleware auf > die hal-lib oben drauf, nutzt ihr CubeMX oder doch copy&paste aus > fertigen Beispielen? Bis jetzt nicht gemacht. > Nutzt ihr Libraries die nochmals eine weitere Abstraktion als HAL > bieten? Nein.
:
Bearbeitet durch User
Bernd schrieb: > Was nutzt ihr denn so um eure STM32 Controller zu programmieren? Warum so beengt? Ich benutze in der ARM-Liga fast alles, was sich benutzen läßt und was mir gefällt, also von NXP, ST, Nuvoton bis Freescale. Kein Atmel, die waren mir bei den alten M40xxxx und Konsorten zu blöd. Idst aber schon 15 Jahre her. Auch keine Stellaris, auch keine Infineon's - die sind mit ihrem ab 0 beginnenden ROM mir einfach zu blöd. Wenn die ihre Kunden unbedingt an ihren DAVE anketten wollen, dann eben OHNE MICH. Also mein Vorschlag: "Was nutzt ihr denn so um eure ARM/Cortex Controller zu programmieren" Antwort: zumeist den eingebauten Bootlader, denn den hat es immer und kostenlos. > Nutzt ihr eine IDE? Ja / Nein NEIN. definitiv. Man macht sich damit nur zu abhängig. > Welche Toolchain ist in Betrieb? Keil. > Wie handhabt ihr es mit dem debuggen und flashen? Ich schreibe normalerweise fehlerfreien Code - oder zumindest solchen, den ich durch schlichtes Nachdenken debuggen kann. Nur dort, wo das Manual mißverständlich ist oder gar schweigt, bin ich auf's Probieren angewiesen. Kurzum, wenn ich debuggen will, dann per Mini-Postmortem-Debugger, der direkt auf dem Zielsystem läuft. > Nutzt ihr CubeMX seit es die Hal-Libs gibt? Nö. Sowas würde ich freiwillig auch nie tun, weil es nach meiner Erfahrung nur alles aufbläht und nicht wirklich und nachhaltig nützt. Also lieber die Low-Level-Treiber selber schreiben. Wenn man das für ein paar Chips gemacht hat, sieht man die Ähnlichkeien und es wird geradezu simpel. > Wie sind eure Erfahrungen mit CubeMX? siehe oben. > Wie handhabt ihr es mit komplexen Dingen, die middleware erfordern Für einiges Zeugs habe ich mittlerweile genug eigenes Zeugs im Portfolio. Wenn das mal nicht ausreicht, z.B. komplexere Menüsysteme, Fonts oder so, dann schreib ich mir ein Entwurfsprogramm mit Delphi. > Nutzt ihr Libraries die nochmals eine weitere Abstraktion als HAL > bieten? Hä? Entweder ist ein Low-Level-Treiber das, was sein Name sagt, und dann abstrahiert er die Hardware gut genug - oder er taugt nur für die Mülltonne. W.S.
Hallo, ich werde auch demnächst wieder ein bisschen zum Programmieren kommen, vermutlich ein STM32F3. Habe früher mal CooCox gearbeitet, komme allerdings mit der neuesten Version nicht mehr ganz zurecht. Deswegen wollt ich mir eigentlich was neues suchen. Vom Schreiben würd ich VisualStudio vorziehen, ich überlege ob ich mir die Studentenversion von VisualGDB kaufen soll. Hat jemand Erfahrung damit?
W.S. schrieb: > Ich schreibe normalerweise fehlerfreien Code - oder zumindest solchen, > den ich durch schlichtes Nachdenken debuggen kann. Ich hatte schon immer den Verdacht, dass ich nicht der Hellste bin. Jetzt weiss ich es.
Nutzt ihr eine IDE? Ja / Nein Visual Studio 2015 mit VisualGDB - Benutze das VS noch für andere .Net Projekte und da ich für AVRs das Atmel Studio ist die Bedienung überall gleich. Kostet zwar Geld aber lässt sich je nach Version auch für Linux bzw. Raspberry Projekte verwenden. Der Preis (74€) für die Embedded-Version ist nicht unverschämt. http://visualgdb.com/ Wenn ja, welche? Wie war die Konfiguration? Plug and Play Welche Toolchain ist in Betrieb? Ich glaube arm-none-eabi Wie handhabt ihr es mit dem debuggen und flashen? Direkt im Studio auf debuggen drücken und hü Nutzt ihr CubeMX seit es die Hal-Libs gibt? Nur um mir die Clock-Konfiguration anzuschauen Wie sind eure Erfahrungen mit CubeMX? keine Wie handhabt ihr es mit komplexen Dingen, die middleware erfordern (ethernet, usb, etc..) konfiguriert ihr euch selber die middleware auf die hal-lib oben drauf, nutzt ihr CubeMX oder doch copy&paste aus fertigen Beispielen? Erledigt VisualGDB gleich mit beim anlegen eines neuen Projekts mit Nutzt ihr Libraries die nochmals eine weitere Abstraktion als HAL bieten? nö Wenn ja, welche und woher habt ihr diese?
Bernd schrieb: > Nutzt ihr eine IDE? Ja / Nein Keine IDE. Meist gedit, seit kurzem auch gnome-builder. > Welche Toolchain ist in Betrieb? arm-none-eabi-* 5.2 (aus den Fedora Paketquellen) > Wie handhabt ihr es mit dem debuggen und flashen? Zum Flashen: openocd 0.9, mit Pseudotarget in den Buildskripten (`scons program`) Zum Debuggen: openocd + arm-none-eabi-gdb (siehe auch https://github.com/roboterclubaachen/xpcc/blob/bdb717048ddee044d13660328762c004d40fbe4f/examples/stm32f3_discovery/gdb/Readme.md) > Nutzt ihr CubeMX seit es die Hal-Libs gibt? Nein. > Nutzt ihr Libraries die nochmals eine weitere Abstraktion als HAL > bieten? Benutze für alles xpcc welches u.a. C++ Streams zur Ausgabe über UART und Treiber für diverse externe Chips bietet. (https://github.com/roboterclubaachen/xpcc) Max
Hallo, ich nochmal (Threadersteller) Mit dem TrueStudio bin ich warm geworden. Habe auf dem STM32F7 Discovery Board jetzt das LCD und USB-CDC zum Laufen bekommen. War zwar jetzt auch ein Nachmittag dran aber irgendwie kann ich mich damit anfreunden! Mit CubeMX habe ich gar nix mehr gemacht (inzwischen vom PC gelöscht). Habe mir ein leeres Projekttemplate für den F7 runtergeladen und habe darauf weiter aufgebaut. Für LCD habe ich die Libs eingebunden die beim F7-Hands-On mitgegeben wurden und für das USB-CDC habe ich das hier genutzt: http://stm32f4-discovery.com/2015/08/hal-library-21-multi-purpose-usb-library-for-stm32fxxx/ Geht alles Danke euch nochmals!
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.