diff options
| author | Rasmus Melchior Jacobsen <[email protected]> | 2023-03-29 13:52:52 +0200 |
|---|---|---|
| committer | Rasmus Melchior Jacobsen <[email protected]> | 2023-03-29 13:52:52 +0200 |
| commit | b7dfc8de10ceddd6c2e8c078e529eb5e266ea7db (patch) | |
| tree | 0662645a40345ebd53d9d68186b20fad13fb22e2 /embassy-stm32 | |
| parent | ddbd5098658612e1421cdd081956c3e6ee3c92f8 (diff) | |
Let flash module be conditionally included
Diffstat (limited to 'embassy-stm32')
| -rw-r--r-- | embassy-stm32/build.rs | 2 | ||||
| -rw-r--r-- | embassy-stm32/src/flash/l.rs | 4 | ||||
| -rw-r--r-- | embassy-stm32/src/flash/other.rs | 11 | ||||
| -rw-r--r-- | embassy-stm32/src/lib.rs | 11 |
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}; | |||
| 6 | use crate::flash::Error; | 6 | use crate::flash::Error; |
| 7 | use crate::pac; | 7 | use crate::pac; |
| 8 | 8 | ||
| 9 | const ERASE_SIZE: usize = BANK1::SETTINGS.erase_size; | ||
| 10 | |||
| 11 | pub(crate) unsafe fn lock() { | 9 | pub(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 @@ | |||
| 1 | pub trait FlashRegion { | ||
| 2 | const SETTINGS: FlashRegionSettings; | ||
| 3 | } | ||
| 4 | |||
| 5 | pub 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)] |
| 45 | pub mod crc; | 45 | pub 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 | ))] | ||
| 49 | pub mod flash; | 47 | pub 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 | )))] | ||
| 53 | pub mod flash { | ||
| 54 | mod other; | ||
| 55 | pub use other::FlashRegion; | ||
| 56 | } | ||
| 57 | pub mod pwm; | 48 | pub mod pwm; |
| 58 | #[cfg(rng)] | 49 | #[cfg(rng)] |
| 59 | pub mod rng; | 50 | pub mod rng; |
