Heim Der Blog Blog Details

Wie lässt man STM32 unter Linux laufen?

January 08 2025
Ampheo

Anfrage

Globaler Lieferant elektronischer Komponenten AMPHEO PTY LTD: Umfangreiches Inventar für One-Stop-Shopping. Einfache Anfragen, schnelle, individuelle Lösungen und Angebote.

SCHNELLE ANFRAGE
ZUR RFQ-LISTE HINZUFÜGEN
Das "Laufen" eines STM32-Mikrocontrollers auf Linux bedeutet normalerweise, dass man Firmware für den STM32 auf einem Linux-basierten Host-Computer entwickelt, programmiert und debuggt.

1. Entwicklung von STM32-Firmware unter Linux (Entwicklungsumgebung auf dem Host)

Das "Laufen" eines STM32-Mikrocontrollers auf Linux bedeutet normalerweise, dass man Firmware für den STM32 auf einem Linux-basierten Host-Computer entwickelt, programmiert und debuggt.

Wie lässt man STM32 unter Linux laufen? - Blog - Ampheo

Schritt 1: Notwendige Werkzeuge installieren

  • Toolchain: arm-none-eabi-gcc
  • STM32CubeIDE oder STM32CubeMX (offizielle Tools von ST)
  • OpenOCD (zum Flashen und Debuggen)
  • GNU Make oder CMake

Unter Debian/Ubuntu:

bash
 
sudo apt update sudo apt install gcc-arm-none-eabi gdb-arm-none-eabi openocd make cmake

Schritt 2: STM32CubeIDE installieren

  • Lade es von der offiziellen STMicroelectronics-Website herunter.
  • Mach die Datei ausführbar:
bash
 
chmod +x SetupSTM32CubeIDE* ./SetupSTM32CubeIDE*

Schritt 3: STM32-Board anschließen

  • Verwende einen ST-Link USB-Debugger oder einen anderen kompatiblen Programmierer.
  • Überprüfe die Verbindung:
bash
 
lsusb | grep STMicroelectronics

Schritt 4: Firmware schreiben und bauen

  • Verwende STM32CubeIDE, um ein Projekt zu erstellen, Code zu generieren und die Firmware zu bauen.
  • Oder erstelle manuell ein Projekt und baue es mit make.

Schritt 5: Firmware flashen

Mit OpenOCD:

bash
 
openocd -f interface/stlink.cfg -f target/stm32f4x.cfg

In einem anderen Terminal:

bash
 
arm-none-eabi-gdb build/firmware.elf

In GDB:

arduino
 
target remote :3333 load run

2. Linux auf STM32 ausführen (wenn möglich)

Einige High-End STM32-Mikrocontroller (z. B. STM32MP1-Serie) können aufgrund ihrer MPU (Microprocessor Unit) Kerne ein eingebettetes Linux ausführen.

Schritt 1: Wähle einen unterstützten STM32-Mikrocontroller

Schritt 2: Yocto oder Buildroot herunterladen

Diese Tools helfen dabei, minimale Linux-Images für eingebettete Geräte zu erstellen.

Schritt 3: Ein Linux-Image erstellen

  • Konfiguriere Yocto/Buildroot für STM32MP1.
  • Baue den Linux-Kernel und das Root-Dateisystem.

Schritt 4: Das Image flashen

Verwende Tools wie:

  • STM32CubeProgrammer
  • U-Boot Bootloader

Schritt 5: Linux booten

  • Verbinde dich über die serielle Konsole (z. B. mit minicom):
bash
 
sudo minicom -D /dev/ttyUSB0 -b 115200
  • Überprüfe die Boot-Logs.

Zusammenfassung

  • Für STM32-Mikrocontroller (z. B. STM32F4) entwickelst du Firmware, die auf einem Linux-Host betrieben wird.
  • Für die STM32MP1-Serie kannst du ein echtes Linux-Betriebssystem direkt auf dem Mikrocontroller ausführen.
Ampheo