aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-nrf/src/nvmc.rs17
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