aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32/src/flash/l.rs
diff options
context:
space:
mode:
authorUlf Lilleengen <[email protected]>2022-06-07 15:59:22 +0200
committerUlf Lilleengen <[email protected]>2022-06-07 15:59:22 +0200
commit7d64f5cda7226f7a30a38da68d9d4e2a31a21eaa (patch)
tree85447c63da8be2298f0232f0c96c73ca439148bb /embassy-stm32/src/flash/l.rs
parentc212f30be0f680ea5ba5950371062e19678454b6 (diff)
Use correct index and bank
Diffstat (limited to 'embassy-stm32/src/flash/l.rs')
-rw-r--r--embassy-stm32/src/flash/l.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/embassy-stm32/src/flash/l.rs b/embassy-stm32/src/flash/l.rs
index 6ec4796a5..cad950e6f 100644
--- a/embassy-stm32/src/flash/l.rs
+++ b/embassy-stm32/src/flash/l.rs
@@ -77,7 +77,14 @@ pub(crate) unsafe fn blocking_erase(from: u32, to: u32) -> Result<(), Error> {
77 77
78 #[cfg(any(flash_wl, flash_wb, flash_l4))] 78 #[cfg(any(flash_wl, flash_wb, flash_l4))]
79 { 79 {
80 let idx = page / super::ERASE_SIZE as u32; 80 let idx = (page - super::FLASH_BASE as u32) / super::ERASE_SIZE as u32;
81
82 #[cfg(flash_l4)]
83 let (idx, bank) = if idx > 255 {
84 (idx - 256, true)
85 } else {
86 (idx, false)
87 };
81 88
82 pac::FLASH.cr().modify(|w| { 89 pac::FLASH.cr().modify(|w| {
83 w.set_per(true); 90 w.set_per(true);
@@ -86,6 +93,8 @@ pub(crate) unsafe fn blocking_erase(from: u32, to: u32) -> Result<(), Error> {
86 w.set_strt(true); 93 w.set_strt(true);
87 #[cfg(any(flash_l4))] 94 #[cfg(any(flash_l4))]
88 w.set_start(true); 95 w.set_start(true);
96 #[cfg(any(flash_l4))]
97 w.set_bker(bank);
89 }); 98 });
90 } 99 }
91 100