Prejsť na obsah
Inovasense

BSP (Board Support Package)

BSP (Board Support Package) — Vrstva hardvérovej abstrakcie, ktorá prepája návrh dosky plošných spojov (PCB) s RTOS, vrátane štartovacieho kódu, ovládačov a konfigurácie periférií.

Definícia
BSP (Board Support Package) — Vrstva hardvérovej abstrakcie, ktorá prepája návrh dosky plošných spojov (PCB) s RTOS, vrátane štartovacieho kódu, ovládačov a konfigurácie periférií.

BSP — Board Support Package

Board Support Package (BSP) je základná softvérová vrstva, vďaka ktorej konkrétna hardvérová doska funguje s operačným systémom alebo RTOS. Je mostom medzi vašou zákazkovou doskou plošných spojov (PCB) a softvérom, ktorý na nej beží — obsahuje všetko potrebné na inicializáciu procesora, konfiguráciu periférií a poskytnutie vrstvy hardvérovej abstrakcie pre aplikačný kód.

Čo BSP obsahuje

KomponentÚčelPríklad
Štartovací kódInicializácia CPU, tabuľka vektorov, nastavenie zásobníkastartup_stm32f407xx.s
Linkerový skriptMapa pamäte (oblasti Flash, RAM, zásobníka a haldy)STM32F407VG_FLASH.ld
Konfigurácia hodínNastavenie PLL, deličky zberníc, taktovanie perifériíSystemInit() (CMSIS), SystemClock_Config() (STM32Cube), Devicetree
Ovládače perifériíGPIO, UART, SPI, I²C, ADC, PWM, DMAOvládače HAL/LL, ovládače Zephyr
Multiplexovanie pinovMapovanie pinov MCU na funkcie konkrétnej doskySúbory Devicetree overlay, CubeMX
Konfigurácia špecifická pre doskuMapovanie LED, priradenie tlačidiel, pripojenie senzorovSúbory DTS dosky
Konfigurácia ladeniaNastavenia sondy JTAG/SWD, algoritmy programovania pamäte FlashKonfigurácie OpenOCD, pyOCD

Postup vývoja BSP

Keď Inovasense vyvíja BSP pre zákazkovú dosku:

  1. Kontrola schémy — Overenie priradenia pinov, napäťových domén a zdrojov hodín
  2. Vytvorenie Devicetree / konfigurácie — Namapovanie každého pinu MCU na jeho funkciu na doske
  3. Prvotné oživenie (bring-up) — Inicializácia hodín, sériová konzola, blikanie LED („hello world“ pre hardvér)
  4. Overenie periférií — Otestovanie každej zbernice (SPI, I²C, UART) logickým analyzátorom
  5. Integrácia ovládačov — Ovládače senzorov, rádiové moduly, radiče displejov
  6. Správa napájania — Konfigurácia režimov spánku, nastavenie zdrojov prebudenia
  7. Firmvér pre výrobné testovanie — Výrobná testovacia sekvencia pre každú perifériu

BSP vs. SDK vs. HAL

VrstvaRozsahPríklad
HAL (Hardware Abstraction Layer)Obaľovacie funkcie (wrappery) na úrovni registrov dodávané výrobcomSTM32 HAL, nrfx
BSP (Board Support Package)Konfigurácia špecifická pre dosku, ktorá využíva HALDevicetree zákazkovej dosky + ovládače
SDK (Software Development Kit)Kompletný framework s RTOS + middlewarenRF Connect SDK, ESP-IDF

Prečo záleží na kvalite BSP

Zle napísaný BSP spôsobuje problémy, ktoré sa neskôr mimoriadne ťažko ladia:

  • Nesprávna konfigurácia hodín → občasné poškodenie dát na UART pri vysokých prenosových rýchlostiach
  • Nesprávne multiplexovanie pinov → konflikt na zbernici SPI, ktorý sa prejaví len vtedy, keď je aktívna konkrétna periféria
  • Chýbajúca konfigurácia pull-up rezistorov → I²C funguje na stole, ale zlyháva pri extrémnych teplotách
  • Nesprávne čakacie cykly (wait states) pamäte Flash → pády HardFault, ku ktorým dochádza až po zahriatí čipu

Súvisiace pojmy

  • RTOS — BSP poskytuje hardvérovú vrstvu, na ktorej beží jadro RTOS.
  • SoC — System-on-Chip, pre ktorý je BSP určený.
  • PCB Design — Vývoj BSP sa začína schémou a návrhom rozloženia dosky plošných spojov (PCB).

Vývoj BSP pre zákazkové dosky patrí medzi naše kľúčové služby pre embedded systémy. Pozrite si naše možnosti v oblasti vývoja embedded systémov.

Oficiálne referencie