A library for LPC microcontrollers.
The HAL provides a layer of hardware abstraction for the internal peripherals of the microcontroller.
The interface is a bunch of functions defined in C header files.
Where possible, the implementation in C source files is common for all microcontrollers. Where necessary, each microcontroller or controller family gets its own implementation.
The API provides a higher-level interface to basic functions (IO, Timer, etc.) and external peripherals.
The interface consists of C++ classes/singletons. Due to the uniform HAL, the API has one implementation for all controllers.
Callbacks should be provided for all important functionality to make using classes together easy.
Pin & Port & Bus
Protocol Handler, printf, Stream
Delay, Ticker (s,ms,µs), Events
Buffers (FIFO, Ring, etc.), Filesystem?, Callchain