STM32 F3 Discovery unter Linux
von Kai O.
Ich share mal mein Grundframework für das STM32 F3 Discovery Board (Host ist Linux/Ubuntu) mit euch. Ich benutze Eclipse als IDE ("Eclipse IDE for C/C++ Developers") und die Mentor Embedded Toolchain / Sourcery (http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/) mit selbgestricktem Makefile. Eclipse ist also optional :)
Noch ein Hinweis: Das "Framework" lief zuvor angepasst schon auf dem Discovery F4 und dem VL Discovery Board. Falls Interesse besteht, könnte ich das auch online machen.
Unterstützt wird (in der publizierten Grundversion):
- LED's toggeln
- Serielle Ausgabe mit printf() (Man nehme einen FTDI Dongle oder MAX232. Z.B. von Watterott für 12€) und verbinde TX/RX mit PA9 und PA10 auf der Stiftleiste).
Setup:
- Board über USB (USB ST-Link Buchse) mit dem PC verbinden.
- FTDI Dongle verbinden (PA9, Pa10, GND) und Terminalprogramm mit 115200 8N1 starten (z.B. Minicom).
Wegen potentiellen Lizenzproblemen fehlen ein paar Files in meinem Archiv. Die Anpassungen sind ganz easy:
- Archiv auspacken (Link ist am Ende dieses Artikels)
- Eclipse starten und Projekt in Workspace importieren
- Discovery F3 Firmware Package von st.com DL und entpacken
- Pfad auf die Package im Makefile anpassen (Nachfolgend referenziert als "stmfw")
- STM32_FLASH.LD in stmfw suchen (z.B. von hier stmfw/stm32f3xx/Project/Peripheral_Examples/GPIO_IOToggle/TrueSTUDIO/GPIO_IOToggle) und nach stm32f3demo/stm32_flash.ld kopieren (Kleinschreibung beachten!)
- startup_stm32f30x.s von stmfw/stm32f3xx/Libraries/CMSIS/Device/ST/STM32F30x/Source/Templates/TrueSTUDIO nach stm32f3demo/ kopieren
- File editieren und die beiden Zeilen "bl SystemInit" und "bl __libc_init_array" in LoopFillZerobss auskommentieren.
- stm32f30x.h (aus stmfw/stm32f3xx/Libraries/CMSIS/Device/ST/STM32F30x/Include) nach stm32f3demo/fw/ kopieren
- File editieren und am Ende vom File #include "stm32_config.h"einfügen
- system_stm32f30x.c (z.B. aus stmfw/stm32f3xx/Project/Peripheral_Examples/GPIO_IOToggle) nach stm32f3demo/fw/ kopieren
- Verzeichnis stm32f3demo/obj/fw einmalig anlegen
Danach sollte sich der Kram übersetzen lassen. Maketargets können mit Eclipse angelegt werden. Ich habe bei mir die Targets "all" und "flash". Letzteres ruft den st-flash (https://github.com/texane/stlink) auf um über ein USB Kabel den Discovery zu flashen. Setup des Tools ist in dem Discovery F4 Artikel beschrieben (http://www.mikrocontroller.net/articles/STM32F4-Discovery).
Das Archiv zu diesem Artikel liegt hier ab http://www.mikrocontroller.net/topic/291286#3100840
Meldet euch einfach, wenns (noch) nicht funktioniert.