STM32 F3 Discovery unter Linux

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

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

Discoveryf3.jpg

Meldet euch einfach, wenns (noch) nicht funktioniert.