Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

https://docs.google.com/presentation/d/1GBKhvooHekeQAZUffZCEgtkG0PnbZE7nlBzlzZkEJ3w/edit?usp=sharing

Currently, we use ST’s Standard Peripheral Library (SPL). Goal is to research alternative peripheral libraries and see if there’s any advantage in switching.

What we We currently use SPL for :

...

ADC

...

CAN

...

CRC/RCC

...

FLASH

...

GPIO

...

I2C

...

TIMERS

...

SPI

...

ADC, GPIO, I2C, and many others. Other peripheral libraries should also support all the general peripherals we need.

STM32CubeF0

https://github.com/STMicroelectronics/STM32CubeF0

  • STM32Cube contains 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 (not from ST)

  • Repo claims that support for STM32F0 boards is “complete”

  • Documentation seems little less clear than ST libraries

  • Generally well liked by community ?? (reddit, stackexchange)