RAL CMSIS ST
Дзеркало пакета CMSIS Device Interface від STMicroelectronics (cmsis-device-<family>), що надає специфічні для пристроїв заголовки, визначення регістрів і оголошення системної ініціалізації/запуску для однієї родини STM32 за раз. Використовується як git submodule репозиторію Bsp-Ral, по одній гілці на родину/реліз STM32.
Огляд
| Вихідний проєкт | STMicroelectronics/cmsis-device-<family> (наприклад, cmsis-device-g4) |
| Роль у Bsp-Ral | Залежність лише із заголовків — надає заголовки пристроїв для кожного MCU, які використовують RAL_ST та визначення MCU-define в батьківській збірці |
| Ліцензія | Дивіться License.md, без змін відносно оригіналу |
| Модель супроводу | Дзеркалюється з оригіналу для кожної родини; локально не змінюється |
⚠️ Цей репозиторій дослівно відстежує офіційні джерела CMSIS device від STMicroelectronics. Не редагуйте його вміст безпосередньо — логіка, незалежна від пристрою, має бути в
RAL_ST/Port.
Структура гілок
| Шаблон гілки | Призначення |
|---|---|
STM32<family> (наприклад, STM32G4, STM32U5, STM32H7) | Гілка родини з заголовками CMSIS device для цієї родини STM32 |
STM32<family>_<major>.<minor>.x (наприклад, STM32G4_1.2.x) | Релізна гілка, що дзеркалює один конкретний реліз ST для цієї родини |
Структура репозиторію
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
(Наведені вище назви файлів відповідають фактичному вмісту гілки родини STM32G4; інші гілки родин мають таку саму структуру Include/Source зі своїми заголовками, наприклад stm32u5xx.h.)
Використання
Цей репозиторій не збирається як окремий проєкт CMake, коли використовується як submodule Bsp-Ral — він лише постачає заголовки. CMakeLists.txt репозиторію Bsp-Ral додає CMSIS_ST/Include до обох своїх бібліотечних цілей (HAL_LL_Lib і Ral_Lib):
target_include_directories(Ral_Lib
PUBLIC
...
${CMAKE_CURRENT_SOURCE_DIR}/CMSIS_ST/Include # ST CMSIS Device files
)
Батьківська збірка (Build.cmake) додатково на етапі конфігурації розбирає заголовок-диспетчер родини (наприклад, stm32g4xx.h), добуваючи з нього ланцюжок #if/#elif defined(STM32...), щоб визначити точний device define (наприклад, STM32G411xB) для цільового номера деталі. Тому відсутність номера деталі в цьому заголовку призводить до зрозумілої помилки на кроці конфігурації CMake, а не до стіни помилок компілятора далі за ланцюжком.
Ліцензія
Поширюється на умовах, викладених у License.md, без змін відносно оригінального пакета CMSIS device від STMicroelectronics.