Forum: Mikrocontroller und Digitale Elektronik IDE für embedded C CortexM STM32


von ElBartscho (Gast)


Lesenswert?

Hi Guys,

ich bin momentan auf der Suche nach einer IDE zur embedded C Entwicklung 
für die längerfristige Pflege von Cortex M STM32 Projekten in 
überschaubarem Team mit 3+ Personen.

Wichtig ist Flexibilität. Ich will nicht an eine Toolchain oder an ein 
CodeSizeLimit gebunden sein.
Die grundsätzliche Tendenz läuft in Richtung OpenSource.
GCC, FreeRTOS vergleichbare oder sogar unterschiedliche Toolchains wären 
denkbar, wenn die notwendigkeit besteht.
Wir bezahlen aktuell doch stattliche Lizenzkosten für unsere (sicherlich 
guten) Werkzeuge, aus dem Hause Keil.
Makefiles sollen zukünfitg den gesamten Buildprozess besser beherrschbar 
machen und ebenfalls Jenkins verarztet werden, sobald der Code commitet 
wird.

In Sachen Debugging/Trace/Codeanalyse/Codecoverage bietet KeilµV 
natülich mächtige Werkzeuge innerhalb der IDE an,
die mit überschaubaren Konfigurationsaufwand nutzbar sind.
Gerade für diese Aufgaben würde mich interessieren ob da andere IDEs und 
Debugwerkzeuge (Von mir aus auch mehrere) mithalten können?
Wie sieht es z.B. im Puncto RTOS einbettung in den Debugprozess aus? 
Laufzeitanalysen, Trace, OnTagetDebugging, CodeCoverage...
Welche Werkzeuge nutzt Ihr für diese Aufgaben? Welche Debugger nutzt ihr 
dafür?
Das teilweise ein Hoher Konfigurationsaufwand notwendig sein wird ist 
mir bewusst.

Generell finde ich Eclipse gut. Allerdings habe ich etwas bedenken ob es 
mit der Fülle an Konfigurationsmöglichkeiten
zumutbar ist. aber z.B. Konfigurierbare Funktionsheader für Doxygen 
finde ich eine sehr schöne Sache um einfach einen einheitlichen Stil
im Team zu bewahren. Aus Eclipse kenne ich auch JUnit oder GTest für C++ 
zum Softwaretest was natürlich auch eine schöne Sache ist.

Die IDE sollte folgende Eigenschaften mitbringen:
- Konfigurationsdatei für die IDE verteilbar. Alle Teammitglieder 
arbeiten mit gleichen <TAB>/<SPACE>, Funktionsheader etc..
- Subversion integration
- IntelliSense
- Support Makefile
- Kein Codelimit
- Umfangreiche Debugwerkzeuge (wenn nötig auch separat)
- Testframework zum Unittest (wenn nötig auch separat)
- Debuggeranbindung flexibel.

Ich habe mich natürlich schon etwas umgeschaut und eine Kandidaten 
recherchiert. Natürlich könnte man auch sagen man bleibt bei Keil.

Hier ist eine interessante Seite mit einigen vielversprechenden IDES
http://www.emcu.it/STM32/What_should_I_use_to_develop_on_STM32/What_should_I_use_to_develop_on_STM32.html#Free_C_CompilerIDE

Ich bin gespannt was ihr zu sagen habt.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

ElBartscho schrieb:

> Die IDE sollte folgende Eigenschaften mitbringen:

> - Support Makefile

Du könntest Dir mal CMake angucken. Meiner Meinung nach ist das deutlich 
einfacher und portabler als make (leider aber auch nicht der Weisheit 
letzter Schluss).

> - Umfangreiche Debugwerkzeuge (wenn nötig auch separat)

GDB ist recht gewöhnungsbedürftig. Dafür aber auch recht stabil und gut 
skriptbar.

> - Testframework zum Unittest (wenn nötig auch separat)

Ich bin mit Boost.Test sehr zufrieden. Mit einem entsprechendem 
"Invoker" müsste man das sogar auf einem STM32 zum Laufen bekommen. 
Wollt Ihr Unittests auf der Zielplattform machen?

Das hier finde ich auch sehr vielversprechend: 
https://github.com/philsquared/Catch

> Ich bin gespannt was ihr zu sagen habt.

