An important layer in the HAL is the OSAL: Operating System Abstraction Layer. The purpose of the OSAL is to enable the HAL drivers to be fully RTOS-aware without having to be bound to any specific RTOS.
The OSAL is the specification of an RTOS API subset sufficient to support the HAL. This API can be, in principle, implemented over any RTOS but it is designed to be usable even without a real RTOS.
The ChibiOS distribution contains OSALs for:
The OSAL has also been successfully implemented on 3rd parties RTOSes.
Is code portability really possible using HAL? What are the limitations?