Expand description
Moonboot is a framework to build bootloaders for embedded devices, or other kinds of no_std Rust environments.
This crate contains implementations, macros and build.rs helpers for:
- Partitioning of your memory into different sections
- Exchange of the contents of those partitions via the bootloader
- Signature/Checksum-checking of the partitions contents with an algorithm of your choice, because it is done in firmware, not in bootloader
- Automatic Linker Script generation based on a Section/Parition Description in Rust Code
Re-exports
pub use embedded_storage;
Modules
Common hardware abstractions and associated implementations
Shared state management between firmware and bootloader
Structs
Use this from your bootloader application and call boot() to do the magic, reading the current state via the State type and then jumping to the new image using the Jumper specified
Instantiate this in your application to enable mutation of the State specified in this and jump to the bootloader to apply any updates.
Type Definitions
Address type in RAM or ROM
Attribute Macros
Marker macro for a handler fn invoked shortly before jumping to a different image. Use this to uninitialize your hardware.