Огляд BSP
Модуль BSP містить усі компоненти, необхідні для ініціалізації та підтримки апаратного забезпечення мікроконтролерів STM32 для заданої родини MCU.
Кожна родина STM32 доступна в окремій гілці Git. Наприклад, гілка STM32U5 містить усі компоненти BSP, потрібні для родини U5.
Структура
-
Модуль Linker
Генерує linker script відповідно до типу MCU, який вибрав користувач. -
Модуль Startup
- Викликає точку входу користувацького застосунку.
- Ініціалізує секції пам'яті (RAM, .data, .bss тощо).
- Виконує конструктори C++, якщо використовується C++.
-
Модуль MCAL
Надає низькорівневі драйвери та доступ до периферії MCU. -
Модуль RAL
Забезпечує уніфікований доступ до бібліотек периферії (абстраговані заголовки LL/CMSIS) для всіх родин MCU. -
Модуль HAL
Надає високорівневу апаратну абстракцію для простішого керування периферією. -
Конфігурація CMake
Модуль BSP налаштовує компілятор і параметри збірки відповідно до вибраної родини MCU.
Кожна гілка родини містить відповідний CMake toolchain і конфігурацію для цієї родини.
Використання
- Клонуйте репозиторій BSP і перейдіть на гілку, що відповідає вашій цільовій родині MCU, наприклад:
git clone <repo_url> bsp_project
cd bsp_project
git checkout STM32U5
- Підключіть потрібні модулі BSP до проєкту через
CMakeLists.txt. - Linker script, startup-код, MCAL, RAL та HAL автоматично налаштовуються відповідно до вибраної родини MCU.
Стратегія гілкування
- Кожна родина STM32 має власну гілку:
STM32U5– містить BSP для родини U5STM32H5– містить BSP для родини H5STM32H7– містить BSP для родини H7STM32G4– містить BSP для родини G4- … та інші
Це дає змогу користувачеві працювати з одним і тим самим інтерфейсом BSP, підтримуючи кілька родин MCU за допомогою гілок.
Примітки
- Не змішуйте файли з гілок різних родин MCU.
- Завжди збирайте проєкт з гілки, що відповідає цільовому MCU.
- CMake автоматично вибирає правильний toolchain і прапорці компілятора для вибраної родини.
Ліцензія
Цей проєкт ліцензовано за Creative Commons Attribution–NonCommercial 4.0 International (CC BY-NC 4.0).
Ви вільні використовувати, змінювати та поширювати цю роботу в некомерційних цілях за умови належного зазначення авторства.
Повні умови дивіться у LICENSE.md або на creativecommons.org/licenses/by-nc/4.0.
Автори
- Mr.Nobody — embedbits.com
Внески вітаються! Будь ласка, відкрийте pull request.
Підтримка родин
| G4 | H5 | H7 | L4 | U5 | |
|---|---|---|---|---|---|
| Linker | ✅ | ✅ | ✅ | ✅ | ✅ |
| Документація | ✅ | ✅ | — | — | ✅ |
| RAL | ✅ | ✅ | ✅ | ✅ | ✅ |
| MCAL | ✅ | ✅ | ✅ | ✅ | ✅ |