esp32h2/
hp_apm.rs

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; 16],
7    func_ctrl: FUNC_CTRL,
8    m: [M; 4],
9    int_en: INT_EN,
10    clock_gate: CLOCK_GATE,
11    _reserved6: [u8; 0x06ec],
12    date: DATE,
13}
14impl RegisterBlock {
15    #[doc = "0x00 - Region filter enable register"]
16    #[inline(always)]
17    pub const fn region_filter_en(&self) -> &REGION_FILTER_EN {
18        &self.region_filter_en
19    }
20    #[doc = "0x04..0xc4 - Cluster REGION%s, containing REGION*_ADDR_START, REGION*_ADDR_END, REGION*_PMS_ATTR"]
21    #[inline(always)]
22    pub const fn region(&self, n: usize) -> &REGION {
23        &self.region[n]
24    }
25    #[doc = "Iterator for array of:"]
26    #[doc = "0x04..0xc4 - Cluster REGION%s, containing REGION*_ADDR_START, REGION*_ADDR_END, REGION*_PMS_ATTR"]
27    #[inline(always)]
28    pub fn region_iter(&self) -> impl Iterator<Item = &REGION> {
29        self.region.iter()
30    }
31    #[doc = "0xc4 - PMS function control register"]
32    #[inline(always)]
33    pub const fn func_ctrl(&self) -> &FUNC_CTRL {
34        &self.func_ctrl
35    }
36    #[doc = "0xc8..0x108 - Cluster M%s, containing M?_STATUS, M?_STATUS_CLR, M?_EXCEPTION_INFO0, M?_EXCEPTION_INFO1"]
37    #[inline(always)]
38    pub const fn m(&self, n: usize) -> &M {
39        &self.m[n]
40    }
41    #[doc = "Iterator for array of:"]
42    #[doc = "0xc8..0x108 - Cluster M%s, containing M?_STATUS, M?_STATUS_CLR, M?_EXCEPTION_INFO0, M?_EXCEPTION_INFO1"]
43    #[inline(always)]
44    pub fn m_iter(&self) -> impl Iterator<Item = &M> {
45        self.m.iter()
46    }
47    #[doc = "0x108 - APM interrupt enable register"]
48    #[inline(always)]
49    pub const fn int_en(&self) -> &INT_EN {
50        &self.int_en
51    }
52    #[doc = "0x10c - clock gating register"]
53    #[inline(always)]
54    pub const fn clock_gate(&self) -> &CLOCK_GATE {
55        &self.clock_gate
56    }
57    #[doc = "0x7fc - Version register"]
58    #[inline(always)]
59    pub const fn date(&self) -> &DATE {
60        &self.date
61    }
62}
63#[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"]
64pub type REGION_FILTER_EN = crate::Reg<region_filter_en::REGION_FILTER_EN_SPEC>;
65#[doc = "Region filter enable register"]
66pub mod region_filter_en;
67#[doc = "Cluster REGION%s, containing REGION*_ADDR_START, REGION*_ADDR_END, REGION*_PMS_ATTR"]
68pub use self::region::REGION;
69#[doc = r"Cluster"]
70#[doc = "Cluster REGION%s, containing REGION*_ADDR_START, REGION*_ADDR_END, REGION*_PMS_ATTR"]
71pub mod region;
72#[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"]
73pub type FUNC_CTRL = crate::Reg<func_ctrl::FUNC_CTRL_SPEC>;
74#[doc = "PMS function control register"]
75pub mod func_ctrl;
76#[doc = "Cluster M%s, containing M?_STATUS, M?_STATUS_CLR, M?_EXCEPTION_INFO0, M?_EXCEPTION_INFO1"]
77pub use self::m::M;
78#[doc = r"Cluster"]
79#[doc = "Cluster M%s, containing M?_STATUS, M?_STATUS_CLR, M?_EXCEPTION_INFO0, M?_EXCEPTION_INFO1"]
80pub mod m;
81#[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"]
82pub type INT_EN = crate::Reg<int_en::INT_EN_SPEC>;
83#[doc = "APM interrupt enable register"]
84pub mod int_en;
85#[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"]
86pub type CLOCK_GATE = crate::Reg<clock_gate::CLOCK_GATE_SPEC>;
87#[doc = "clock gating register"]
88pub mod clock_gate;
89#[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"]
90pub type DATE = crate::Reg<date::DATE_SPEC>;
91#[doc = "Version register"]
92pub mod date;