1#[repr(C)]
2#[cfg_attr(feature = "impl-register-debug", derive(Debug))]
3#[doc = "Register block"]
4pub struct RegisterBlock {
5 region_filter_en: REGION_FILTER_EN,
6 region: [REGION; 4],
7 _reserved2: [u8; 0x90],
8 func_ctrl: FUNC_CTRL,
9 m: [M; 2],
10 int_en: INT_EN,
11 clock_gate: CLOCK_GATE,
12 _reserved6: [u8; 0x0c],
13 date: DATE,
14}
15impl RegisterBlock {
16 #[doc = "0x00 - Region filter enable register"]
17 #[inline(always)]
18 pub const fn region_filter_en(&self) -> ®ION_FILTER_EN {
19 &self.region_filter_en
20 }
21 #[doc = "0x04..0x34 - Cluster REGION%s, containing REGION*_ADDR_START, REGION*_ADDR_END, REGION*_PMS_ATTR"]
22 #[inline(always)]
23 pub const fn region(&self, n: usize) -> ®ION {
24 &self.region[n]
25 }
26 #[doc = "Iterator for array of:"]
27 #[doc = "0x04..0x34 - Cluster REGION%s, containing REGION*_ADDR_START, REGION*_ADDR_END, REGION*_PMS_ATTR"]
28 #[inline(always)]
29 pub fn region_iter(&self) -> impl Iterator<Item = ®ION> {
30 self.region.iter()
31 }
32 #[doc = "0xc4 - PMS function control register"]
33 #[inline(always)]
34 pub const fn func_ctrl(&self) -> &FUNC_CTRL {
35 &self.func_ctrl
36 }
37 #[doc = "0xc8..0xe8 - Cluster M%s, containing M?_STATUS, M?_STATUS_CLR, M?_EXCEPTION_INFO0, M?_EXCEPTION_INFO1"]
38 #[inline(always)]
39 pub const fn m(&self, n: usize) -> &M {
40 &self.m[n]
41 }
42 #[doc = "Iterator for array of:"]
43 #[doc = "0xc8..0xe8 - Cluster M%s, containing M?_STATUS, M?_STATUS_CLR, M?_EXCEPTION_INFO0, M?_EXCEPTION_INFO1"]
44 #[inline(always)]
45 pub fn m_iter(&self) -> impl Iterator<Item = &M> {
46 self.m.iter()
47 }
48 #[doc = "0xe8 - APM interrupt enable register"]
49 #[inline(always)]
50 pub const fn int_en(&self) -> &INT_EN {
51 &self.int_en
52 }
53 #[doc = "0xec - clock gating register"]
54 #[inline(always)]
55 pub const fn clock_gate(&self) -> &CLOCK_GATE {
56 &self.clock_gate
57 }
58 #[doc = "0xfc - Version register"]
59 #[inline(always)]
60 pub const fn date(&self) -> &DATE {
61 &self.date
62 }
63}
64#[doc = "REGION_FILTER_EN (rw) register accessor: Region filter enable register\n\nYou can [`read`](crate::Reg::read) this register and get [`region_filter_en::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`region_filter_en::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@region_filter_en`] module"]
65pub type REGION_FILTER_EN = crate::Reg<region_filter_en::REGION_FILTER_EN_SPEC>;
66#[doc = "Region filter enable register"]
67pub mod region_filter_en;
68#[doc = "Cluster REGION%s, containing REGION*_ADDR_START, REGION*_ADDR_END, REGION*_PMS_ATTR"]
69pub use self::region::REGION;
70#[doc = r"Cluster"]
71#[doc = "Cluster REGION%s, containing REGION*_ADDR_START, REGION*_ADDR_END, REGION*_PMS_ATTR"]
72pub mod region;
73#[doc = "FUNC_CTRL (rw) register accessor: PMS function control register\n\nYou can [`read`](crate::Reg::read) this register and get [`func_ctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`func_ctrl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@func_ctrl`] module"]
74pub type FUNC_CTRL = crate::Reg<func_ctrl::FUNC_CTRL_SPEC>;
75#[doc = "PMS function control register"]
76pub mod func_ctrl;
77#[doc = "Cluster M%s, containing M?_STATUS, M?_STATUS_CLR, M?_EXCEPTION_INFO0, M?_EXCEPTION_INFO1"]
78pub use self::m::M;
79#[doc = r"Cluster"]
80#[doc = "Cluster M%s, containing M?_STATUS, M?_STATUS_CLR, M?_EXCEPTION_INFO0, M?_EXCEPTION_INFO1"]
81pub mod m;
82#[doc = "INT_EN (rw) register accessor: APM interrupt enable register\n\nYou can [`read`](crate::Reg::read) this register and get [`int_en::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`int_en::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@int_en`] module"]
83pub type INT_EN = crate::Reg<int_en::INT_EN_SPEC>;
84#[doc = "APM interrupt enable register"]
85pub mod int_en;
86#[doc = "CLOCK_GATE (rw) register accessor: clock gating register\n\nYou can [`read`](crate::Reg::read) this register and get [`clock_gate::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`clock_gate::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@clock_gate`] module"]
87pub type CLOCK_GATE = crate::Reg<clock_gate::CLOCK_GATE_SPEC>;
88#[doc = "clock gating register"]
89pub mod clock_gate;
90#[doc = "DATE (rw) register accessor: Version register\n\nYou can [`read`](crate::Reg::read) this register and get [`date::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`date::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@date`] module"]
91pub type DATE = crate::Reg<date::DATE_SPEC>;
92#[doc = "Version register"]
93pub mod date;