#nxp #arm #svd2rust #cortex-m

no-std lpc845-pac

Low-level register mappings for the NXP LPC845 series of ARM Cortex-M0+ microcontrollers

5 releases (3 breaking)

0.4.1 Sep 23, 2021
0.4.0 Apr 24, 2021
0.3.0 Nov 6, 2019
0.2.0 Oct 11, 2019
0.1.0 Mar 23, 2019

#1524 in Embedded development


Used in lpc8xx-hal

0BSD license

4MB
116K SLoC

LPC845 PAC crates.io Documentation Build Status

Introduction

Low-level register mappings for the NXP LPC845 family of ARM Cortex-M0+ microcontrollers, written in Rust. The code is generated automatically from the [SVD file] available from ARM, using svd2rust.

The purpose of this crate is to give embedded programs or libraries written Rust access to the complete functionality of LPC845 MCUs.

Usage

Add this to the [dependencies] section of your Cargo.toml to include rust-lpc845 in your Cargo project:

lpc845-pac = "0.2"

This crate includes an optional rt feature that can be activated by adding this instead:

lpc845-pac = { version = "0.2", features = ["rt"] }

The rt feature includes the cortex-m-rt crate and provides overridable interrupt handlers. Please refer to the svd2rust documentation for further details.

Documentation

For specific information on the API, check out the API reference.

All code in this crate is automatically generated by svd2rust, so check out the svd2rust documentation for more general information about how the API works.

In addition, the LPC845 user manual contains extensive documentation on how to work with the microcontroller.

Status

This crate is complete and actively maintained, but not all parts of it have been tested. The experience so far has shown that the original SVD file has quite a few problems. It's likely there are still undetected bugs. Please open an issue, if you find any problems. Known issues are tracked on GitHub.

Another problem that we inherit from the SVD file is that some register and field names are very weird. Those seem to be generated from human-readable documentation, meaning they sometimes read like cut-off sentences.

At this point, there is no guarantee of API stability. This means that we reserve the right to make changes to the API, that might break existing programs when they upgrade.

License

This project is open source software, licensed under the terms of the Zero Clause BSD License (0BSD, for short). This basically means you can do anything with the software, without any restrictions, but you can't hold the authors liable for problems.

See LICENSE for full details.

SVD file

You can get the svd file via the nxp sdk builder or via the readymade keil pack (simply unpack it as a zip file).

Supported by Braun Robotics

Dependencies

~710KB