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.
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
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...
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
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
ElBartscho schrieb: > Wenn eine Konfigurationsdatei als Basis verteilbar wäre, würde das > sicherlich helfen. Das hier könnte Dir helfen: http://editorconfig.org
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.