Currently, we use ST’s Standard Peripheral Library (SPL). Goal is to research alternative peripheral libraries and discuss pros/cons of each alternative to see if it’s worth switching.there’s any advantage in switching.
What we currently use SPL for:
ADC
CAN
CRC/RCC
FLASH
GPIO
I2C
TIMERS
SPI
UART
STM32CubeF0
https://github.com/STMicroelectronics/STM32CubeF0
STM32Cube is an MCU Package provided by STMicroelectronics. Comes with CubeMX (graphical configuration tool), HAL, and other middleware components.
Pros
Lots of documentation/examples
Supports a variety of boards https://github.com/STMicroelectronics/STM32Cube_MCU_Overall_Offer
Cons
todocontains a higher hardware abstraction level so it’s possible we would write less of the HAL code ourselves, although not sure how good it is/how well it fits our needs
Additional “bloat” compared to the standard peripheral library if the extra HAL features are not necessary
Standard peripheral library is deprecated in favour of STM32Cube HAL -> https://community.st.com/s/question/0D50X00009XkYd6/stm32l4-standard-peripheral-libraries
Has lower-layer drivers for more flexibility if needed
libopencm3
https://github.com/libopencm3/libopencm3
Open-source firmware library for ARM Cortex-M microcontrollers.
Pros
todo
Cons
todo(not from ST)
Repo claims that support for STM32F0 boards is “complete”
Documentation seems little less clear than ST libraries