ChibiOS/HAL  6.1.0
HAL

Hardware Abstraction Layer. More...

Collaboration diagram for HAL:

Detailed Description

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.

HAL Device Drivers Architecture

The HAL contains several kind of modules:

HAL Normal Device Drivers

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:

Diagram

dot_inline_dotgraph_9.png

HAL Complex Device Drivers

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.

HAL Interfaces

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.

HAL Inner Code

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.