diff options
| author | Ulf Lilleengen <[email protected]> | 2022-06-07 15:59:22 +0200 |
|---|---|---|
| committer | Ulf Lilleengen <[email protected]> | 2022-06-07 15:59:22 +0200 |
| commit | 7d64f5cda7226f7a30a38da68d9d4e2a31a21eaa (patch) | |
| tree | 85447c63da8be2298f0232f0c96c73ca439148bb /embassy-stm32/src/flash/l.rs | |
| parent | c212f30be0f680ea5ba5950371062e19678454b6 (diff) | |
Use correct index and bank
Diffstat (limited to 'embassy-stm32/src/flash/l.rs')
| -rw-r--r-- | embassy-stm32/src/flash/l.rs | 11 |
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 | ||
