ChibiOS/HAL

The HAL component is meant to be an abstraction layer between the application and the underlying micro-controller hardware.

HAL offers an high level API for accessing common MCU peripheral like GPIO, ADC, SPI and so on and also take care of clocks-related and board-level initializations.

This component is only released only under Apache License 2.0 and is 100% free also for commercial use.

In Brief

  • MCU abstraction between application and hardware accelerates the firmware development allowing a more objective-oriented approach. Hardware inner details are mostly hidden to the application (but not unreachable).
  • Support for the most common MCU peripherals.
  • Interface layer toward the optional RTOS called OSAL. OSALs can be created in order to support any reasonable RTOS.
  • Out of the box support for RT and NIL RTOSes.
  • Layered drivers architecture.
  • Portable on most modern micro-controllers.
Code Portability

Is code portability really possible using HAL? What are the limitations?

learn more