ChibiOS/HAL
6.1.0
|
Hardware Abstraction Layer. More...
Hardware Abstraction Layer.
Under ChibiOS the set of the various device driver interfaces is called the HAL subsystem: Hardware Abstraction Layer. The HAL is the abstract interface between ChibiOS applications and hardware.
The HAL contains several kind of modules:
Normal device are meant to interface the application to the underlying hardware through an high level API. Normal Device Drivers are split in two layers:
<driver>
.c, the HLD implementation file. This file must be included in the Makefile in order to use the driver.<driver>
.h, the HLD header file. This file is implicitly included by the HAL header file hal.h
.<driver>_lld.c
, the LLD implementation file. This file must be included in the Makefile in order to use the driver.<driver>_lld.h
, the LLD header file. This file is implicitly included by the HLD header file.It is a class of device drivers that offer an high level API but do not use the hardware directly. Complex device drivers use other drivers for accessing the machine resources.
An interface is a binary structure allowing the access to a service using virtual functions. This allows to create drivers that can be accessed using a common interface. The concept of interface is commonly found in object-oriented languages like Java or C++, their meaning in ChibiOS/HAL is exactly the same.
Some modules are shared among multiple device drivers and are not necessarily meant to be used by the application layer.
Modules | |
Configuration | |
HAL Configuration. | |
Normal Drivers | |
HAL Normal Drivers. | |
Complex Drivers | |
HAL Complex Drivers. | |
Interfaces and Classes | |
HAL Interfaces and Classes. | |
Inner Code | |
HAL Inner Code. | |
Support Code | |
HAL Support Code. | |
OSAL | |
Operating System Abstraction Layer. | |