#cortex-m #nxp #lpc

bin+lib lpc55

Host-side tooling to interact with LPC55 chips via the ROM bootloader

10 releases

Uses new Rust 2021

0.1.1 Mar 16, 2022
0.1.0 Jan 2, 2022
0.1.0-alpha.8 Nov 21, 2021
0.1.0-alpha.7 Jul 28, 2021
0.1.0-alpha.1 Jan 24, 2021

#335 in Embedded development

Download history 45/week @ 2022-01-19 117/week @ 2022-01-26 52/week @ 2022-02-02 22/week @ 2022-02-09 46/week @ 2022-02-16 52/week @ 2022-02-23 37/week @ 2022-03-02 57/week @ 2022-03-09 137/week @ 2022-03-16 129/week @ 2022-03-23 38/week @ 2022-03-30 40/week @ 2022-04-06 41/week @ 2022-04-13 24/week @ 2022-04-20 106/week @ 2022-04-27 77/week @ 2022-05-04

254 downloads per month
Used in solo2

Apache-2.0 OR MIT

360KB
5.5K SLoC

lpc55

github docs.rs main build status

Goals

  • demystify the LPC55 ROM bootloader (at least for people who know Rust), by
    • modeling "protected flash" settings and other sparsely documented data as Rust types
    • implementing its protocol, removing leftover details for older chips
    • clarifying the cryptographic details
  • unify
    • NXP's elftosb, blhost and spsdk projects
    • molejar's pyMBoot
    • ergonomic corresponding TOML-based config files
  • library-first (independent of CLI), and an HTTP interface
  • support for non-file based signing keys (via PKCS #11 URIs)

Installation

cargo install --locked

Examples:

  • lpc55 info
  • lpc55 reboot

Examples from inside repository (which includes example binaries, certificates, configurations):

  • lpc55 fingerprint-certificates example-cfgs/example-cfg.toml
  • lpc55 sign-fw example-cfgs/example-cfg.toml
  • lpc55 assemble-sb example-cfgs/example-cfg.toml

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~13MB
~278K SLoC