aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32
diff options
context:
space:
mode:
authorRasmus Melchior Jacobsen <[email protected]>2023-03-29 13:52:52 +0200
committerRasmus Melchior Jacobsen <[email protected]>2023-03-29 13:52:52 +0200
commitb7dfc8de10ceddd6c2e8c078e529eb5e266ea7db (patch)
tree0662645a40345ebd53d9d68186b20fad13fb22e2 /embassy-stm32
parentddbd5098658612e1421cdd081956c3e6ee3c92f8 (diff)
Let flash module be conditionally included
Diffstat (limited to 'embassy-stm32')
-rw-r--r--embassy-stm32/build.rs2
-rw-r--r--embassy-stm32/src/flash/l.rs4
-rw-r--r--embassy-stm32/src/flash/other.rs11
-rw-r--r--embassy-stm32/src/lib.rs11
4 files changed, 4 insertions, 24 deletions
diff --git a/embassy-stm32/build.rs b/embassy-stm32/build.rs
index f5bdadf5b..d179f5e0f 100644
--- a/embassy-stm32/build.rs
+++ b/embassy-stm32/build.rs
@@ -162,11 +162,13 @@ fn main() {
162 162
163 let regions_len = flash_memory_regions.len(); 163 let regions_len = flash_memory_regions.len();
164 flash_regions.extend(quote! { 164 flash_regions.extend(quote! {
165 #[cfg(flash)]
165 pub struct FlashRegions<'d> { 166 pub struct FlashRegions<'d> {
166 _inner: embassy_hal_common::PeripheralRef<'d, crate::peripherals::FLASH>, 167 _inner: embassy_hal_common::PeripheralRef<'d, crate::peripherals::FLASH>,
167 #(#fields),* 168 #(#fields),*
168 } 169 }
169 170
171 #[cfg(flash)]
170 impl<'d> FlashRegions<'d> { 172 impl<'d> FlashRegions<'d> {
171 pub(crate) const fn new(p: embassy_hal_common::PeripheralRef<'d, crate::peripherals::FLASH>) -> Self { 173 pub(crate) const fn new(p: embassy_hal_common::PeripheralRef<'d, crate::peripherals::FLASH>) -> Self {
172 Self { 174 Self {
diff --git a/embassy-stm32/src/flash/l.rs b/embassy-stm32/src/flash/l.rs
index c8d060f0a..edcf2b2f0 100644
--- a/embassy-stm32/src/flash/l.rs
+++ b/embassy-stm32/src/flash/l.rs
@@ -6,8 +6,6 @@ use super::{FlashRegion, FlashSector, BANK1, WRITE_SIZE};
6use crate::flash::Error; 6use crate::flash::Error;
7use crate::pac; 7use crate::pac;
8 8
9const ERASE_SIZE: usize = BANK1::SETTINGS.erase_size;
10
11pub(crate) unsafe fn lock() { 9pub(crate) unsafe fn lock() {
12 #[cfg(any(flash_wl, flash_wb, flash_l4))] 10 #[cfg(any(flash_wl, flash_wb, flash_l4))]
13 pac::FLASH.cr().modify(|w| w.set_lock(true)); 11 pac::FLASH.cr().modify(|w| w.set_lock(true));
@@ -75,7 +73,7 @@ pub(crate) unsafe fn blocking_erase_sector(sector: &FlashSector) -> Result<(), E
75 73
76 #[cfg(any(flash_wl, flash_wb, flash_l4))] 74 #[cfg(any(flash_wl, flash_wb, flash_l4))]
77 { 75 {
78 let idx = (sector.start - super::FLASH_BASE as u32) / ERASE_SIZE as u32; 76 let idx = (sector.start - super::FLASH_BASE as u32) / BANK1::SETTINGS.erase_size as u32;
79 77
80 #[cfg(flash_l4)] 78 #[cfg(flash_l4)]
81 let (idx, bank) = if idx > 255 { (idx - 256, true) } else { (idx, false) }; 79 let (idx, bank) = if idx > 255 { (idx - 256, true) } else { (idx, false) };
diff --git a/embassy-stm32/src/flash/other.rs b/embassy-stm32/src/flash/other.rs
deleted file mode 100644
index 4ffb4cc35..000000000
--- a/embassy-stm32/src/flash/other.rs
+++ /dev/null
@@ -1,11 +0,0 @@
1pub trait FlashRegion {
2 const SETTINGS: FlashRegionSettings;
3}
4
5pub struct FlashRegionSettings {
6 pub base: usize,
7 pub size: usize,
8 pub erase_size: usize,
9 pub write_size: usize,
10 pub erase_value: u8,
11}
diff --git a/embassy-stm32/src/lib.rs b/embassy-stm32/src/lib.rs
index ddd5c0fdd..2d49c85b4 100644
--- a/embassy-stm32/src/lib.rs
+++ b/embassy-stm32/src/lib.rs
@@ -43,17 +43,8 @@ pub mod i2c;
43 43
44#[cfg(crc)] 44#[cfg(crc)]
45pub mod crc; 45pub mod crc;
46#[cfg(any( 46#[cfg(flash)]
47 flash_l0, flash_l1, flash_wl, flash_wb, flash_l4, flash_f3, flash_f4, flash_f7, flash_h7
48))]
49pub mod flash; 47pub mod flash;
50#[cfg(not(any(
51 flash_l0, flash_l1, flash_wl, flash_wb, flash_l4, flash_f3, flash_f4, flash_f7, flash_h7
52)))]
53pub mod flash {
54 mod other;
55 pub use other::FlashRegion;
56}
57pub mod pwm; 48pub mod pwm;
58#[cfg(rng)] 49#[cfg(rng)]
59pub mod rng; 50pub mod rng;