#[repr(C)]
#[derive(Debug)]
///Register block
pub struct RegisterBlock {
bcr1: BCR1,
btr: (),
_reserved2: [u8; 0x04],
bcr: (),
_reserved3: [u8; 0x58],
pcr2: PCR2,
sr2: SR2,
pmem2: PMEM2,
patt2: PATT2,
_reserved7: [u8; 0x04],
eccr2: ECCR2,
_reserved8: [u8; 0x08],
pcr3: PCR3,
sr3: SR3,
pmem3: PMEM3,
patt3: PATT3,
_reserved12: [u8; 0x04],
eccr3: ECCR3,
_reserved13: [u8; 0x08],
pcr4: PCR4,
sr4: SR4,
pmem4: PMEM4,
patt4: PATT4,
pio4: PIO4,
_reserved18: [u8; 0x50],
bwtr: (),
}
impl RegisterBlock {
///0x00 - SRAM/NOR-Flash chip-select control register 1
#[inline(always)]
pub const fn bcr1(&self) -> &BCR1 {
&self.bcr1
}
///0x04..0x14 - SRAM/NOR-Flash chip-select timing register %s
///
///
`n` is the index of register in the array. `n == 0` corresponds to `BTR1` register.
#[inline(always)]
pub const fn btr(&self, n: usize) -> &BTR {
#[allow(clippy::no_effect)]
[(); 4][n];
unsafe {
&*core::ptr::from_ref(self)
.cast::()
.add(4)
.add(8 * n)
.cast()
}
}
///Iterator for array of:
///0x04..0x14 - SRAM/NOR-Flash chip-select timing register %s
#[inline(always)]
pub fn btr_iter(&self) -> impl Iterator- {
(0..4).map(move |n| unsafe {
&*core::ptr::from_ref(self)
.cast::()
.add(4)
.add(8 * n)
.cast()
})
}
///0x04 - SRAM/NOR-Flash chip-select timing register 1
#[inline(always)]
pub const fn btr1(&self) -> &BTR {
self.btr(0)
}
///0x0c - SRAM/NOR-Flash chip-select timing register 2
#[inline(always)]
pub const fn btr2(&self) -> &BTR {
self.btr(1)
}
///0x14 - SRAM/NOR-Flash chip-select timing register 3
#[inline(always)]
pub const fn btr3(&self) -> &BTR {
self.btr(2)
}
///0x1c - SRAM/NOR-Flash chip-select timing register 4
#[inline(always)]
pub const fn btr4(&self) -> &BTR {
self.btr(3)
}
///0x08..0x14 - SRAM/NOR-Flash chip-select control register %s
///
///
`n` is the index of register in the array. `n == 0` corresponds to `BCR2` register.
#[inline(always)]
pub const fn bcr(&self, n: usize) -> &BCR {
#[allow(clippy::no_effect)]
[(); 3][n];
unsafe {
&*core::ptr::from_ref(self)
.cast::()
.add(8)
.add(8 * n)
.cast()
}
}
///Iterator for array of:
///0x08..0x14 - SRAM/NOR-Flash chip-select control register %s
#[inline(always)]
pub fn bcr_iter(&self) -> impl Iterator- {
(0..3).map(move |n| unsafe {
&*core::ptr::from_ref(self)
.cast::()
.add(8)
.add(8 * n)
.cast()
})
}
///0x08 - SRAM/NOR-Flash chip-select control register 2
#[inline(always)]
pub const fn bcr2(&self) -> &BCR {
self.bcr(0)
}
///0x10 - SRAM/NOR-Flash chip-select control register 3
#[inline(always)]
pub const fn bcr3(&self) -> &BCR {
self.bcr(1)
}
///0x18 - SRAM/NOR-Flash chip-select control register 4
#[inline(always)]
pub const fn bcr4(&self) -> &BCR {
self.bcr(2)
}
///0x60 - PC Card/NAND Flash control register 2
#[inline(always)]
pub const fn pcr2(&self) -> &PCR2 {
&self.pcr2
}
///0x64 - FIFO status and interrupt register 2
#[inline(always)]
pub const fn sr2(&self) -> &SR2 {
&self.sr2
}
///0x68 - Common memory space timing register 2
#[inline(always)]
pub const fn pmem2(&self) -> &PMEM2 {
&self.pmem2
}
///0x6c - Attribute memory space timing register 2
#[inline(always)]
pub const fn patt2(&self) -> &PATT2 {
&self.patt2
}
///0x74 - ECC result register 2
#[inline(always)]
pub const fn eccr2(&self) -> &ECCR2 {
&self.eccr2
}
///0x80 - PC Card/NAND Flash control register 3
#[inline(always)]
pub const fn pcr3(&self) -> &PCR3 {
&self.pcr3
}
///0x84 - FIFO status and interrupt register 3
#[inline(always)]
pub const fn sr3(&self) -> &SR3 {
&self.sr3
}
///0x88 - Common memory space timing register 3
#[inline(always)]
pub const fn pmem3(&self) -> &PMEM3 {
&self.pmem3
}
///0x8c - Attribute memory space timing register 3
#[inline(always)]
pub const fn patt3(&self) -> &PATT3 {
&self.patt3
}
///0x94 - ECC result register 3
#[inline(always)]
pub const fn eccr3(&self) -> &ECCR3 {
&self.eccr3
}
///0xa0 - PC Card/NAND Flash control register 4
#[inline(always)]
pub const fn pcr4(&self) -> &PCR4 {
&self.pcr4
}
///0xa4 - FIFO status and interrupt register 4
#[inline(always)]
pub const fn sr4(&self) -> &SR4 {
&self.sr4
}
///0xa8 - Common memory space timing register 4
#[inline(always)]
pub const fn pmem4(&self) -> &PMEM4 {
&self.pmem4
}
///0xac - Attribute memory space timing register 4
#[inline(always)]
pub const fn patt4(&self) -> &PATT4 {
&self.patt4
}
///0xb0 - I/O space timing register 4
#[inline(always)]
pub const fn pio4(&self) -> &PIO4 {
&self.pio4
}
///0x104..0x114 - SRAM/NOR-Flash write timing registers %s
///
///
`n` is the index of register in the array. `n == 0` corresponds to `BWTR1` register.
#[inline(always)]
pub const fn bwtr(&self, n: usize) -> &BWTR {
#[allow(clippy::no_effect)]
[(); 4][n];
unsafe {
&*core::ptr::from_ref(self)
.cast::()
.add(260)
.add(8 * n)
.cast()
}
}
///Iterator for array of:
///0x104..0x114 - SRAM/NOR-Flash write timing registers %s
#[inline(always)]
pub fn bwtr_iter(&self) -> impl Iterator- {
(0..4).map(move |n| unsafe {
&*core::ptr::from_ref(self)
.cast::()
.add(260)
.add(8 * n)
.cast()
})
}
///0x104 - SRAM/NOR-Flash write timing registers 1
#[inline(always)]
pub const fn bwtr1(&self) -> &BWTR {
self.bwtr(0)
}
///0x10c - SRAM/NOR-Flash write timing registers 2
#[inline(always)]
pub const fn bwtr2(&self) -> &BWTR {
self.bwtr(1)
}
///0x114 - SRAM/NOR-Flash write timing registers 3
#[inline(always)]
pub const fn bwtr3(&self) -> &BWTR {
self.bwtr(2)
}
///0x11c - SRAM/NOR-Flash write timing registers 4
#[inline(always)]
pub const fn bwtr4(&self) -> &BWTR {
self.bwtr(3)
}
}
/**BCR1 (rw) register accessor: SRAM/NOR-Flash chip-select control register 1
You can [`read`](crate::Reg::read) this register and get [`bcr1::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`bcr1::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:BCR1)
For information about available fields see [`mod@bcr1`]
module*/
pub type BCR1 = crate::Reg;
///SRAM/NOR-Flash chip-select control register 1
pub mod bcr1;
/**BTR (rw) register accessor: SRAM/NOR-Flash chip-select timing register %s
You can [`read`](crate::Reg::read) this register and get [`btr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`btr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:BTR[1])
For information about available fields see [`mod@btr`]
module*/
pub type BTR = crate::Reg;
///SRAM/NOR-Flash chip-select timing register %s
pub mod btr;
/**BCR (rw) register accessor: SRAM/NOR-Flash chip-select control register %s
You can [`read`](crate::Reg::read) this register and get [`bcr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`bcr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:BCR[2])
For information about available fields see [`mod@bcr`]
module*/
pub type BCR = crate::Reg;
///SRAM/NOR-Flash chip-select control register %s
pub mod bcr;
/**PCR2 (rw) register accessor: PC Card/NAND Flash control register 2
You can [`read`](crate::Reg::read) this register and get [`pcr2::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`pcr2::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:PCR2)
For information about available fields see [`mod@pcr2`]
module*/
pub type PCR2 = crate::Reg;
///PC Card/NAND Flash control register 2
pub mod pcr2;
/**SR2 (rw) register accessor: FIFO status and interrupt register 2
You can [`read`](crate::Reg::read) this register and get [`sr2::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`sr2::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:SR2)
For information about available fields see [`mod@sr2`]
module*/
pub type SR2 = crate::Reg;
///FIFO status and interrupt register 2
pub mod sr2;
/**PMEM2 (rw) register accessor: Common memory space timing register 2
You can [`read`](crate::Reg::read) this register and get [`pmem2::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`pmem2::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:PMEM2)
For information about available fields see [`mod@pmem2`]
module*/
pub type PMEM2 = crate::Reg;
///Common memory space timing register 2
pub mod pmem2;
/**PATT2 (rw) register accessor: Attribute memory space timing register 2
You can [`read`](crate::Reg::read) this register and get [`patt2::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`patt2::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:PATT2)
For information about available fields see [`mod@patt2`]
module*/
pub type PATT2 = crate::Reg;
///Attribute memory space timing register 2
pub mod patt2;
/**ECCR2 (r) register accessor: ECC result register 2
You can [`read`](crate::Reg::read) this register and get [`eccr2::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:ECCR2)
For information about available fields see [`mod@eccr2`]
module*/
pub type ECCR2 = crate::Reg;
///ECC result register 2
pub mod eccr2;
/**PCR3 (rw) register accessor: PC Card/NAND Flash control register 3
You can [`read`](crate::Reg::read) this register and get [`pcr3::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`pcr3::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:PCR3)
For information about available fields see [`mod@pcr3`]
module*/
pub type PCR3 = crate::Reg;
///PC Card/NAND Flash control register 3
pub mod pcr3;
/**SR3 (rw) register accessor: FIFO status and interrupt register 3
You can [`read`](crate::Reg::read) this register and get [`sr3::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`sr3::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:SR3)
For information about available fields see [`mod@sr3`]
module*/
pub type SR3 = crate::Reg;
///FIFO status and interrupt register 3
pub mod sr3;
/**PMEM3 (rw) register accessor: Common memory space timing register 3
You can [`read`](crate::Reg::read) this register and get [`pmem3::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`pmem3::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:PMEM3)
For information about available fields see [`mod@pmem3`]
module*/
pub type PMEM3 = crate::Reg;
///Common memory space timing register 3
pub mod pmem3;
/**PATT3 (rw) register accessor: Attribute memory space timing register 3
You can [`read`](crate::Reg::read) this register and get [`patt3::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`patt3::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:PATT3)
For information about available fields see [`mod@patt3`]
module*/
pub type PATT3 = crate::Reg;
///Attribute memory space timing register 3
pub mod patt3;
/**ECCR3 (r) register accessor: ECC result register 3
You can [`read`](crate::Reg::read) this register and get [`eccr3::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:ECCR3)
For information about available fields see [`mod@eccr3`]
module*/
pub type ECCR3 = crate::Reg;
///ECC result register 3
pub mod eccr3;
/**PCR4 (rw) register accessor: PC Card/NAND Flash control register 4
You can [`read`](crate::Reg::read) this register and get [`pcr4::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`pcr4::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:PCR4)
For information about available fields see [`mod@pcr4`]
module*/
pub type PCR4 = crate::Reg;
///PC Card/NAND Flash control register 4
pub mod pcr4;
/**SR4 (rw) register accessor: FIFO status and interrupt register 4
You can [`read`](crate::Reg::read) this register and get [`sr4::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`sr4::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:SR4)
For information about available fields see [`mod@sr4`]
module*/
pub type SR4 = crate::Reg;
///FIFO status and interrupt register 4
pub mod sr4;
/**PMEM4 (rw) register accessor: Common memory space timing register 4
You can [`read`](crate::Reg::read) this register and get [`pmem4::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`pmem4::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:PMEM4)
For information about available fields see [`mod@pmem4`]
module*/
pub type PMEM4 = crate::Reg;
///Common memory space timing register 4
pub mod pmem4;
/**PATT4 (rw) register accessor: Attribute memory space timing register 4
You can [`read`](crate::Reg::read) this register and get [`patt4::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`patt4::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:PATT4)
For information about available fields see [`mod@patt4`]
module*/
pub type PATT4 = crate::Reg;
///Attribute memory space timing register 4
pub mod patt4;
/**PIO4 (rw) register accessor: I/O space timing register 4
You can [`read`](crate::Reg::read) this register and get [`pio4::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`pio4::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:PIO4)
For information about available fields see [`mod@pio4`]
module*/
pub type PIO4 = crate::Reg;
///I/O space timing register 4
pub mod pio4;
/**BWTR (rw) register accessor: SRAM/NOR-Flash write timing registers %s
You can [`read`](crate::Reg::read) this register and get [`bwtr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`bwtr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F103.html#FSMC:BWTR[1])
For information about available fields see [`mod@bwtr`]
module*/
pub type BWTR = crate::Reg;
///SRAM/NOR-Flash write timing registers %s
pub mod bwtr;