aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDion Dokter <[email protected]>2025-05-01 13:49:29 +0200
committerDion Dokter <[email protected]>2025-05-01 14:28:06 +0200
commite478bdf1df1c41cee0fd0aad29a66db4cf6f93f5 (patch)
treeb01c50b833ea75cff017cbd63d6c754c5186303a
parent59d839a2b8a488bf1e9056f46ba1dff61148642b (diff)
Remove all notion of 'default' and 'alt' flash layouts. Now there's just the one layout.
-rw-r--r--embassy-stm32/src/flash/asynch.rs7
-rw-r--r--embassy-stm32/src/flash/common.rs7
-rw-r--r--embassy-stm32/src/flash/f0.rs10
-rw-r--r--embassy-stm32/src/flash/f1f3.rs10
-rw-r--r--embassy-stm32/src/flash/f2.rs10
-rw-r--r--embassy-stm32/src/flash/f4.rs14
-rw-r--r--embassy-stm32/src/flash/f7.rs18
-rw-r--r--embassy-stm32/src/flash/g.rs10
-rw-r--r--embassy-stm32/src/flash/h5.rs14
-rw-r--r--embassy-stm32/src/flash/h50.rs10
-rw-r--r--embassy-stm32/src/flash/h7.rs10
-rw-r--r--embassy-stm32/src/flash/l.rs10
-rw-r--r--embassy-stm32/src/flash/mod.rs10
-rw-r--r--embassy-stm32/src/flash/other.rs10
-rw-r--r--embassy-stm32/src/flash/u0.rs10
-rw-r--r--embassy-stm32/src/flash/u5.rs10
16 files changed, 26 insertions, 144 deletions
diff --git a/embassy-stm32/src/flash/asynch.rs b/embassy-stm32/src/flash/asynch.rs
index 599b7bb4e..006dcddeb 100644
--- a/embassy-stm32/src/flash/asynch.rs
+++ b/embassy-stm32/src/flash/asynch.rs
@@ -6,8 +6,8 @@ use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex;
6use embassy_sync::mutex::Mutex; 6use embassy_sync::mutex::Mutex;
7 7
8use super::{ 8use super::{
9 blocking_read, ensure_sector_aligned, family, get_sector, Async, Error, Flash, FlashLayout, FLASH_BASE, FLASH_SIZE, 9 blocking_read, ensure_sector_aligned, family, get_flash_regions, get_sector, Async, Error, Flash, FlashLayout,
10 WRITE_SIZE, 10 FLASH_BASE, FLASH_SIZE, WRITE_SIZE,
11}; 11};
12use crate::interrupt::InterruptExt; 12use crate::interrupt::InterruptExt;
13use crate::peripherals::FLASH; 13use crate::peripherals::FLASH;
@@ -34,7 +34,6 @@ impl<'d> Flash<'d, Async> {
34 /// 34 ///
35 /// See module-level documentation for details on how memory regions work. 35 /// See module-level documentation for details on how memory regions work.
36 pub fn into_regions(self) -> FlashLayout<'d, Async> { 36 pub fn into_regions(self) -> FlashLayout<'d, Async> {
37 assert!(family::is_default_layout());
38 FlashLayout::new(self.inner) 37 FlashLayout::new(self.inner)
39 } 38 }
40 39
@@ -123,7 +122,7 @@ pub(super) async unsafe fn write_chunked(base: u32, size: u32, offset: u32, byte
123pub(super) async unsafe fn erase_sectored(base: u32, from: u32, to: u32) -> Result<(), Error> { 122pub(super) async unsafe fn erase_sectored(base: u32, from: u32, to: u32) -> Result<(), Error> {
124 let start_address = base + from; 123 let start_address = base + from;
125 let end_address = base + to; 124 let end_address = base + to;
126 let regions = family::get_flash_regions(); 125 let regions = get_flash_regions();
127 126
128 ensure_sector_aligned(start_address, end_address, regions)?; 127 ensure_sector_aligned(start_address, end_address, regions)?;
129 128
diff --git a/embassy-stm32/src/flash/common.rs b/embassy-stm32/src/flash/common.rs
index 93d734b20..10023e637 100644
--- a/embassy-stm32/src/flash/common.rs
+++ b/embassy-stm32/src/flash/common.rs
@@ -4,8 +4,8 @@ use core::sync::atomic::{fence, Ordering};
4use embassy_hal_internal::drop::OnDrop; 4use embassy_hal_internal::drop::OnDrop;
5 5
6use super::{ 6use super::{
7 family, Async, Blocking, Error, FlashBank, FlashLayout, FlashRegion, FlashSector, FLASH_SIZE, MAX_ERASE_SIZE, 7 family, get_flash_regions, Async, Blocking, Error, FlashBank, FlashLayout, FlashRegion, FlashSector, FLASH_SIZE,
8 READ_SIZE, WRITE_SIZE, 8 MAX_ERASE_SIZE, READ_SIZE, WRITE_SIZE,
9}; 9};
10use crate::Peri; 10use crate::Peri;
11use crate::_generated::FLASH_BASE; 11use crate::_generated::FLASH_BASE;
@@ -36,7 +36,6 @@ impl<'d, MODE> Flash<'d, MODE> {
36 /// 36 ///
37 /// See module-level documentation for details on how memory regions work. 37 /// See module-level documentation for details on how memory regions work.
38 pub fn into_blocking_regions(self) -> FlashLayout<'d, Blocking> { 38 pub fn into_blocking_regions(self) -> FlashLayout<'d, Blocking> {
39 assert!(family::is_default_layout());
40 FlashLayout::new(self.inner) 39 FlashLayout::new(self.inner)
41 } 40 }
42 41
@@ -141,7 +140,7 @@ pub(super) unsafe fn blocking_erase(
141) -> Result<(), Error> { 140) -> Result<(), Error> {
142 let start_address = base + from; 141 let start_address = base + from;
143 let end_address = base + to; 142 let end_address = base + to;
144 let regions = family::get_flash_regions(); 143 let regions = get_flash_regions();
145 144
146 ensure_sector_aligned(start_address, end_address, regions)?; 145 ensure_sector_aligned(start_address, end_address, regions)?;
147 146
diff --git a/embassy-stm32/src/flash/f0.rs b/embassy-stm32/src/flash/f0.rs
index 402312f68..3f9dbe945 100644
--- a/embassy-stm32/src/flash/f0.rs
+++ b/embassy-stm32/src/flash/f0.rs
@@ -1,18 +1,10 @@
1use core::ptr::write_volatile; 1use core::ptr::write_volatile;
2use core::sync::atomic::{fence, Ordering}; 2use core::sync::atomic::{fence, Ordering};
3 3
4use super::{FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE}; 4use super::{FlashSector, WRITE_SIZE};
5use crate::flash::Error; 5use crate::flash::Error;
6use crate::pac; 6use crate::pac;
7 7
8pub(crate) const fn is_default_layout() -> bool {
9 true
10}
11
12pub(crate) const fn get_flash_regions() -> &'static [&'static FlashRegion] {
13 &FLASH_REGIONS
14}
15
16pub(crate) unsafe fn lock() { 8pub(crate) unsafe fn lock() {
17 pac::FLASH.cr().modify(|w| w.set_lock(true)); 9 pac::FLASH.cr().modify(|w| w.set_lock(true));
18} 10}
diff --git a/embassy-stm32/src/flash/f1f3.rs b/embassy-stm32/src/flash/f1f3.rs
index ec237b9ff..bf9ad2893 100644
--- a/embassy-stm32/src/flash/f1f3.rs
+++ b/embassy-stm32/src/flash/f1f3.rs
@@ -1,18 +1,10 @@
1use core::ptr::write_volatile; 1use core::ptr::write_volatile;
2use core::sync::atomic::{fence, Ordering}; 2use core::sync::atomic::{fence, Ordering};
3 3
4use super::{FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE}; 4use super::{FlashSector, WRITE_SIZE};
5use crate::flash::Error; 5use crate::flash::Error;
6use crate::pac; 6use crate::pac;
7 7
8pub(crate) const fn is_default_layout() -> bool {
9 true
10}
11
12pub(crate) const fn get_flash_regions() -> &'static [&'static FlashRegion] {
13 &FLASH_REGIONS
14}
15
16pub(crate) unsafe fn lock() { 8pub(crate) unsafe fn lock() {
17 pac::FLASH.cr().modify(|w| w.set_lock(true)); 9 pac::FLASH.cr().modify(|w| w.set_lock(true));
18} 10}
diff --git a/embassy-stm32/src/flash/f2.rs b/embassy-stm32/src/flash/f2.rs
index cdab1fd2d..67e380619 100644
--- a/embassy-stm32/src/flash/f2.rs
+++ b/embassy-stm32/src/flash/f2.rs
@@ -3,7 +3,7 @@ use core::sync::atomic::{fence, AtomicBool, Ordering};
3 3
4use pac::flash::regs::Sr; 4use pac::flash::regs::Sr;
5 5
6use super::{FlashBank, FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE}; 6use super::{get_flash_regions, FlashBank, FlashSector, WRITE_SIZE};
7use crate::flash::Error; 7use crate::flash::Error;
8use crate::pac; 8use crate::pac;
9 9
@@ -15,14 +15,6 @@ impl FlashSector {
15 } 15 }
16} 16}
17 17
18pub(crate) const fn is_default_layout() -> bool {
19 true
20}
21
22pub(crate) const fn get_flash_regions() -> &'static [&'static FlashRegion] {
23 &FLASH_REGIONS
24}
25
26pub(crate) unsafe fn lock() { 18pub(crate) unsafe fn lock() {
27 pac::FLASH.cr().modify(|w| w.set_lock(true)); 19 pac::FLASH.cr().modify(|w| w.set_lock(true));
28} 20}
diff --git a/embassy-stm32/src/flash/f4.rs b/embassy-stm32/src/flash/f4.rs
index 7d789a6bb..62e0492b5 100644
--- a/embassy-stm32/src/flash/f4.rs
+++ b/embassy-stm32/src/flash/f4.rs
@@ -4,7 +4,7 @@ use core::sync::atomic::{fence, AtomicBool, Ordering};
4use embassy_sync::waitqueue::AtomicWaker; 4use embassy_sync::waitqueue::AtomicWaker;
5use pac::flash::regs::Sr; 5use pac::flash::regs::Sr;
6 6
7use super::{FlashBank, FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE}; 7use super::{get_flash_regions, FlashBank, FlashSector, WRITE_SIZE};
8use crate::_generated::FLASH_SIZE; 8use crate::_generated::FLASH_SIZE;
9use crate::flash::Error; 9use crate::flash::Error;
10use crate::pac; 10use crate::pac;
@@ -18,14 +18,6 @@ impl FlashSector {
18 } 18 }
19} 19}
20 20
21pub(crate) const fn is_default_layout() -> bool {
22 true
23}
24
25pub const fn get_flash_regions() -> &'static [&'static FlashRegion] {
26 &FLASH_REGIONS
27}
28
29pub(crate) unsafe fn on_interrupt() { 21pub(crate) unsafe fn on_interrupt() {
30 // Clear IRQ flags 22 // Clear IRQ flags
31 pac::FLASH.sr().write(|w| { 23 pac::FLASH.sr().write(|w| {
@@ -306,7 +298,7 @@ mod tests {
306 298
307 if !cfg!(feature = "dual-bank") { 299 if !cfg!(feature = "dual-bank") {
308 let assert_sector = |snb: u8, index_in_bank: u8, start: u32, size: u32, address: u32| { 300 let assert_sector = |snb: u8, index_in_bank: u8, start: u32, size: u32, address: u32| {
309 let sector = get_sector(address, &FLASH_REGIONS); 301 let sector = get_sector(address, crate::flash::get_flash_regions());
310 assert_eq!(snb, sector.snb()); 302 assert_eq!(snb, sector.snb());
311 assert_eq!( 303 assert_eq!(
312 FlashSector { 304 FlashSector {
@@ -333,7 +325,7 @@ mod tests {
333 assert_sector(0x0B, 11, 0x080E_0000, LARGE_SECTOR_SIZE, 0x080F_FFFF); 325 assert_sector(0x0B, 11, 0x080E_0000, LARGE_SECTOR_SIZE, 0x080F_FFFF);
334 } else { 326 } else {
335 let assert_sector = |snb: u8, bank: FlashBank, index_in_bank: u8, start: u32, size: u32, address: u32| { 327 let assert_sector = |snb: u8, bank: FlashBank, index_in_bank: u8, start: u32, size: u32, address: u32| {
336 let sector = get_sector(address, &FLASH_REGIONS); 328 let sector = get_sector(address, crate::flash::get_flash_regions());
337 assert_eq!(snb, sector.snb()); 329 assert_eq!(snb, sector.snb());
338 assert_eq!( 330 assert_eq!(
339 FlashSector { 331 FlashSector {
diff --git a/embassy-stm32/src/flash/f7.rs b/embassy-stm32/src/flash/f7.rs
index 27a7afadf..0547c747a 100644
--- a/embassy-stm32/src/flash/f7.rs
+++ b/embassy-stm32/src/flash/f7.rs
@@ -1,7 +1,7 @@
1use core::ptr::write_volatile; 1use core::ptr::write_volatile;
2use core::sync::atomic::{fence, Ordering}; 2use core::sync::atomic::{fence, Ordering};
3 3
4use super::{FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE}; 4use super::{FlashSector, WRITE_SIZE};
5use crate::flash::Error; 5use crate::flash::Error;
6use crate::pac; 6use crate::pac;
7 7
@@ -11,14 +11,6 @@ impl FlashSector {
11 } 11 }
12} 12}
13 13
14pub(crate) const fn is_default_layout() -> bool {
15 true
16}
17
18pub(crate) const fn get_flash_regions() -> &'static [&'static FlashRegion] {
19 &FLASH_REGIONS
20}
21
22pub(crate) unsafe fn lock() { 14pub(crate) unsafe fn lock() {
23 pac::FLASH.cr().modify(|w| w.set_lock(true)); 15 pac::FLASH.cr().modify(|w| w.set_lock(true));
24} 16}
@@ -124,7 +116,7 @@ mod tests {
124 start, 116 start,
125 size 117 size
126 }, 118 },
127 get_sector(address, &FLASH_REGIONS) 119 get_sector(address, crate::flash::get_flash_regions())
128 ) 120 )
129 }; 121 };
130 122
@@ -157,7 +149,7 @@ mod tests {
157 start, 149 start,
158 size 150 size
159 }, 151 },
160 get_sector(address, &FLASH_REGIONS) 152 get_sector(address, crate::flash::get_flash_regions())
161 ) 153 )
162 }; 154 };
163 155
@@ -190,9 +182,9 @@ mod tests {
190 start, 182 start,
191 size 183 size
192 }, 184 },
193 get_sector(address, &FLASH_REGIONS) 185 get_sector(address, crate::flash::get_flash_regions())
194 ); 186 );
195 assert_eq!(get_sector(address, &FLASH_REGIONS).snb(), snb); 187 assert_eq!(get_sector(address, crate::flash::get_flash_regions()).snb(), snb);
196 }; 188 };
197 189
198 assert_sector(0, 0x0800_0000, SMALL_SECTOR_SIZE, 0x0800_0000, 0x00, FlashBank::Bank1); 190 assert_sector(0, 0x0800_0000, SMALL_SECTOR_SIZE, 0x0800_0000, 0x00, FlashBank::Bank1);
diff --git a/embassy-stm32/src/flash/g.rs b/embassy-stm32/src/flash/g.rs
index 70e472dcf..bc1fd360c 100644
--- a/embassy-stm32/src/flash/g.rs
+++ b/embassy-stm32/src/flash/g.rs
@@ -3,18 +3,10 @@ use core::sync::atomic::{fence, Ordering};
3 3
4use cortex_m::interrupt; 4use cortex_m::interrupt;
5 5
6use super::{FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE}; 6use super::{FlashSector, WRITE_SIZE};
7use crate::flash::Error; 7use crate::flash::Error;
8use crate::pac; 8use crate::pac;
9 9
10pub(crate) const fn is_default_layout() -> bool {
11 true
12}
13
14pub(crate) const fn get_flash_regions() -> &'static [&'static FlashRegion] {
15 &FLASH_REGIONS
16}
17
18pub(crate) unsafe fn lock() { 10pub(crate) unsafe fn lock() {
19 pac::FLASH.cr().modify(|w| w.set_lock(true)); 11 pac::FLASH.cr().modify(|w| w.set_lock(true));
20} 12}
diff --git a/embassy-stm32/src/flash/h5.rs b/embassy-stm32/src/flash/h5.rs
index d95de2e38..fd9bfcc75 100644
--- a/embassy-stm32/src/flash/h5.rs
+++ b/embassy-stm32/src/flash/h5.rs
@@ -1,22 +1,10 @@
1use core::ptr::write_volatile; 1use core::ptr::write_volatile;
2use core::sync::atomic::{fence, Ordering}; 2use core::sync::atomic::{fence, Ordering};
3 3
4use super::{FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE}; 4use super::{FlashSector, WRITE_SIZE};
5use crate::flash::Error; 5use crate::flash::Error;
6use crate::pac; 6use crate::pac;
7 7
8pub(crate) const fn is_default_layout() -> bool {
9 true
10}
11
12// const fn is_dual_bank() -> bool {
13// FLASH_REGIONS.len() >= 2
14// }
15
16pub(crate) fn get_flash_regions() -> &'static [&'static FlashRegion] {
17 &FLASH_REGIONS
18}
19
20pub(crate) unsafe fn lock() { 8pub(crate) unsafe fn lock() {
21 if !pac::FLASH.nscr().read().lock() { 9 if !pac::FLASH.nscr().read().lock() {
22 pac::FLASH.nscr().modify(|r| { 10 pac::FLASH.nscr().modify(|r| {
diff --git a/embassy-stm32/src/flash/h50.rs b/embassy-stm32/src/flash/h50.rs
index 74cd6cc03..f8e210556 100644
--- a/embassy-stm32/src/flash/h50.rs
+++ b/embassy-stm32/src/flash/h50.rs
@@ -8,17 +8,9 @@ use cortex_m::interrupt;
8use pac::flash::regs::Nssr; 8use pac::flash::regs::Nssr;
9use pac::flash::vals::Bksel; 9use pac::flash::vals::Bksel;
10 10
11use super::{Error, FlashBank, FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE}; 11use super::{Error, FlashBank, FlashSector, WRITE_SIZE};
12use crate::pac; 12use crate::pac;
13 13
14pub(crate) const fn is_default_layout() -> bool {
15 true
16}
17
18pub(crate) const fn get_flash_regions() -> &'static [&'static FlashRegion] {
19 &FLASH_REGIONS
20}
21
22pub(crate) unsafe fn lock() { 14pub(crate) unsafe fn lock() {
23 pac::FLASH.nscr().modify(|w| w.set_lock(true)); 15 pac::FLASH.nscr().modify(|w| w.set_lock(true));
24} 16}
diff --git a/embassy-stm32/src/flash/h7.rs b/embassy-stm32/src/flash/h7.rs
index 254915381..f1d84101c 100644
--- a/embassy-stm32/src/flash/h7.rs
+++ b/embassy-stm32/src/flash/h7.rs
@@ -1,22 +1,14 @@
1use core::ptr::write_volatile; 1use core::ptr::write_volatile;
2use core::sync::atomic::{fence, Ordering}; 2use core::sync::atomic::{fence, Ordering};
3 3
4use super::{FlashRegion, FlashSector, BANK1_REGION, FLASH_REGIONS, WRITE_SIZE}; 4use super::{FlashSector, BANK1_REGION, FLASH_REGIONS, WRITE_SIZE};
5use crate::flash::Error; 5use crate::flash::Error;
6use crate::pac; 6use crate::pac;
7 7
8pub(crate) const fn is_default_layout() -> bool {
9 true
10}
11
12const fn is_dual_bank() -> bool { 8const fn is_dual_bank() -> bool {
13 FLASH_REGIONS.len() >= 2 9 FLASH_REGIONS.len() >= 2
14} 10}
15 11
16pub(crate) fn get_flash_regions() -> &'static [&'static FlashRegion] {
17 &FLASH_REGIONS
18}
19
20pub(crate) unsafe fn lock() { 12pub(crate) unsafe fn lock() {
21 pac::FLASH.bank(0).cr().modify(|w| w.set_lock(true)); 13 pac::FLASH.bank(0).cr().modify(|w| w.set_lock(true));
22 if is_dual_bank() { 14 if is_dual_bank() {
diff --git a/embassy-stm32/src/flash/l.rs b/embassy-stm32/src/flash/l.rs
index 3b62fa2ee..65cea005c 100644
--- a/embassy-stm32/src/flash/l.rs
+++ b/embassy-stm32/src/flash/l.rs
@@ -1,18 +1,10 @@
1use core::ptr::write_volatile; 1use core::ptr::write_volatile;
2use core::sync::atomic::{fence, Ordering}; 2use core::sync::atomic::{fence, Ordering};
3 3
4use super::{FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE}; 4use super::{FlashSector, WRITE_SIZE};
5use crate::flash::Error; 5use crate::flash::Error;
6use crate::pac; 6use crate::pac;
7 7
8pub(crate) const fn is_default_layout() -> bool {
9 true
10}
11
12pub(crate) const fn get_flash_regions() -> &'static [&'static FlashRegion] {
13 &FLASH_REGIONS
14}
15
16pub(crate) unsafe fn lock() { 8pub(crate) unsafe fn lock() {
17 #[cfg(any(flash_wl, flash_wb, flash_l4))] 9 #[cfg(any(flash_wl, flash_wb, flash_l4))]
18 pac::FLASH.cr().modify(|w| w.set_lock(true)); 10 pac::FLASH.cr().modify(|w| w.set_lock(true));
diff --git a/embassy-stm32/src/flash/mod.rs b/embassy-stm32/src/flash/mod.rs
index c7488c8ef..adc45db9c 100644
--- a/embassy-stm32/src/flash/mod.rs
+++ b/embassy-stm32/src/flash/mod.rs
@@ -14,17 +14,9 @@ pub use common::*;
14pub use crate::_generated::flash_regions::*; 14pub use crate::_generated::flash_regions::*;
15pub use crate::_generated::{FLASH_BASE, FLASH_SIZE, MAX_ERASE_SIZE, WRITE_SIZE}; 15pub use crate::_generated::{FLASH_BASE, FLASH_SIZE, MAX_ERASE_SIZE, WRITE_SIZE};
16 16
17/// Get whether the default flash layout is being used.
18///
19/// In some chips, dual-bank is not default. This will then return `false`
20/// when dual-bank is enabled.
21pub fn is_default_layout() -> bool {
22 family::is_default_layout()
23}
24
25/// Get all flash regions. 17/// Get all flash regions.
26pub fn get_flash_regions() -> &'static [&'static FlashRegion] { 18pub fn get_flash_regions() -> &'static [&'static FlashRegion] {
27 family::get_flash_regions() 19 &FLASH_REGIONS
28} 20}
29 21
30/// Read size (always 1) 22/// Read size (always 1)
diff --git a/embassy-stm32/src/flash/other.rs b/embassy-stm32/src/flash/other.rs
index 20f84a72f..293a79be3 100644
--- a/embassy-stm32/src/flash/other.rs
+++ b/embassy-stm32/src/flash/other.rs
@@ -1,14 +1,6 @@
1#![allow(unused)] 1#![allow(unused)]
2 2
3use super::{Error, FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE}; 3use super::{Error, FlashSector, WRITE_SIZE};
4
5pub(crate) const fn is_default_layout() -> bool {
6 true
7}
8
9pub(crate) const fn get_flash_regions() -> &'static [&'static FlashRegion] {
10 &FLASH_REGIONS
11}
12 4
13pub(crate) unsafe fn lock() { 5pub(crate) unsafe fn lock() {
14 unimplemented!(); 6 unimplemented!();
diff --git a/embassy-stm32/src/flash/u0.rs b/embassy-stm32/src/flash/u0.rs
index bfdbd15a5..68d847eca 100644
--- a/embassy-stm32/src/flash/u0.rs
+++ b/embassy-stm32/src/flash/u0.rs
@@ -3,18 +3,10 @@ use core::sync::atomic::{fence, Ordering};
3 3
4use cortex_m::interrupt; 4use cortex_m::interrupt;
5 5
6use super::{FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE}; 6use super::{FlashSector, WRITE_SIZE};
7use crate::flash::Error; 7use crate::flash::Error;
8use crate::pac; 8use crate::pac;
9 9
10pub(crate) const fn is_default_layout() -> bool {
11 true
12}
13
14pub(crate) const fn get_flash_regions() -> &'static [&'static FlashRegion] {
15 &FLASH_REGIONS
16}
17
18pub(crate) unsafe fn lock() { 10pub(crate) unsafe fn lock() {
19 pac::FLASH.cr().modify(|w| w.set_lock(true)); 11 pac::FLASH.cr().modify(|w| w.set_lock(true));
20} 12}
diff --git a/embassy-stm32/src/flash/u5.rs b/embassy-stm32/src/flash/u5.rs
index dad698316..131caa195 100644
--- a/embassy-stm32/src/flash/u5.rs
+++ b/embassy-stm32/src/flash/u5.rs
@@ -1,18 +1,10 @@
1use core::ptr::write_volatile; 1use core::ptr::write_volatile;
2use core::sync::atomic::{fence, Ordering}; 2use core::sync::atomic::{fence, Ordering};
3 3
4use super::{FlashBank, FlashRegion, FlashSector, FLASH_REGIONS, WRITE_SIZE}; 4use super::{FlashBank, FlashSector, WRITE_SIZE};
5use crate::flash::Error; 5use crate::flash::Error;
6use crate::pac; 6use crate::pac;
7 7
8pub(crate) const fn is_default_layout() -> bool {
9 true
10}
11
12pub(crate) const fn get_flash_regions() -> &'static [&'static FlashRegion] {
13 &FLASH_REGIONS
14}
15
16pub(crate) unsafe fn lock() { 8pub(crate) unsafe fn lock() {
17 #[cfg(feature = "trustzone-secure")] 9 #[cfg(feature = "trustzone-secure")]
18 pac::FLASH.seccr().modify(|w| w.set_lock(true)); 10 pac::FLASH.seccr().modify(|w| w.set_lock(true));