Board support crate targeted for Tim's Open Micro USB
Includes support for tomu-bootloader config (toboot v2).
work in progress
- toboot config
- timers
- GPIO (most of the functionality is implemented)
- USB
- AES
To build embedded programs using this template you'll need:
-
Rust stable, ie 1.31 or a newer toolchain.
-
rust-std
components (pre-compiledcore
crate) for the ARM Cortex-M targets. Run:
$ rustup target add thumbv6m-none-eabi
- llvm-tools-preview for
llvm-objcopy
to turn the elf into a binary for uploading. Run:
$ rustup component add llvm-tools-preview
- The dfu-util
cargo run --example blink --release
Application can interact with tomu bootloader by using toboot_config
macro.
It's fully typesafe so there's no need to worry you're putting wrong config. It will even warns you if you're trying to lock bootloader entry like this:
toboot_config! {
lock_entry: true,
}
Full config as the following:
toboot_config! {
config: [autorun_enable, irq_enable],
lock_entry: false,
// efm32hg309f64 has 64KiB flash memory,
// each bit below represent 1 sector (1KiB)
// which will be erased when tomu load its bootloader
erase_mask_lo: 0, // 32bit uint
erase_mask_hi: 0, // 32bit uint
}
Toboot api ref: here.
There are some examples on how to use tomu in examples folder.
Licensed under 2-clause BSD.