The different types of firmware development
There are several ways to develop the firmware for a particular microcontroller depending on the resources provided by the microcontroller’s manufacturer. When it comes to developing firmware for STM32 microcontrollers from STMicroelectronics, we can use the following:
- Hardware Abstraction Layer (HAL): This is a library provided by STMicroelectronics. It simplifies the process by offering high-level APIs for configuring every aspect of the microcontroller. What is great about HAL is its portability. We can write code for one STM32 microcontroller, and easily adapt it for another, thanks to the uniformity of their APIs.
- Low Layer (LL): Also from STMicroelectronics, the LL library is a leaner alternative to HAL, offering a faster, more expert-oriented approach that’s closer to the hardware.
- Bare-Metal C programming: With this approach, we dive right into the hardware, accessing the microcontroller’s registers...