RAL CMSIS ST
Zrkadlo balíka CMSIS Device Interface od STMicroelectronics (cmsis-device-<family>), ktoré poskytuje hlavičky špecifické pre zariadenie, definície registrov a deklarácie systému/štartu vždy pre jednu rodinu STM32. Používa sa ako git submodul repozitára Bsp-Ral, jedna vetva pre každú rodinu/vydanie STM32.
Prehľad
| Upstream projekt | STMicroelectronics/cmsis-device-<family> (napr. cmsis-device-g4) |
| Úloha v Bsp-Ral | Závislosť len s hlavičkami — poskytuje hlavičky zariadení pre jednotlivé MCU, ktoré používa RAL_ST a rozpoznávanie define-ov MCU v nadradenom zostavení |
| Licencia | Pozrite License.md, nezmenená oproti upstreamu |
| Model údržby | Zrkadlené z upstreamu pre každú rodinu; lokálne sa neupravuje |
⚠️ Tento repozitár doslovne sleduje oficiálne zdrojové kódy CMSIS pre zariadenia od STMicroelectronics. Jeho obsah neupravujte priamo — logika nezávislá od zariadenia patrí namiesto toho do
RAL_ST/Port.
Štruktúra vetiev
| Vzor vetvy | Účel |
|---|---|
STM32<family> (napr. STM32G4, STM32U5, STM32H7) | Vetva rodiny obsahujúca hlavičky zariadení CMSIS pre danú rodinu STM32 |
STM32<family>_<major>.<minor>.x (napr. STM32G4_1.2.x) | Vetva vydania zrkadliaca jedno konkrétne vydanie ST pre danú rodinu |
Štruktúra repozitára
CMSIS_ST
├── Include
│ ├── stm32g4xx.h # Family dispatcher — selects the exact per-part header
│ ├── stm32g411xb.h # Per-part-number device header (register/interrupt definitions)
│ ├── stm32g411xc.h
│ ├── stm32g414xx.h
│ ├── ... # One header per part number in the family
│ └── system_stm32g4xx.h # System/clock initialization declarations
├── Source # System initialization sources (system_stm32g4xx.c, startup files)
└── License.md
(Uvedené názvy súborov zodpovedajú skutočnému obsahu vetvy rodiny STM32G4; ostatné vetvy rodín majú rovnaké rozloženie Include/Source s hlavičkami vlastnej rodiny, napr. stm32u5xx.h.)
Použitie
Pri použití ako submodul repozitára Bsp-Ral sa tento repozitár nezostavuje ako samostatný projekt CMake — dodáva len hlavičky. CMakeLists.txt repozitára Bsp-Ral pridáva CMSIS_ST/Include k obom svojim knižničným cieľom (HAL_LL_Lib a Ral_Lib):
target_include_directories(Ral_Lib
PUBLIC
...
${CMAKE_CURRENT_SOURCE_DIR}/CMSIS_ST/Include # ST CMSIS Device files
)
Nadradené zostavenie (Build.cmake) navyše počas konfigurácie parsuje dispečerskú hlavičku rodiny (napr. stm32g4xx.h) a extrahuje z nej reťazec #if/#elif defined(STM32...), aby pre cieľové číslo súčiastky určilo presný define zariadenia (napr. STM32G411xB) — takže číslo súčiastky chýbajúce v tejto hlavičke spôsobí zlyhanie konfiguračného kroku CMake s jasnou chybou namiesto lavíny chýb kompilátora v ďalších krokoch.
Licencia
Distribuované podľa podmienok v License.md, nezmenených oproti upstream balíku CMSIS pre zariadenia od STMicroelectronics.