1#[repr(C)]
2#[cfg_attr(feature = "impl-register-debug", derive(Debug))]
3#[doc = "Register block"]
4pub struct RegisterBlock {
5 _reserved0: [u8; 0x04],
6 conf: CONF,
7 clk: CLK,
8 int_raw: INT_RAW,
9 int_st: INT_ST,
10 int_ena: INT_ENA,
11 int_clr: INT_CLR,
12 start: START,
13 state: STATE,
14 result: RESULT,
15 _reserved9: [u8; 0xd4],
16 date: DATE,
17 _reserved10: [u8; 0x0100],
18 sha_mode: SHA_MODE,
19 _reserved11: [u8; 0x0c],
20 sha_start: SHA_START,
21 sha_continue: SHA_CONTINUE,
22 sha_busy: SHA_BUSY,
23 _reserved14: [u8; 0x64],
24 message_mem: [MESSAGE_MEM; 8],
25 _reserved15: [u8; 0x0760],
26 r_mem: [R_MEM; 8],
27 s_mem: [S_MEM; 8],
28 z_mem: [Z_MEM; 8],
29 qax_mem: [QAX_MEM; 8],
30 qay_mem: [QAY_MEM; 8],
31}
32impl RegisterBlock {
33 #[doc = "0x04 - ECDSA configure register"]
34 #[inline(always)]
35 pub const fn conf(&self) -> &CONF {
36 &self.conf
37 }
38 #[doc = "0x08 - ECDSA clock gate register"]
39 #[inline(always)]
40 pub const fn clk(&self) -> &CLK {
41 &self.clk
42 }
43 #[doc = "0x0c - ECDSA interrupt raw register, valid in level."]
44 #[inline(always)]
45 pub const fn int_raw(&self) -> &INT_RAW {
46 &self.int_raw
47 }
48 #[doc = "0x10 - ECDSA interrupt status register."]
49 #[inline(always)]
50 pub const fn int_st(&self) -> &INT_ST {
51 &self.int_st
52 }
53 #[doc = "0x14 - ECDSA interrupt enable register."]
54 #[inline(always)]
55 pub const fn int_ena(&self) -> &INT_ENA {
56 &self.int_ena
57 }
58 #[doc = "0x18 - ECDSA interrupt clear register."]
59 #[inline(always)]
60 pub const fn int_clr(&self) -> &INT_CLR {
61 &self.int_clr
62 }
63 #[doc = "0x1c - ECDSA start register"]
64 #[inline(always)]
65 pub const fn start(&self) -> &START {
66 &self.start
67 }
68 #[doc = "0x20 - ECDSA status register"]
69 #[inline(always)]
70 pub const fn state(&self) -> &STATE {
71 &self.state
72 }
73 #[doc = "0x24 - ECDSA result register"]
74 #[inline(always)]
75 pub const fn result(&self) -> &RESULT {
76 &self.result
77 }
78 #[doc = "0xfc - Version control register"]
79 #[inline(always)]
80 pub const fn date(&self) -> &DATE {
81 &self.date
82 }
83 #[doc = "0x200 - ECDSA control SHA register"]
84 #[inline(always)]
85 pub const fn sha_mode(&self) -> &SHA_MODE {
86 &self.sha_mode
87 }
88 #[doc = "0x210 - ECDSA control SHA register"]
89 #[inline(always)]
90 pub const fn sha_start(&self) -> &SHA_START {
91 &self.sha_start
92 }
93 #[doc = "0x214 - ECDSA control SHA register"]
94 #[inline(always)]
95 pub const fn sha_continue(&self) -> &SHA_CONTINUE {
96 &self.sha_continue
97 }
98 #[doc = "0x218 - ECDSA status register"]
99 #[inline(always)]
100 pub const fn sha_busy(&self) -> &SHA_BUSY {
101 &self.sha_busy
102 }
103 #[doc = "0x280..0x2a0 - The memory that stores message."]
104 #[inline(always)]
105 pub const fn message_mem(&self, n: usize) -> &MESSAGE_MEM {
106 &self.message_mem[n]
107 }
108 #[doc = "Iterator for array of:"]
109 #[doc = "0x280..0x2a0 - The memory that stores message."]
110 #[inline(always)]
111 pub fn message_mem_iter(&self) -> impl Iterator<Item = &MESSAGE_MEM> {
112 self.message_mem.iter()
113 }
114 #[doc = "0xa00..0xa20 - The memory that stores r."]
115 #[inline(always)]
116 pub const fn r_mem(&self, n: usize) -> &R_MEM {
117 &self.r_mem[n]
118 }
119 #[doc = "Iterator for array of:"]
120 #[doc = "0xa00..0xa20 - The memory that stores r."]
121 #[inline(always)]
122 pub fn r_mem_iter(&self) -> impl Iterator<Item = &R_MEM> {
123 self.r_mem.iter()
124 }
125 #[doc = "0xa20..0xa40 - The memory that stores s."]
126 #[inline(always)]
127 pub const fn s_mem(&self, n: usize) -> &S_MEM {
128 &self.s_mem[n]
129 }
130 #[doc = "Iterator for array of:"]
131 #[doc = "0xa20..0xa40 - The memory that stores s."]
132 #[inline(always)]
133 pub fn s_mem_iter(&self) -> impl Iterator<Item = &S_MEM> {
134 self.s_mem.iter()
135 }
136 #[doc = "0xa40..0xa60 - The memory that stores software written z."]
137 #[inline(always)]
138 pub const fn z_mem(&self, n: usize) -> &Z_MEM {
139 &self.z_mem[n]
140 }
141 #[doc = "Iterator for array of:"]
142 #[doc = "0xa40..0xa60 - The memory that stores software written z."]
143 #[inline(always)]
144 pub fn z_mem_iter(&self) -> impl Iterator<Item = &Z_MEM> {
145 self.z_mem.iter()
146 }
147 #[doc = "0xa60..0xa80 - The memory that stores x coordinates of QA or software written k."]
148 #[inline(always)]
149 pub const fn qax_mem(&self, n: usize) -> &QAX_MEM {
150 &self.qax_mem[n]
151 }
152 #[doc = "Iterator for array of:"]
153 #[doc = "0xa60..0xa80 - The memory that stores x coordinates of QA or software written k."]
154 #[inline(always)]
155 pub fn qax_mem_iter(&self) -> impl Iterator<Item = &QAX_MEM> {
156 self.qax_mem.iter()
157 }
158 #[doc = "0xa80..0xaa0 - The memory that stores y coordinates of QA."]
159 #[inline(always)]
160 pub const fn qay_mem(&self, n: usize) -> &QAY_MEM {
161 &self.qay_mem[n]
162 }
163 #[doc = "Iterator for array of:"]
164 #[doc = "0xa80..0xaa0 - The memory that stores y coordinates of QA."]
165 #[inline(always)]
166 pub fn qay_mem_iter(&self) -> impl Iterator<Item = &QAY_MEM> {
167 self.qay_mem.iter()
168 }
169}
170#[doc = "CONF (rw) register accessor: ECDSA configure register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`conf::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`conf::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@conf`] module"]
171pub type CONF = crate::Reg<conf::CONF_SPEC>;
172#[doc = "ECDSA configure register"]
173pub mod conf;
174#[doc = "CLK (rw) register accessor: ECDSA clock gate register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`clk::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`clk::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@clk`] module"]
175pub type CLK = crate::Reg<clk::CLK_SPEC>;
176#[doc = "ECDSA clock gate register"]
177pub mod clk;
178#[doc = "INT_RAW (r) register accessor: ECDSA interrupt raw register, valid in level.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`int_raw::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@int_raw`] module"]
179pub type INT_RAW = crate::Reg<int_raw::INT_RAW_SPEC>;
180#[doc = "ECDSA interrupt raw register, valid in level."]
181pub mod int_raw;
182#[doc = "INT_ST (r) register accessor: ECDSA interrupt status register.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`int_st::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@int_st`] module"]
183pub type INT_ST = crate::Reg<int_st::INT_ST_SPEC>;
184#[doc = "ECDSA interrupt status register."]
185pub mod int_st;
186#[doc = "INT_ENA (rw) register accessor: ECDSA interrupt enable register.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`int_ena::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`int_ena::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@int_ena`] module"]
187pub type INT_ENA = crate::Reg<int_ena::INT_ENA_SPEC>;
188#[doc = "ECDSA interrupt enable register."]
189pub mod int_ena;
190#[doc = "INT_CLR (w) register accessor: ECDSA interrupt clear register.\n\nYou can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`int_clr::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@int_clr`] module"]
191pub type INT_CLR = crate::Reg<int_clr::INT_CLR_SPEC>;
192#[doc = "ECDSA interrupt clear register."]
193pub mod int_clr;
194#[doc = "START (w) register accessor: ECDSA start register\n\nYou can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`start::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@start`] module"]
195pub type START = crate::Reg<start::START_SPEC>;
196#[doc = "ECDSA start register"]
197pub mod start;
198#[doc = "STATE (r) register accessor: ECDSA status register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`state::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@state`] module"]
199pub type STATE = crate::Reg<state::STATE_SPEC>;
200#[doc = "ECDSA status register"]
201pub mod state;
202#[doc = "RESULT (r) register accessor: ECDSA result register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`result::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@result`] module"]
203pub type RESULT = crate::Reg<result::RESULT_SPEC>;
204#[doc = "ECDSA result register"]
205pub mod result;
206#[doc = "DATE (rw) register accessor: Version control register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`date::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`date::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@date`] module"]
207pub type DATE = crate::Reg<date::DATE_SPEC>;
208#[doc = "Version control register"]
209pub mod date;
210#[doc = "SHA_MODE (rw) register accessor: ECDSA control SHA register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`sha_mode::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`sha_mode::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@sha_mode`] module"]
211pub type SHA_MODE = crate::Reg<sha_mode::SHA_MODE_SPEC>;
212#[doc = "ECDSA control SHA register"]
213pub mod sha_mode;
214#[doc = "SHA_START (w) register accessor: ECDSA control SHA register\n\nYou can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`sha_start::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@sha_start`] module"]
215pub type SHA_START = crate::Reg<sha_start::SHA_START_SPEC>;
216#[doc = "ECDSA control SHA register"]
217pub mod sha_start;
218#[doc = "SHA_CONTINUE (w) register accessor: ECDSA control SHA register\n\nYou can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`sha_continue::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@sha_continue`] module"]
219pub type SHA_CONTINUE = crate::Reg<sha_continue::SHA_CONTINUE_SPEC>;
220#[doc = "ECDSA control SHA register"]
221pub mod sha_continue;
222#[doc = "SHA_BUSY (r) register accessor: ECDSA status register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`sha_busy::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@sha_busy`] module"]
223pub type SHA_BUSY = crate::Reg<sha_busy::SHA_BUSY_SPEC>;
224#[doc = "ECDSA status register"]
225pub mod sha_busy;
226#[doc = "MESSAGE_MEM (rw) register accessor: The memory that stores message.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`message_mem::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`message_mem::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@message_mem`] module"]
227pub type MESSAGE_MEM = crate::Reg<message_mem::MESSAGE_MEM_SPEC>;
228#[doc = "The memory that stores message."]
229pub mod message_mem;
230#[doc = "R_MEM (rw) register accessor: The memory that stores r.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`r_mem::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`r_mem::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@r_mem`] module"]
231pub type R_MEM = crate::Reg<r_mem::R_MEM_SPEC>;
232#[doc = "The memory that stores r."]
233pub mod r_mem;
234#[doc = "S_MEM (rw) register accessor: The memory that stores s.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`s_mem::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`s_mem::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@s_mem`] module"]
235pub type S_MEM = crate::Reg<s_mem::S_MEM_SPEC>;
236#[doc = "The memory that stores s."]
237pub mod s_mem;
238#[doc = "Z_MEM (rw) register accessor: The memory that stores software written z.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`z_mem::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`z_mem::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@z_mem`] module"]
239pub type Z_MEM = crate::Reg<z_mem::Z_MEM_SPEC>;
240#[doc = "The memory that stores software written z."]
241pub mod z_mem;
242#[doc = "QAX_MEM (rw) register accessor: The memory that stores x coordinates of QA or software written k.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`qax_mem::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`qax_mem::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@qax_mem`] module"]
243pub type QAX_MEM = crate::Reg<qax_mem::QAX_MEM_SPEC>;
244#[doc = "The memory that stores x coordinates of QA or software written k."]
245pub mod qax_mem;
246#[doc = "QAY_MEM (rw) register accessor: The memory that stores y coordinates of QA.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`qay_mem::R`]. You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`qay_mem::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@qay_mem`] module"]
247pub type QAY_MEM = crate::Reg<qay_mem::QAY_MEM_SPEC>;
248#[doc = "The memory that stores y coordinates of QA."]
249pub mod qay_mem;