aboutsummaryrefslogtreecommitdiff
path: root/src/imxrt10xx.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/imxrt10xx.rs')
-rw-r--r--src/imxrt10xx.rs28
1 files changed, 15 insertions, 13 deletions
diff --git a/src/imxrt10xx.rs b/src/imxrt10xx.rs
index 095b91d..042574c 100644
--- a/src/imxrt10xx.rs
+++ b/src/imxrt10xx.rs
@@ -17,26 +17,28 @@ pub trait Imxrt10xx: 'static {
fn configure_clocks(ccm: ccm::Instance, ccm_analog: ccm_analog::Instance, dcdc: dcdc::Instance);
}
-pub struct Algorithm<C: Imxrt10xx, F: crate::ImxrtFlashAlgorithm>(PhantomData<(C, F)>);
+pub struct Algorithm<C: Imxrt10xx, const FLASH_SIZE_BYTES: usize>(PhantomData<C>);
-impl<C: Imxrt10xx, F: crate::ImxrtFlashAlgorithm> Algorithm<C, F> {
- pub const fn flash_size_bytes() -> usize {
- F::FLASH_CAPACITY_BYTES
- }
+impl<C: Imxrt10xx, const FLASH_SIZE_BYTES: usize> Algorithm<C, FLASH_SIZE_BYTES> {
pub const fn flash_address() -> usize {
FLEXSPI1_BASE as _
}
- pub const fn sector_size_bytes() -> usize {
- F::FLASH_SECTOR_SIZE_BYTES
+
+ pub const fn flash_size_bytes() -> usize {
+ FLASH_SIZE_BYTES
}
- pub const fn page_size_bytes() -> usize {
- F::FLASH_PAGE_SIZE_BYTES
+
+ pub const fn sector_size_bytes() -> usize {
+ 4 * 1024
}
pub fn initialize() -> Self {
C::configure_clocks(C::CCM_INSTANCE, C::CCM_ANALOG_INSTANCE, C::DCDC_INSTANCE);
- crate::reset(C::FLEXSPI1_INSTANCE, F::FLASH_CAPACITY_BYTES / 1024, 128);
- F::initialize(C::FLEXSPI1_INSTANCE);
+ crate::flash::initialize(
+ C::FLEXSPI1_INSTANCE,
+ FLASH_SIZE_BYTES,
+ C::FLEXSPI_FIFO_CAPACITY_BYTES,
+ );
Algorithm(PhantomData)
}
@@ -53,8 +55,8 @@ impl<C: Imxrt10xx, F: crate::ImxrtFlashAlgorithm> Algorithm<C, F> {
}
}
-impl<C: Imxrt10xx, F: crate::ImxrtFlashAlgorithm> flash_algorithm::FlashAlgorithm
- for Algorithm<C, F>
+impl<C: Imxrt10xx, const FLASH_SIZE_BYTES: usize> flash_algorithm::FlashAlgorithm
+ for Algorithm<C, FLASH_SIZE_BYTES>
{
fn new(
_: u32,