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 initialization.
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.