diff options
| author | Rasmus Melchior Jacobsen <[email protected]> | 2023-05-30 14:03:31 +0200 |
|---|---|---|
| committer | Rasmus Melchior Jacobsen <[email protected]> | 2023-05-30 14:03:31 +0200 |
| commit | 36e00caf4dc70905b735531c0d5634addd026954 (patch) | |
| tree | 01d3bbb3b7f1ab522f9a1fc651f48197ce355927 /examples/boot/application/nrf/src/bin | |
| parent | c2aca45b8d3785007da20ce007d6a6e352fac1a0 (diff) | |
Align examples
Diffstat (limited to 'examples/boot/application/nrf/src/bin')
| -rw-r--r-- | examples/boot/application/nrf/src/bin/a.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/examples/boot/application/nrf/src/bin/a.rs b/examples/boot/application/nrf/src/bin/a.rs index 090a05b23..06c237781 100644 --- a/examples/boot/application/nrf/src/bin/a.rs +++ b/examples/boot/application/nrf/src/bin/a.rs | |||
| @@ -3,12 +3,13 @@ | |||
| 3 | #![macro_use] | 3 | #![macro_use] |
| 4 | #![feature(type_alias_impl_trait)] | 4 | #![feature(type_alias_impl_trait)] |
| 5 | 5 | ||
| 6 | use embassy_boot_nrf::FirmwareUpdater; | 6 | use embassy_boot_nrf::{FirmwareUpdater, FirmwareUpdaterConfig}; |
| 7 | use embassy_embedded_hal::adapter::BlockingAsync; | 7 | use embassy_embedded_hal::adapter::BlockingAsync; |
| 8 | use embassy_executor::Spawner; | 8 | use embassy_executor::Spawner; |
| 9 | use embassy_nrf::gpio::{Input, Level, Output, OutputDrive, Pull}; | 9 | use embassy_nrf::gpio::{Input, Level, Output, OutputDrive, Pull}; |
| 10 | use embassy_nrf::nvmc::Nvmc; | 10 | use embassy_nrf::nvmc::Nvmc; |
| 11 | use embassy_nrf::wdt::{self, Watchdog}; | 11 | use embassy_nrf::wdt::{self, Watchdog}; |
| 12 | use embassy_sync::mutex::Mutex; | ||
| 12 | use panic_reset as _; | 13 | use panic_reset as _; |
| 13 | 14 | ||
| 14 | static APP_B: &[u8] = include_bytes!("../../b.bin"); | 15 | static APP_B: &[u8] = include_bytes!("../../b.bin"); |
| @@ -45,9 +46,10 @@ async fn main(_spawner: Spawner) { | |||
| 45 | }; | 46 | }; |
| 46 | 47 | ||
| 47 | let nvmc = Nvmc::new(p.NVMC); | 48 | let nvmc = Nvmc::new(p.NVMC); |
| 48 | let mut nvmc = BlockingAsync::new(nvmc); | 49 | let nvmc = Mutex::new(BlockingAsync::new(nvmc)); |
| 49 | 50 | ||
| 50 | let mut updater = FirmwareUpdater::default(); | 51 | let config = FirmwareUpdaterConfig::from_linkerfile(&nvmc); |
| 52 | let mut updater = FirmwareUpdater::new(config); | ||
| 51 | loop { | 53 | loop { |
| 52 | led.set_low(); | 54 | led.set_low(); |
| 53 | button.wait_for_any_edge().await; | 55 | button.wait_for_any_edge().await; |
| @@ -56,11 +58,11 @@ async fn main(_spawner: Spawner) { | |||
| 56 | for chunk in APP_B.chunks(4096) { | 58 | for chunk in APP_B.chunks(4096) { |
| 57 | let mut buf: [u8; 4096] = [0; 4096]; | 59 | let mut buf: [u8; 4096] = [0; 4096]; |
| 58 | buf[..chunk.len()].copy_from_slice(chunk); | 60 | buf[..chunk.len()].copy_from_slice(chunk); |
| 59 | updater.write_firmware(offset, &buf, &mut nvmc, 4096).await.unwrap(); | 61 | updater.write_firmware(offset, &buf).await.unwrap(); |
| 60 | offset += chunk.len(); | 62 | offset += chunk.len(); |
| 61 | } | 63 | } |
| 62 | let mut magic = [0; 4]; | 64 | let mut magic = [0; 4]; |
| 63 | updater.mark_updated(&mut nvmc, &mut magic).await.unwrap(); | 65 | updater.mark_updated(&mut magic).await.unwrap(); |
| 64 | led.set_high(); | 66 | led.set_high(); |
| 65 | cortex_m::peripheral::SCB::sys_reset(); | 67 | cortex_m::peripheral::SCB::sys_reset(); |
| 66 | } | 68 | } |
