embassy/examples/boot/application/rp
Dario Nieuwenhuis d3c4e4a20a executor: add Pender, rework Cargo features.
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).
2023-04-03 03:09:11 +02:00
..
.cargo feat: embassy-boot for rp2040 2022-12-02 11:28:33 +01:00
src/bin embassy-boot (rp): Add WatchdogFlash 2023-01-03 22:58:56 +01:00
build.rs feat: embassy-boot for rp2040 2022-12-02 11:28:33 +01:00
Cargo.toml executor: add Pender, rework Cargo features. 2023-04-03 03:09:11 +02:00
memory.x feat: embassy-boot for rp2040 2022-12-02 11:28:33 +01:00
README.md feat: embassy-boot for rp2040 2022-12-02 11:28:33 +01:00

Examples using bootloader

Example for Raspberry Pi Pico demonstrating the bootloader. The example consists of application binaries, 'a' which waits for 5 seconds before flashing the 'b' binary, which blinks the LED.

NOTE: The 'b' binary does not mark the new binary as active, so if you reset the device, it will roll back to the 'a' binary before automatically updating it again.

Prerequisites

  • cargo-binutils
  • cargo-flash
  • embassy-boot-rp

Usage

# Flash bootloader
cargo flash --manifest-path ../../bootloader/rp/Cargo.toml --release --chip RP2040

# 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 RP2040