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
///Register `AHB3RSTR` reader
pub type R = crate::R<AHB3RSTRrs>;
///Register `AHB3RSTR` writer
pub type W = crate::W<AHB3RSTRrs>;
/**random number generator block reset Set and reset by software.
Value on reset: 0*/
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum RNGRST {
///1: Reset the selected module
Reset = 1,
}
impl From<RNGRST> for bool {
#[inline(always)]
fn from(variant: RNGRST) -> Self {
variant as u8 != 0
}
}
///Field `RNGRST` reader - random number generator block reset Set and reset by software.
pub type RNGRST_R = crate::BitReader<RNGRST>;
impl RNGRST_R {
///Get enumerated values variant
#[inline(always)]
pub const fn variant(&self) -> Option<RNGRST> {
match self.bits {
true => Some(RNGRST::Reset),
_ => None,
}
}
///Reset the selected module
#[inline(always)]
pub fn is_reset(&self) -> bool {
*self == RNGRST::Reset
}
}
///Field `RNGRST` writer - random number generator block reset Set and reset by software.
pub type RNGRST_W<'a, REG> = crate::BitWriter<'a, REG, RNGRST>;
impl<'a, REG> RNGRST_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
///Reset the selected module
#[inline(always)]
pub fn reset(self) -> &'a mut crate::W<REG> {
self.variant(RNGRST::Reset)
}
}
///Field `HASHRST` reader - HASH block reset Set and reset by software.
pub use RNGRST_R as HASHRST_R;
///Field `CRYPRST` reader - CRYP block reset Set and reset by software.
pub use RNGRST_R as CRYPRST_R;
///Field `SAESRST` reader - SAES block reset Set and reset by software.
pub use RNGRST_R as SAESRST_R;
///Field `PKARST` reader - PKA block reset Set and reset by software.
pub use RNGRST_R as PKARST_R;
///Field `HASHRST` writer - HASH block reset Set and reset by software.
pub use RNGRST_W as HASHRST_W;
///Field `CRYPRST` writer - CRYP block reset Set and reset by software.
pub use RNGRST_W as CRYPRST_W;
///Field `SAESRST` writer - SAES block reset Set and reset by software.
pub use RNGRST_W as SAESRST_W;
///Field `PKARST` writer - PKA block reset Set and reset by software.
pub use RNGRST_W as PKARST_W;
impl R {
///Bit 0 - random number generator block reset Set and reset by software.
#[inline(always)]
pub fn rngrst(&self) -> RNGRST_R {
RNGRST_R::new((self.bits & 1) != 0)
}
///Bit 1 - HASH block reset Set and reset by software.
#[inline(always)]
pub fn hashrst(&self) -> HASHRST_R {
HASHRST_R::new(((self.bits >> 1) & 1) != 0)
}
///Bit 2 - CRYP block reset Set and reset by software.
#[inline(always)]
pub fn cryprst(&self) -> CRYPRST_R {
CRYPRST_R::new(((self.bits >> 2) & 1) != 0)
}
///Bit 4 - SAES block reset Set and reset by software.
#[inline(always)]
pub fn saesrst(&self) -> SAESRST_R {
SAESRST_R::new(((self.bits >> 4) & 1) != 0)
}
///Bit 6 - PKA block reset Set and reset by software.
#[inline(always)]
pub fn pkarst(&self) -> PKARST_R {
PKARST_R::new(((self.bits >> 6) & 1) != 0)
}
}
impl core::fmt::Debug for R {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("AHB3RSTR")
.field("rngrst", &self.rngrst())
.field("hashrst", &self.hashrst())
.field("cryprst", &self.cryprst())
.field("saesrst", &self.saesrst())
.field("pkarst", &self.pkarst())
.finish()
}
}
impl W {
///Bit 0 - random number generator block reset Set and reset by software.
#[inline(always)]
pub fn rngrst(&mut self) -> RNGRST_W<AHB3RSTRrs> {
RNGRST_W::new(self, 0)
}
///Bit 1 - HASH block reset Set and reset by software.
#[inline(always)]
pub fn hashrst(&mut self) -> HASHRST_W<AHB3RSTRrs> {
HASHRST_W::new(self, 1)
}
///Bit 2 - CRYP block reset Set and reset by software.
#[inline(always)]
pub fn cryprst(&mut self) -> CRYPRST_W<AHB3RSTRrs> {
CRYPRST_W::new(self, 2)
}
///Bit 4 - SAES block reset Set and reset by software.
#[inline(always)]
pub fn saesrst(&mut self) -> SAESRST_W<AHB3RSTRrs> {
SAESRST_W::new(self, 4)
}
///Bit 6 - PKA block reset Set and reset by software.
#[inline(always)]
pub fn pkarst(&mut self) -> PKARST_W<AHB3RSTRrs> {
PKARST_W::new(self, 6)
}
}
/**RCC AHB3 peripheral reset register
You can [`read`](crate::Reg::read) this register and get [`ahb3rstr::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ahb3rstr::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).*/
pub struct AHB3RSTRrs;
impl crate::RegisterSpec for AHB3RSTRrs {
type Ux = u32;
}
///`read()` method returns [`ahb3rstr::R`](R) reader structure
impl crate::Readable for AHB3RSTRrs {}
///`write(|w| ..)` method takes [`ahb3rstr::W`](W) writer structure
impl crate::Writable for AHB3RSTRrs {
type Safety = crate::Unsafe;
}
///`reset()` method sets AHB3RSTR to value 0
impl crate::Resettable for AHB3RSTRrs {}