Zum Inhalt springen
Inovasense

BSP (Board Support Package)

BSP (Board Support Package) – Hardware-Abstraktionsschicht, die die Verbindung zwischen dem Leiterplattendesign und einem RTOS herstellt und Startcode, Treiber sowie Peripheriekonfiguration umfasst.

Definition
BSP (Board Support Package) – Hardware-Abstraktionsschicht, die die Verbindung zwischen dem Leiterplattendesign und einem RTOS herstellt und Startcode, Treiber sowie Peripheriekonfiguration umfasst.

BSP – Board Support Package

Ein Board Support Package (BSP) ist die grundlegende Softwareschicht, die eine spezifische Hardware-Platine mit einem Betriebssystem oder RTOS lauffähig macht. Es bildet die Brücke zwischen Ihrer kundenspezifischen Leiterplatte und der darauf ausgeführten Software und enthält alles, was zur Initialisierung des Prozessors, zur Konfiguration der Peripherie und zur Bereitstellung einer Hardware-Abstraktionsschicht für den Anwendungscode erforderlich ist.

Was ein BSP enthält

KomponenteZweckBeispiel
StartcodeCPU-Initialisierung, Vektortabelle, Stack-Setupstartup_stm32f407xx.s
Linker-SkriptSpeicherbelegungsplan (Flash, RAM, Stack-, Heap-Bereiche)STM32F407VG_FLASH.ld
TaktkonfigurationPLL-Setup, Bustakteiler, Peripherietaktungsystem_init(), Devicetree
PeripherietreiberGPIO, UART, SPI, I²C, ADC, PWM, DMAHAL/LL-Treiber, Zephyr-Treiber
Pin-MultiplexingZuweisung von MCU-Pins zu platinenspezifischen FunktionenDevicetree-Overlays, CubeMX
Platinenspezifische KonfigurationLED-Zuweisungen, Tastenbelegung, SensoranschlüsseBoard-DTS-Dateien
Debug-KonfigurationJTAG/SWD-Probe-Einstellungen, Flash-ProgrammieralgorithmenOpenOCD-Konfigurationen, pyOCD

Entwicklungs-Workflow für BSPs

Wenn Inovasense ein BSP für eine kundenspezifische Platine entwickelt:

  1. Schaltplanprüfung – Überprüfung von Pinbelegung, Spannungsdomänen, Taktquellen
  2. Erstellung von Devicetree/Konfiguration – Zuweisung jedes MCU-Pins zu seiner Funktion auf der Platine
  3. Inbetriebnahme des Startcodes – Taktinitialisierung, serielle Konsole, LED-Blinken („Hello World“ für Hardware)
  4. Verifikation der Peripherie – Testen jedes Busses (SPI, I²C, UART) mit einem Logikanalysator
  5. Treiberintegration – Sensortreiber, Funkmodule, Display-Controller
  6. Energiemanagement – Konfiguration des Schlafmodus, Einrichtung von Aufweckquellen
  7. Produktionstest-Firmware – Fertigungstestsequenz für jede Peripheriekomponente

BSP vs. SDK vs. HAL

EbeneUmfangBeispiel
HAL (Hardware Abstraction Layer)Vom Hersteller bereitgestellte Wrapper auf RegisterebeneSTM32 HAL, nrfx
BSP (Board Support Package)Platinenspezifische Konfiguration unter Verwendung der HALKundenspezifischer Devicetree + Treiber
SDK (Software Development Kit)Vollständiges Framework mit RTOS + MiddlewarenRF Connect SDK, ESP-IDF

Warum die Qualität eines BSPs entscheidend ist

Ein schlecht geschriebenes BSP verursacht Probleme, die später extrem schwer zu debuggen sind:

  • Falsche Taktkonfiguration → sporadische UART-Datenfehler bei hohen Baudraten
  • Falsches Pin-Muxing → SPI-Buskonflikt, der nur auftritt, wenn eine bestimmte Peripherie aktiv ist
  • Fehlende Pull-up-Konfiguration → I²C funktioniert auf dem Labortisch, fällt aber bei extremen Temperaturen aus
  • Falsche Flash-Wait-States → HardFault-Abstürze, die erst nach Erwärmung des Chips auftreten

Verwandte Begriffe

  • RTOS – Das BSP stellt die Hardwareschicht bereit, auf der der RTOS-Kernel läuft.
  • SoC – Das System-on-Chip, für das das BSP ausgelegt ist.
  • Leiterplattendesign – Die BSP-Entwicklung beginnt mit dem Schaltplan und dem Leiterplattenlayout.

Die BSP-Entwicklung für kundenspezifische Platinen ist eine unserer zentralen Dienstleistungen im Bereich eingebetteter Systeme. Informieren Sie sich über unsere Kompetenzen in der Entwicklung eingebetteter Systeme.

Offizielle Referenzen

Verwandte Begriffe