mirror of
https://github.com/embassy-rs/embassy.git
synced 2024-11-21 22:32:29 +00:00
fix(boot): update examples
This commit is contained in:
parent
4a72f946e4
commit
cfc3e96633
@ -50,7 +50,7 @@ async fn main(_spawner: Spawner) {
|
||||
let nvmc = Nvmc::new(p.NVMC);
|
||||
let nvmc = Mutex::new(BlockingAsync::new(nvmc));
|
||||
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile(&nvmc);
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile(&nvmc, &nvmc);
|
||||
let mut magic = [0; 4];
|
||||
let mut updater = FirmwareUpdater::new(config, &mut magic);
|
||||
loop {
|
||||
|
@ -36,7 +36,7 @@ async fn main(_s: Spawner) {
|
||||
let flash = Flash::<_, _, FLASH_SIZE>::new_blocking(p.FLASH);
|
||||
let flash = Mutex::new(RefCell::new(flash));
|
||||
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile_blocking(&flash);
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile_blocking(&flash, &flash);
|
||||
let mut aligned = AlignedBuffer([0; 1]);
|
||||
let mut updater = BlockingFirmwareUpdater::new(config, &mut aligned.0);
|
||||
|
||||
|
@ -3,8 +3,8 @@ MEMORY
|
||||
/* NOTE 1 K = 1 KiBi = 1024 bytes */
|
||||
BOOTLOADER : ORIGIN = 0x08000000, LENGTH = 24K
|
||||
BOOTLOADER_STATE : ORIGIN = 0x08006000, LENGTH = 4K
|
||||
FLASH : ORIGIN = 0x08008000, LENGTH = 32K
|
||||
DFU : ORIGIN = 0x08010000, LENGTH = 36K
|
||||
FLASH : ORIGIN = 0x08008000, LENGTH = 64K
|
||||
DFU : ORIGIN = 0x08018000, LENGTH = 66K
|
||||
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 32K
|
||||
}
|
||||
|
||||
|
@ -28,7 +28,7 @@ async fn main(_spawner: Spawner) {
|
||||
let mut led = Output::new(p.PA5, Level::Low, Speed::Low);
|
||||
led.set_high();
|
||||
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile(&flash);
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile(&flash, &flash);
|
||||
let mut magic = AlignedBuffer([0; WRITE_SIZE]);
|
||||
let mut updater = FirmwareUpdater::new(config, &mut magic.0);
|
||||
button.wait_for_falling_edge().await;
|
||||
|
@ -30,7 +30,7 @@ async fn main(_spawner: Spawner) {
|
||||
let mut led = Output::new(p.PB7, Level::Low, Speed::Low);
|
||||
led.set_high();
|
||||
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile_blocking(&flash);
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile_blocking(&flash, &flash);
|
||||
let mut magic = AlignedBuffer([0; WRITE_SIZE]);
|
||||
let mut updater = BlockingFirmwareUpdater::new(config, &mut magic.0);
|
||||
let writer = updater.prepare_update().unwrap();
|
||||
|
@ -30,7 +30,7 @@ async fn main(_spawner: Spawner) {
|
||||
let mut led = Output::new(p.PB14, Level::Low, Speed::Low);
|
||||
led.set_high();
|
||||
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile_blocking(&flash);
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile_blocking(&flash, &flash);
|
||||
let mut magic = AlignedBuffer([0; WRITE_SIZE]);
|
||||
let mut updater = BlockingFirmwareUpdater::new(config, &mut magic.0);
|
||||
let writer = updater.prepare_update().unwrap();
|
||||
|
@ -3,8 +3,8 @@ MEMORY
|
||||
/* NOTE 1 K = 1 KiBi = 1024 bytes */
|
||||
BOOTLOADER : ORIGIN = 0x08000000, LENGTH = 24K
|
||||
BOOTLOADER_STATE : ORIGIN = 0x08006000, LENGTH = 4K
|
||||
FLASH : ORIGIN = 0x08008000, LENGTH = 32K
|
||||
DFU : ORIGIN = 0x08010000, LENGTH = 36K
|
||||
FLASH : ORIGIN = 0x08008000, LENGTH = 64K
|
||||
DFU : ORIGIN = 0x08018000, LENGTH = 66K
|
||||
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 16K
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,7 @@ async fn main(_spawner: Spawner) {
|
||||
|
||||
led.set_high();
|
||||
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile(&flash);
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile(&flash, &flash);
|
||||
let mut magic = AlignedBuffer([0; WRITE_SIZE]);
|
||||
let mut updater = FirmwareUpdater::new(config, &mut magic.0);
|
||||
button.wait_for_falling_edge().await;
|
||||
|
@ -3,8 +3,8 @@ MEMORY
|
||||
/* NOTE 1 K = 1 KiBi = 1024 bytes */
|
||||
BOOTLOADER : ORIGIN = 0x08000000, LENGTH = 24K
|
||||
BOOTLOADER_STATE : ORIGIN = 0x08006000, LENGTH = 4K
|
||||
FLASH : ORIGIN = 0x08008000, LENGTH = 32K
|
||||
DFU : ORIGIN = 0x08010000, LENGTH = 36K
|
||||
FLASH : ORIGIN = 0x08008000, LENGTH = 46K
|
||||
DFU : ORIGIN = 0x08013800, LENGTH = 54K
|
||||
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 16K
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,7 @@ async fn main(_spawner: Spawner) {
|
||||
|
||||
led.set_high();
|
||||
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile(&flash);
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile(&flash, &flash);
|
||||
let mut magic = AlignedBuffer([0; WRITE_SIZE]);
|
||||
let mut updater = FirmwareUpdater::new(config, &mut magic.0);
|
||||
button.wait_for_falling_edge().await;
|
||||
|
@ -3,8 +3,8 @@ MEMORY
|
||||
/* NOTE 1 K = 1 KiBi = 1024 bytes */
|
||||
BOOTLOADER : ORIGIN = 0x08000000, LENGTH = 24K
|
||||
BOOTLOADER_STATE : ORIGIN = 0x08006000, LENGTH = 4K
|
||||
FLASH : ORIGIN = 0x08008000, LENGTH = 32K
|
||||
DFU : ORIGIN = 0x08010000, LENGTH = 36K
|
||||
FLASH : ORIGIN = 0x08008000, LENGTH = 64K
|
||||
DFU : ORIGIN = 0x08018000, LENGTH = 68K
|
||||
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 32K
|
||||
}
|
||||
|
||||
|
@ -28,7 +28,7 @@ async fn main(_spawner: Spawner) {
|
||||
let mut led = Output::new(p.PB14, Level::Low, Speed::Low);
|
||||
led.set_high();
|
||||
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile(&flash);
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile(&flash, &flash);
|
||||
let mut magic = AlignedBuffer([0; WRITE_SIZE]);
|
||||
let mut updater = FirmwareUpdater::new(config, &mut magic.0);
|
||||
button.wait_for_falling_edge().await;
|
||||
|
@ -1,29 +1,9 @@
|
||||
# Examples using bootloader
|
||||
|
||||
Example for STM32WL 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`
|
||||
Example for STM32WB demonstrating the USB DFU application.
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
# Flash bootloader
|
||||
cargo flash --manifest-path ../../bootloader/stm32/Cargo.toml --release --features embassy-stm32/stm32wl55jc-cm4 --chip STM32WLE5JCIx
|
||||
# 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 STM32WLE5JCIx
|
||||
cargo flash --release --chip STM32WB55RGVx
|
||||
```
|
||||
|
@ -30,7 +30,7 @@ async fn main(_spawner: Spawner) {
|
||||
let flash = Flash::new_blocking(p.FLASH);
|
||||
let flash = Mutex::new(RefCell::new(flash));
|
||||
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile_blocking(&flash);
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile_blocking(&flash, &flash);
|
||||
let mut magic = AlignedBuffer([0; WRITE_SIZE]);
|
||||
let mut firmware_state = BlockingFirmwareState::from_config(config, &mut magic.0);
|
||||
firmware_state.mark_booted().expect("Failed to mark booted");
|
||||
|
@ -3,8 +3,8 @@ MEMORY
|
||||
/* NOTE 1 K = 1 KiBi = 1024 bytes */
|
||||
BOOTLOADER : ORIGIN = 0x08000000, LENGTH = 24K
|
||||
BOOTLOADER_STATE : ORIGIN = 0x08006000, LENGTH = 4K
|
||||
FLASH : ORIGIN = 0x08008000, LENGTH = 32K
|
||||
DFU : ORIGIN = 0x08010000, LENGTH = 36K
|
||||
FLASH : ORIGIN = 0x08008000, LENGTH = 64K
|
||||
DFU : ORIGIN = 0x08018000, LENGTH = 68K
|
||||
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 32K
|
||||
}
|
||||
|
||||
|
@ -28,7 +28,7 @@ async fn main(_spawner: Spawner) {
|
||||
let mut led = Output::new(p.PB9, Level::Low, Speed::Low);
|
||||
led.set_high();
|
||||
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile(&flash);
|
||||
let config = FirmwareUpdaterConfig::from_linkerfile(&flash, &flash);
|
||||
let mut magic = AlignedBuffer([0; WRITE_SIZE]);
|
||||
let mut updater = FirmwareUpdater::new(config, &mut magic.0);
|
||||
button.wait_for_falling_edge().await;
|
||||
|
@ -31,7 +31,7 @@ fn main() -> ! {
|
||||
let flash = WatchdogFlash::start(Nvmc::new(p.NVMC), p.WDT, wdt_config);
|
||||
let flash = Mutex::new(RefCell::new(flash));
|
||||
|
||||
let config = BootLoaderConfig::from_linkerfile_blocking(&flash);
|
||||
let config = BootLoaderConfig::from_linkerfile_blocking(&flash, &flash, &flash);
|
||||
let active_offset = config.active.offset();
|
||||
let bl: BootLoader = BootLoader::prepare(config);
|
||||
|
||||
|
@ -27,7 +27,7 @@ fn main() -> ! {
|
||||
let flash = WatchdogFlash::<FLASH_SIZE>::start(p.FLASH, p.WATCHDOG, Duration::from_secs(8));
|
||||
let flash = Mutex::new(RefCell::new(flash));
|
||||
|
||||
let config = BootLoaderConfig::from_linkerfile_blocking(&flash);
|
||||
let config = BootLoaderConfig::from_linkerfile_blocking(&flash, &flash, &flash);
|
||||
let active_offset = config.active.offset();
|
||||
let bl: BootLoader = BootLoader::prepare(config);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user