diff options
| author | Dion Dokter <[email protected]> | 2022-12-09 11:02:16 +0100 |
|---|---|---|
| committer | Dion Dokter <[email protected]> | 2022-12-09 11:02:16 +0100 |
| commit | 1d2f97b4e226871014c2cf470070343df15d74a0 (patch) | |
| tree | 4c79e1b7b5345f6a13d57a7e62d37497c310a95e /embassy-nrf/src/nvmc.rs | |
| parent | dbe97b409891ed865d07edc29cec4d8af13e55d9 (diff) | |
Fixed erase bug
Diffstat (limited to 'embassy-nrf/src/nvmc.rs')
| -rw-r--r-- | embassy-nrf/src/nvmc.rs | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/embassy-nrf/src/nvmc.rs b/embassy-nrf/src/nvmc.rs index ba6a59129..405ea3171 100644 --- a/embassy-nrf/src/nvmc.rs +++ b/embassy-nrf/src/nvmc.rs | |||
| @@ -72,18 +72,13 @@ impl<'d> Nvmc<'d> { | |||
| 72 | } | 72 | } |
| 73 | 73 | ||
| 74 | #[cfg(not(any(feature = "_nrf9160", feature = "_nrf5340")))] | 74 | #[cfg(not(any(feature = "_nrf9160", feature = "_nrf5340")))] |
| 75 | fn erase_page(&mut self, page: u32) { | 75 | fn erase_page(&mut self, page_addr: u32) { |
| 76 | Self::regs().erasepage().write(|w| unsafe { w.bits(page) }); | 76 | Self::regs().erasepage().write(|w| unsafe { w.bits(page_addr) }); |
| 77 | } | 77 | } |
| 78 | 78 | ||
| 79 | #[cfg(any(feature = "_nrf9160", feature = "_nrf5340"))] | 79 | #[cfg(any(feature = "_nrf9160", feature = "_nrf5340"))] |
| 80 | fn erase_page(&mut self, page: u32) { | 80 | fn erase_page(&mut self, page_addr: u32) { |
| 81 | #[cfg(not(feature = "_nrf5340-net"))] | 81 | let first_page_word = page_addr as *mut u32; |
| 82 | const FLASH_START_ADDR: u32 = 0; | ||
| 83 | #[cfg(feature = "_nrf5340-net")] | ||
| 84 | const FLASH_START_ADDR: u32 = 0x100_0000; | ||
| 85 | |||
| 86 | let first_page_word = (FLASH_START_ADDR + page * PAGE_SIZE as u32) as *mut u32; | ||
| 87 | unsafe { | 82 | unsafe { |
| 88 | first_page_word.write_volatile(0xFFFF_FFFF); | 83 | first_page_word.write_volatile(0xFFFF_FFFF); |
| 89 | } | 84 | } |
| @@ -150,8 +145,8 @@ impl<'d> NorFlash for Nvmc<'d> { | |||
| 150 | self.enable_erase(); | 145 | self.enable_erase(); |
| 151 | self.wait_ready(); | 146 | self.wait_ready(); |
| 152 | 147 | ||
| 153 | for page in (from..to).step_by(PAGE_SIZE) { | 148 | for page_addr in (from..to).step_by(PAGE_SIZE) { |
| 154 | self.erase_page(page); | 149 | self.erase_page(page_addr); |
| 155 | self.wait_ready(); | 150 | self.wait_ready(); |
| 156 | } | 151 | } |
| 157 | 152 | ||
