.github
.vscode
docs
embassy-boot
embassy-cortex-m
embassy-embedded-hal
embassy-executor
embassy-futures
embassy-hal-common
embassy-lora
embassy-macros
embassy-net
embassy-net-driver
embassy-net-driver-channel
embassy-nrf
embassy-rp
embassy-stm32
embassy-sync
embassy-time
embassy-usb
embassy-usb-driver
embassy-usb-logger
examples
boot
.cargo
application
nrf
rp
stm32f3
stm32f7
stm32h7
stm32l0
stm32l1
.cargo
src
Cargo.toml
README.md
build.rs
memory.x
stm32l4
stm32wl
bootloader
nrf-rtos-trace
nrf52840
nrf5340
rp
std
stm32c0
stm32f0
stm32f1
stm32f2
stm32f3
stm32f4
stm32f7
stm32g0
stm32g4
stm32h5
stm32h7
stm32l0
stm32l1
stm32l4
stm32l5
stm32u5
stm32wb
stm32wl
wasm
tests
.gitignore
LICENSE-APACHE
LICENSE-MIT
NOTICE.md
README.md
ci.sh
ci_stable.sh
rust-toolchain.toml
rustfmt.toml
This introduces a `Pender` struct with enum cases for thread-mode, interrupt-mode and custom callback executors. This avoids calls through function pointers when using only the thread or interrupt executors. Faster, and friendlier to `cargo-call-stack`. `embassy-executor` now has `arch-xxx` Cargo features to select the arch and to enable the builtin executors (thread and interrupt).
Examples using bootloader
Example for STM32L1 demonstrating the bootloader. The example consists of application binaries, 'a' which allows you to press a button to start the DFU process, and 'b' which is the updated application.
Prerequisites
cargo-binutils
cargo-flash
embassy-boot-stm32
Usage
# Flash bootloader
cargo flash --manifest-path ../../bootloader/stm32/Cargo.toml --release --features embassy-stm32/stm32l151cb-a --chip STM32L151CBxxA
# Build 'b'
cargo build --release --bin b
# Generate binary for 'b'
cargo objcopy --release --bin b -- -O binary b.bin
Flash a
(which includes b.bin)
cargo flash --release --bin a --chip STM32L151CBxxA