Toolchains für STM32CubeMX IDE: Welche Auswahl gibt es?

Ich habe gerade den STM32CubeMX installiert (die ursprüngliche ARM-IDE von ST Microelectronics, wenn ich das richtig verstehe). Nach der Installation habe ich versucht, ein neues Projekt für ein DISCOVERY-Kit zu öffnen, das ich habe (STM32F0DISCOVERY).

Geben Sie hier die Bildbeschreibung ein

Nachdem ich jedoch fortgefahren bin, wurde Open projectich aufgefordert, eine Toolchain zu installieren:

Geben Sie hier die Bildbeschreibung ein

Wie ich enthüllte, ist EWARM eine voll funktionsfähige IDE von IAR, daher war ich überrascht, dass die IDE von STM die IDE von IAR für ihre Arbeit benötigt (außerdem ist EWARM von IAR keine Freeware - es ist eine sehr teure Software, wie ich weiß).

Im Projekteinstellungsfenster gibt es drei Auswahlmöglichkeiten:

Geben Sie hier die Bildbeschreibung ein

  • IARs EWARM,

  • Keils MDK-ARM und

  • TrueSTUDIO von Atollic.

Alle sehr teuer :(

Die Fragen lauten also:

  1. Stimmt es, dass der STM32CubeMX von STM mir keine kostenlose Funktionalität bietet?

  2. Wie ich aus der Nachricht verstehe, kann das Projekt mit einer anderen Toolchain verknüpft werden, also kann ich einen Blick auf GCC oder eine preisgünstigere Toolchain (natürlich bevorzuge ich lieber freie Software) werfen?

  3. Falls ja: Wie kann ich GCC mit Cube nutzen?

Sie können gcc mit jeder flexiblen IDE Ihrer Wahl verwenden.
@ChrisStratton wie kann ich GCC verwenden? Ich sehe in der Auswahl nur Toolchains von IAR, Keil und Atollic. Alle sind teuer :(
Sie müssten es selbst installieren und die IDE anpassen, um es direkt oder über einen Makefile-Build oder einen anderen Build-Treiber zu steuern. Es ist im Allgemeinen durchaus machbar (obwohl wer Ihre spezielle IDE kennt), aber Sie sind mit den Details allein. Mit anderen Worten, Sie können bezahlen oder lernen. Ich wähle letzteres, weil es für persönliche Projekte billiger ist und weil es sich für professionelle Projekte flexibler in bestehende oder gewünschte organisatorische Softwareentwicklungspraktiken einfügt.
Danke, @Chris! Warum brauche ich Cube überhaupt? Nur als Texteditor?
Du brauchst es nicht. Sieht so aus, als ob es Spaß macht, was-Pin-welche Funktionen hat, aber Sie müssen das jedes Mal gegen wechselnde Tools/Praktiken abwägen, wenn Sie den Chip-Anbieter wechseln.
Ich würde Ihnen wärmstens empfehlen, sich von Cube/HAL fernzuhalten. Es hat noch mehr Bugs als SPL. Verwenden Sie die Beispiele aus cube als Einstieg und wechseln Sie später zu libopencm3.
Haben Sie darüber nachgedacht, Eclipse mit gcc zu verwenden (gemäß Chris Suttons Antwort)?
Cube als 'IDE'? Tatsächlich ist Cube laut Dokumentation nur ein Tool zum Generieren von grundlegendem und "sich wiederholendem" Code wie das Konfigurieren des Oszillators, das Festlegen der Portrichtung usw. und keine vollwertige IDE wie EWARM oder Eclipse. Auf diese Weise ist es nicht der Fall, dass Cube andere IDEs „erfordert“. Es ist wahrscheinlich nur das Anpassen des automatisch generierten Codes an diese tatsächlichen IDEs. Wir müssen die Dokumentation durchgehen...

Antworten (4)

Für eine IDE, die einige Funktionen wie den Cube bietet, kann ich vorschlagen, dass Coocox vielleicht einen Versuch wert ist. Es ist kostenlos, basiert auf Eclipse und unterstützt einige der STM-Boards von Haus aus.

Nach meinem Verständnis ist der CubeMX nur ein Codegenerator, der Ihnen Code schreibt (in den Ordner, den Sie ihm geben), in dem die gesamte Peripherieinitialisierung stattfindet. Alle anderen Entwicklungen müssen in einer normalen IDE stattfinden.


Aktualisieren:

Kürzlich wurde bekannt gegeben, dass Atollic Truestudio jetzt kostenlos für STM32-Benutzer angeboten wird.

Ich denke, das wird einem breiteren Publikum Zugang zu einer High-End-IDE und Toolchain geben. Ich habe es nicht benutzt, daher kann ich seine Funktionen nicht kommentieren, aber die eingebaute harte Fehleranalyse im Debugger könnte sich zum Beispiel als nützlich erweisen.

Ich weiß, es ist ein alter Beitrag, aber vielleicht hilft es anderen...

Verwechseln Sie Toolchain nicht mit IDE. Sie könnten die IDE als das letzte Glied in der Toolchain betrachten, aber eine Toolchain impliziert nicht unbedingt eine IDE . Eclipse ist eine IDE, die sich mit vielen verschiedenen Toolchains verbindet. In meinem Fall (ARM gcc build [Linker, Compiler, Assembler usw.] + Automake) ist meine Toolchain.

Ich verwende keine IDE. Ich nehme den generierten Quellcode von CubeMX und schreibe Makefiles, um ihn auf die von mir gewählte Weise zu kompilieren. Die Toolchain-Option in meinen CubeMX-Optionen ist TrueStudio, da diese Option ein nettes Linker-Skript generiert, das ich leicht ändern kann. Dies trotz der Tatsache, dass ich TrueStudio nicht verwende (und auch nicht beabsichtige, es zu verwenden).

Wenn Sie gcc verwenden möchten, großartig. Aber die IDE-Auswahl ist weitgehend eine unabhängige Wahl, es sei denn, die von Ihnen gewählte IDE zwingt Ihnen einen anderen Compiler auf. Wenn Sie wirklich eine IDE wollen (meiner Meinung nach sind sie eher im Weg als hilfreich), müssen Sie möglicherweise eine auswählen, die direkt mit automake (Makefiles) oder gcc zusammenpasst. Eclipse ist die einzige, die ich kenne.

Einige Compiler haben unterschiedliche Konventionen für den Umgang mit Konstrukten auf Präprozessorebene (Makros, Pragmas, Bedingungen usw.), aber der tatsächliche Quellcode wird nicht sehr unterschiedlich sein.

Ich würde die Toolchain von Leaflabs ausprobieren, die sie für ihre Maple-Hardware verwenden . Das Maple ist ein Board im Arduino-Stil, auf dem ein STM32 Cortex M3-Prozessor ausgeführt wird. Sie verschenken die Toolchain mit der IDE und die IDE führt Windows aus, sodass die Toolchain für Ihre Situation funktionieren kann. Keine Garantien natürlich.

In der Übersetzung enthält die Maple-Umgebung Windows-Binärdateien für einen Bare-Metal-Arm-gcc, genau wie die Arduino-Umgebung Binärdateien für avr-gcc enthält.
Jep. Das wars so ziemlich.

Alle Tools haben eine eingeschränkte, aber kostenlose Version....

Obwohl ich im selben Schuh wie Sie bin, verwende ich GUN/Linux, leider laufen alle oben genannten Tools unter WinOS.

Nach einiger Suche habe ich eine Lösung gefunden. Ich werde das demnächst genau testen, aber bevor ich die Lösung teile: Lest den Blogbeitrag von Baoshi . Er hat eine Beschreibung und einen MakefileDateigenerator.

Einige Ergänzungen: Mit dem neuesten Cube brauche ich einen Hack, weil Cube nicht die richtige *.ldDatei für F0 generiert, also habe ich von einem anderen Tool *.ldfür dasselbe Ziel kopiert. Vielleicht ist es eine Linux-bezogene Frage.

Willkommen bei EE.SE. Bitte fügen Sie einige der Informationen aus dem Link zu dieser Antwort hinzu. Nur-Link-Antworten werden nicht empfohlen, da der Link zu einem späteren Zeitpunkt möglicherweise nicht mehr verfügbar ist.