LPC55s6x HAL

Hardware Abstraction Layer (HAL) for NXP LPC55S6x Cortex-M33 microcontrollers, written in Rust.

LPC55S6x HAL provides a high-level interface to the features of these LPC55S6x MCUs, which is safe, convenient and efficient. It leverages Rust's type system to prevent common mistakes, such as attempting to use an uninitialized peripheral; these will be caught by compile-time errors.

This library implements the embedded-hal, a collection of traits intended to abstract over platform-dependencies, allowing firmware and drivers to be quite portable.

Moreover, this library is compatible with the Cortex-M implementation of RTFM, a concurrency framework supporting preemptive multitasking with minimal footprint, which it does by delegating the scheduling to hardware.

crates.io Documentation LICENSE Build Status

Status

Very much work-in-progress!

See also the low-level companion library LPC55S6x PAC.

Until cortex-m-rtfm v0.5 is released, it needs to be manually enabled in the dev-dependencies, and the rtfm_led example unhidden.

Documentation

The API documentation is located at https://docs.rs/lpc55s6x-hal.

In addition, make fetch-docs downloads various vendor-supplied documentation:

Examples

The intention of the examples/ is to showcase the functionality of this library.

They run on the LPCXpresso55S69 development board.

After flashing J-Link firmware on the on-board LPCXpresso V2 debugger:

```bash

in one terminal

make jlink

in another terminal

make run-example EXAMPLE=rtfm_led # or any other example ```

License

Apache-2.0 or MIT.

Parts of the code are directly lifted from the LPC8xx HALs.