CMSIS - Cortex Microcontroller Software Interface Standard
A vendor-independent hardware abstraction layer for Cortex-M processors. https://developer.arm.com/tools-and-software/embedded/cmsis
Суть в том , чтобы писать код для ARM независимо от производителя чипа.
CMSIS-Driver: Generic peripheral interfaces for middleware and application code
- Сразу , чтобы не путаться главные абревиатуры на чужеземном:
- SPL(Standard Peripheral Library)
- FreeRTOS— многозадачная операционная система реального времени (ОСРВ) для встраиваемых систем. Портирована на 35 микропроцессорных архитектур (в.т.ч и на наш STM32).
- Cube HAL(Hardware abstraction layer) - библиотека призвана нам помочь унифицировать команды для всех контроллеров STM. Вот некоторые примеры:
HAL_UART_Transmit(&huart2,(uint8_t *)&johny,23,100); //PA2
HAL_GPIO_TogglePin(GPIOE, GPIO_PIN_15); - OpenOCD- Open On-Chip Debugger
- ARM Core Sight- встроенное в микроконтроллере ядро для трассировки отладочных сообщений (очень полезная фича, но настройка требует большого времени)
- SWD- Serial Wire Debug
- ITM(Instrumentation Trace Macrocell) - полезная штука для отладки , проще говоря позволяет выкидывать трассировочные сообщения по SWO (вам в окно Debug (printf) Viewer) не нагружая особо контроллер.