diff options
| -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 | ||
