1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#[doc = "Register `CORE_1_IRAM0_PMS_MONITOR_2` reader"]
pub struct R(crate::R<CORE_1_IRAM0_PMS_MONITOR_2_SPEC>);
impl core::ops::Deref for R {
type Target = crate::R<CORE_1_IRAM0_PMS_MONITOR_2_SPEC>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl From<crate::R<CORE_1_IRAM0_PMS_MONITOR_2_SPEC>> for R {
#[inline(always)]
fn from(reader: crate::R<CORE_1_IRAM0_PMS_MONITOR_2_SPEC>) -> Self {
R(reader)
}
}
#[doc = "Field `CORE_1_IRAM0_PMS_MONITOR_VIOLATE_INTR` reader - recorded core1 iram0 pms monitor interrupt status."]
pub struct CORE_1_IRAM0_PMS_MONITOR_VIOLATE_INTR_R(crate::FieldReader<bool, bool>);
impl CORE_1_IRAM0_PMS_MONITOR_VIOLATE_INTR_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
CORE_1_IRAM0_PMS_MONITOR_VIOLATE_INTR_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for CORE_1_IRAM0_PMS_MONITOR_VIOLATE_INTR_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WR` reader - recorded core1 iram0 wr status, only if loadstore is 1 have meaning, 1(store), 0(load)."]
pub struct CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WR_R(crate::FieldReader<bool, bool>);
impl CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WR_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WR_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WR_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_LOADSTORE` reader - recorded core1 iram0 loadstore status, indicated the type of operation, 0(fetch), 1(load/store)."]
pub struct CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_LOADSTORE_R(crate::FieldReader<bool, bool>);
impl CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_LOADSTORE_R {
#[inline(always)]
pub(crate) fn new(bits: bool) -> Self {
CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_LOADSTORE_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_LOADSTORE_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WORLD` reader - recorded core1 iram0 world status, 0x01 means world0, 0x10 means world1."]
pub struct CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WORLD_R(crate::FieldReader<u8, u8>);
impl CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WORLD_R {
#[inline(always)]
pub(crate) fn new(bits: u8) -> Self {
CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WORLD_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WORLD_R {
type Target = crate::FieldReader<u8, u8>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_ADDR` reader - recorded core1 iram0 address \\[25:2\\]
status when core1 iram0 violated permission, the real address is 0x40000000+addr*4"]
pub struct CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_ADDR_R(crate::FieldReader<u32, u32>);
impl CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_ADDR_R {
#[inline(always)]
pub(crate) fn new(bits: u32) -> Self {
CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_ADDR_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_ADDR_R {
type Target = crate::FieldReader<u32, u32>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl R {
#[doc = "Bit 0 - recorded core1 iram0 pms monitor interrupt status."]
#[inline(always)]
pub fn core_1_iram0_pms_monitor_violate_intr(&self) -> CORE_1_IRAM0_PMS_MONITOR_VIOLATE_INTR_R {
CORE_1_IRAM0_PMS_MONITOR_VIOLATE_INTR_R::new((self.bits & 0x01) != 0)
}
#[doc = "Bit 1 - recorded core1 iram0 wr status, only if loadstore is 1 have meaning, 1(store), 0(load)."]
#[inline(always)]
pub fn core_1_iram0_pms_monitor_violate_status_wr(
&self,
) -> CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WR_R {
CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WR_R::new(((self.bits >> 1) & 0x01) != 0)
}
#[doc = "Bit 2 - recorded core1 iram0 loadstore status, indicated the type of operation, 0(fetch), 1(load/store)."]
#[inline(always)]
pub fn core_1_iram0_pms_monitor_violate_status_loadstore(
&self,
) -> CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_LOADSTORE_R {
CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_LOADSTORE_R::new(((self.bits >> 2) & 0x01) != 0)
}
#[doc = "Bits 3:4 - recorded core1 iram0 world status, 0x01 means world0, 0x10 means world1."]
#[inline(always)]
pub fn core_1_iram0_pms_monitor_violate_status_world(
&self,
) -> CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WORLD_R {
CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_WORLD_R::new(((self.bits >> 3) & 0x03) as u8)
}
#[doc = "Bits 5:28 - recorded core1 iram0 address \\[25:2\\]
status when core1 iram0 violated permission, the real address is 0x40000000+addr*4"]
#[inline(always)]
pub fn core_1_iram0_pms_monitor_violate_status_addr(
&self,
) -> CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_ADDR_R {
CORE_1_IRAM0_PMS_MONITOR_VIOLATE_STATUS_ADDR_R::new(((self.bits >> 5) & 0x00ff_ffff) as u32)
}
}
#[doc = "core1 iram0 permission monitor configuration register 2\n\nThis register you can [`read`]
(crate::generic::Reg::read). See [API]
(https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [core_1_iram0_pms_monitor_2]
(index.html) module"]
pub struct CORE_1_IRAM0_PMS_MONITOR_2_SPEC;
impl crate::RegisterSpec for CORE_1_IRAM0_PMS_MONITOR_2_SPEC {
type Ux = u32;
}
#[doc = "`read()` method returns [core_1_iram0_pms_monitor_2::R]
(R) reader structure"]
impl crate::Readable for CORE_1_IRAM0_PMS_MONITOR_2_SPEC {
type Reader = R;
}
#[doc = "`reset()` method sets CORE_1_IRAM0_PMS_MONITOR_2 to value 0"]
impl crate::Resettable for CORE_1_IRAM0_PMS_MONITOR_2_SPEC {
#[inline(always)]
fn reset_value() -> Self::Ux {
0
}
}