Ich bin ja ein Freund von CMake + Compiler/Linker + Editor. Darauf kann 
in der Regel einfach jeder seine IDE, seiner Wahl drauf aufsetzen.

Ich würde aber schon drauf achten, dass die Builds auch ohne IDE 
durchführbar sind, sonst wird das schwierig mit CI.

mfg Torsten

von Horst (Gast)


Lesenswert?

Hört sich für mich auch danach an, als ob eine "starre" IDE nicht das 
richtige wäre. Zu oft hab ich selbst erlebt, wie diese sich selbst 
zerlegt haben, sich alles geändert hat, man nichts mehr wieder findet...

Ich präferiere wie Torsten etwas wie Makefiles/CMake, und insbesondere 
an der Stelle nichts mit der IDE verwurstetes, denn wenn es nicht beim 
nächsten Update kaputt ist, dann spätestens beim Übernächsten.
Außerdem kann man sich verschiedene Editoren auch so einrichten, dass 
sie eigentlich alle Vorteile einer IDE ebenfalls mitbringen. Ich 
verwende Emacs mit zB irony/company-irony für code completion (oder 
intellisense) und so gibt es eigentlich für alles was das Herz begehrt 
Pakete.

Sowas wie Tabs/Spaces geht natürlich in Emacs auch einzustellen, aber 
wenn andere vielleicht einen anderen Editor verwenden wollen, dann würde 
ich über einen Check der Code Compliance zB erst Jenkins-seitig 
nachdenken...

von Christian K. (the_kirsch)


Lesenswert?

Ich benutze für meine STM32 Projekte Eclipse mit GCC und GDB
erfüllt alle deine Punkte

Eclipse kann auch mit makefiles umgehen ich bevorzuge aber den internal 
Build.



Zum Programmieren und Debuggen nehme ich OpenOCD und ein JTAG-Adapter

: Bearbeitet durch User
von ElBartscho (Gast)


Lesenswert?

Hallo zusammen,

erst mal Danke für eure Erfahrungen.

Über CMake habe ich schon gelesen, mich aber noch nicht tiefer damit 
befasst. Es scheint mir ein gangbarer Weg zu sein. Ich werde mich damit 
noch etwas auseinandersetzen.

Mit den GNU Debugwerkzeugen habe ich bis dato noch keine erfahungen 
sammeln können. Ich gehe davon aus das es vernüftige Pluigins für 
diverse Editoren gib. Wie sieht das Handling mit Betriebssystemen aus 
wenn man GDB verwendet?

Zum Testframework bin ich u.a. über unity und cunit gestolpert.
Automatische Unit Tests auf der Zielplattform sind ein wichtiges Ziel.
Tests sollen im Rahmen der CI bei einem commit automatisch angetriggert 
werden.
Es wäre jedoch wünschenswert, wenn auch Tests gehandelt werden können, 
für die nicht unbedingt eine Zielplattform notwendig ist. Also ein 
klassischer SW Test in der zum Beispiel Funktionsparameter durchgetestet 
werden.

Allgemein bin ich auch der Freund eines Editors der dann auf die eigenen 
Bedürfnisse Konfiguriert wird. Aber gerade das Konfigurieren von z.B. 
Eclipse stellt ja immer eine größere Herausforderung dar. Aus diesem 
Grund brauche ich eine Möglichkeit die IDE bzw. Editor schnell so zu 
konfigurieren, dass ein Arbeiten inkl. Debugger möglich ist.
Genau das frustriert nämlich die Teammitglieder die sich nicht intensiv 
mit der Materie auseinandergesetzt haben.
Wenn eine Konfigurationsdatei als Basis verteilbar wäre, würde das 
sicherlich helfen.
Das einrichten von Templates geht damit einher. In Eclipse erzeugt die 
Eingabe von "/**" über einem Funktionsprototyp z.B. automatisch den 
konfigurierbaren Funktionsheader. Solche dinge wären z.B. auch sehr 
Nice.

Grüße

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

ElBartscho schrieb:

> Wenn eine Konfigurationsdatei als Basis verteilbar wäre, würde das
> sicherlich helfen.

Das hier könnte Dir helfen: http://editorconfig.org

von Felix C. (felix_c13)


Lesenswert?

Was ist mit Atollic? Das basiert doch auch auf Eclipse?

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
Noch kein Account? Hier anmelden.