embassy/examples/boot/application/rp
Ulf Lilleengen 161d3ce05c Add firmware updater examples to CI
CI was not building the a.rs application due to the requirement of b.bin
having been built first. Add a feature flag to examples so that CI can
build them including a dummy application.

Update a.rs application examples so that they compile again.
2023-06-19 23:34:07 +02:00
..
.cargo Switch from probe-run to probe-rs-cli. 2023-04-26 17:00:51 +02:00
src/bin Add firmware updater examples to CI 2023-06-19 23:34:07 +02:00
build.rs feat: embassy-boot for rp2040 2022-12-02 11:28:33 +01:00
Cargo.toml Add firmware updater examples to CI 2023-06-19 23:34:07 +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