diff options
Diffstat (limited to 'src/imxrt11xx.rs')
| -rw-r--r-- | src/imxrt11xx.rs | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/src/imxrt11xx.rs b/src/imxrt11xx.rs index 7fc9763..75d5020 100644 --- a/src/imxrt11xx.rs +++ b/src/imxrt11xx.rs @@ -157,20 +157,19 @@ pub trait Imxrt11xx: 'static { const FLEXSPI_FIFO_CAPACITY_BYTES: usize; } -pub struct Algorithm<C: Imxrt11xx, F: crate::ImxrtFlashAlgorithm>(PhantomData<(C, F)>); +pub struct Algorithm<C: Imxrt11xx, const FLASH_SIZE_BYTES: usize>(PhantomData<C>); -impl<C: Imxrt11xx, F: crate::ImxrtFlashAlgorithm> Algorithm<C, F> { - pub const fn flash_size_bytes() -> usize { - F::FLASH_CAPACITY_BYTES - } +impl<C: Imxrt11xx, 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 { @@ -182,12 +181,11 @@ impl<C: Imxrt11xx, F: crate::ImxrtFlashAlgorithm> Algorithm<C, F> { C::PMU_INSTANCE, C::GPC_CPU_INSTANCE, ); - crate::reset( + crate::flash::initialize( C::FLEXSPI1_INSTANCE, - F::FLASH_CAPACITY_BYTES / 1024, + FLASH_SIZE_BYTES, C::FLEXSPI_FIFO_CAPACITY_BYTES, ); - F::initialize(C::FLEXSPI1_INSTANCE); Algorithm(PhantomData) } @@ -204,8 +202,8 @@ impl<C: Imxrt11xx, F: crate::ImxrtFlashAlgorithm> Algorithm<C, F> { } } -impl<C: Imxrt11xx, F: crate::ImxrtFlashAlgorithm> flash_algorithm::FlashAlgorithm - for Algorithm<C, F> +impl<C: Imxrt11xx, const FLASH_SIZE_BYTES: usize> flash_algorithm::FlashAlgorithm + for Algorithm<C, FLASH_SIZE_BYTES> { fn new( _: u32, |
