aboutsummaryrefslogtreecommitdiff
path: root/embassy-nrf/src
diff options
context:
space:
mode:
authorDion Dokter <[email protected]>2022-12-09 11:02:16 +0100
committerDion Dokter <[email protected]>2022-12-09 11:02:16 +0100
commit1d2f97b4e226871014c2cf470070343df15d74a0 (patch)
tree4c79e1b7b5345f6a13d57a7e62d37497c310a95e /embassy-nrf/src
parentdbe97b409891ed865d07edc29cec4d8af13e55d9 (diff)
Fixed erase bug
Diffstat (limited to 'embassy-nrf/src')
-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