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§
- hardware
- Common hardware abstractions and associated implementations
- state
- Shared state management between firmware and bootloader
Structs§
- Moonboot
Boot - Implementations for use in the bootloader 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
- Moonboot
Manager - Implementations for use in the firmware Instantiate this in your application to enable mutation of the State specified in this and jump to the bootloader to apply any updates.
Type Aliases§
- Address
- Address type in RAM or ROM
Attribute Macros§
- pre_
jump_ handler - Marker macro for a handler fn invoked shortly before jumping to a different image. Use this to uninitialize your hardware.