Ich habe ein STM32 Discovery Board und möchte es unter Linux programmieren können.
Was ist der einfachste Weg, dies zu tun?
linux
stm32
development
development-tools
Gordon Williams
quelle
quelle
Antworten:
Eine einfache Möglichkeit zum Programmieren und Debuggen des STM32 Discovery-Boards (oder eines STM32 mit einem ST-Link-Programmierer) ist die Verwendung des "stlink" -Projekts https://github.com/texane/stlink (OpenOCD scheint jedoch ebenfalls beliebt zu sein).
ST Nucleo-Karten werden auch als USB-Flash-Gerät angezeigt. Sie müssen also nicht einmal
stlink
die Datei kopieren.Es gibt einige gute Seiten zum Entwickeln für die STM32-Erkennung unter Linux, z. B. http://gpio.kaltpost.de/?page_id=131 und http://torrentula.to.funpic.de/2012/03/22/. Einrichten der STM32F4-Arm-Entwicklungs-Toolchain / und http://jethomson.wordpress.com/2011/11/17/Getting-Started- With-The-StM32F4Discovery-Inlinux/
Allerdings fand ich den letzten Link am nützlichsten. Es wird gezeigt, wie STs STM32-Projekte unverändert erstellt werden. Die einzige Änderung besteht darin, sein Makefile hinzuzufügen, das als perfekte Lösung erscheint.
In neueren Versionen von Ubuntu gibt es ein Paket, das Sie installieren können und das einen ARM-Compiler enthält:
Beachten Sie, dass die Prozessoren alle etwas unterschiedlich sind. STM32F0..4 benötigt alle unterschiedliche Compiler-Flags und das Linker-Skript ist für jedes leicht unterschiedlich (allerdings nur wirklich aufgrund der geänderten RAM- und Flash-Größen).
Bearbeiten: Wenn Sie wirklich schnell loslegen möchten, können Sie auch http://www.espruino.com aufrufen . Es ist ein JavaScript-Interpreter, der auf dem STM32 selbst ausgeführt wird. Wenn Sie also 'stlink' installiert haben, können Sie ein Image von dieser Site herunterladen, es aufspielen und dann eine Verbindung mit einer Terminalanwendung herstellen Starten Sie die Programmierung.
quelle
Wenn Sie sich mehr für Texteditoren und Makefiles interessieren, anstatt eine GUI zu verwenden, können Sie Folgendes tun:
Holen Sie sich Ihr Projekt an die Tafel. Entweder verwenden
Code in einem Texteditor und verwenden Sie Befehlszeilentools. Dieses Tutorial bietet viele Tipps.
Genießen
quelle
Eclipse , GCC und OpenOCD sind eine Toolchain. Es wird empfohlen , von EMCU-IT und es gibt zusätzliche Informationen hier . Diese Seiten empfehlen auch die Verwendung eines RTOS wie FreeRTOS.org , aber das liegt bei Ihnen.
Und um Hilfe beim Kompilieren der STM32-Beispiele unter Linux zu erhalten , klicken Sie hier . Dieser Link verweist auf ein Makefile für die Beispiele, mit denen aufgerufen werden kann
Ein paar kleinere Code-Fixes sind ebenfalls dokumentiert, aber der Großteil des Projekts sollte funktionieren
quelle
Ich hatte Erfolg mit https://github.com/JorgeAparicio/bareCortexM (siehe auch die verlinkten Blog-Beiträge). Ich habe das Gefühl, dass ich einfach einen Schritt durch den Code gehen oder den Gerätespeicher durchsuchen kann, anstatt Debugging-Anweisungen in meinen Code einzufügen oder zu erraten, was im Chip vor sich geht.
Das bareCortexM-Projekt ist eine Eclipse-Vorlage für die Entwicklung mit der Cortex M-Serie, insbesondere STM32, in C ++ ohne Betriebssystem. Es ist für die Verwendung von openocd und gcc konfiguriert und verfügt über Skripts zum Flashen und Debuggen auf mehreren Zielen, einschließlich einiger Discovery-Boards. Durch Befolgen der Anweisungen und Installieren der empfohlenen Eclipse-Plugins konnte ich mein STM32VLDISCOVERY unter Ubuntu verwenden.
Wie empfohlen habe ich die Eclipse-Vorlage mit der libstm32pp C ++ - Vorlagenbibliothek desselben Autors für STM32-Hardware kombiniert. libstm32pp bietet einen überraschend vollständigen Ersatz für CMSIS und die oft mit einem Programmiermodell kritisiert STM32 - Treiber , die Sie wie die Dinge sagen läßt
PB10::setMode(gpio::cr::GP_OPEN_DRAIN_2MHZ)
undPINB::setLow()
oderPINB::setHigh()
alle meist zusammengestellt Inline aufgrund der C ++ Vorlagen. Das Setup ist sehr schön.quelle
Vielleicht wäre es für jemanden nützlich: meinen kurzen Artikel (auf Russisch) und ein einfaches Projekt . Alles unter Linux und ohne unnötige Dinge wie Eclipse.
Die Bibliotheken stammen von der ST-Website, Makefile - aus einem der vielen GPL-Beispiele im Internet.
quelle
Hier ist ein kleines, aber innovatives Vorlagenprojekt für den schnellen Start mit dem STM32F0 Discovery Board unter Linux oder einem anderen Betriebssystem:
https://github.com/dobromyslov/stm32f0-chibios-template
Beachten Sie, dass das Projekt ChibiOS verwendet - ein freies und Open-Source-Echtzeitbetriebssystem, daher ist es nicht gerade eine reine Neuimplementierung.
quelle
Ich benutze vim und arm-none-eabi-gcc zusammen mit allen üblichen Linux-Entwicklungswerkzeugen. Linux ist meiner Meinung nach eine überlegene Entwicklungsumgebung für Embedded-Arbeiten. Zum Debuggen verwende ich stlink und arm-none-eabi-gdb.
quelle
Betrachten wir platformio . Wenn Sie mit der Befehlszeile vertraut sind, werden Sie feststellen, dass platformio den Entwicklungsprozess erheblich vereinfacht.
pio init
kann verwendet werden, um ein Projekt einzurichten.pio run
nutzt die Toolchain zum Kompilieren.pio run --target upload
Sendet den Code an das Gerät. Platformio übernimmt das Herunterladen der Toolchain-Komponenten, Bibliotheken usw. nach Bedarf.quelle