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
#[repr(C)]
#[derive(Debug)]
///Register block
pub struct RegisterBlock {
cr: CR,
din: DIN,
str: STR,
hr: [HR; 5],
imr: IMR,
sr: SR,
_reserved6: [u8; 0xd0],
csr: [CSR; 54],
_reserved7: [u8; 0x0140],
hash_hr: [HASH_HR; 8],
}
impl RegisterBlock {
///0x00 - control register
#[inline(always)]
pub const fn cr(&self) -> &CR {
&self.cr
}
///0x04 - data input register
#[inline(always)]
pub const fn din(&self) -> &DIN {
&self.din
}
///0x08 - start register
#[inline(always)]
pub const fn str(&self) -> &STR {
&self.str
}
///0x0c..0x20 - digest registers
#[inline(always)]
pub const fn hr(&self, n: usize) -> &HR {
&self.hr[n]
}
///Iterator for array of:
///0x0c..0x20 - digest registers
#[inline(always)]
pub fn hr_iter(&self) -> impl Iterator<Item = &HR> {
self.hr.iter()
}
///0x20 - interrupt enable register
#[inline(always)]
pub const fn imr(&self) -> &IMR {
&self.imr
}
///0x24 - status register
#[inline(always)]
pub const fn sr(&self) -> &SR {
&self.sr
}
///0xf8..0x1d0 - context swap registers
#[inline(always)]
pub const fn csr(&self, n: usize) -> &CSR {
&self.csr[n]
}
///Iterator for array of:
///0xf8..0x1d0 - context swap registers
#[inline(always)]
pub fn csr_iter(&self) -> impl Iterator<Item = &CSR> {
self.csr.iter()
}
///0x310..0x330 - HASH digest register %s
#[inline(always)]
pub const fn hash_hr(&self, n: usize) -> &HASH_HR {
&self.hash_hr[n]
}
///Iterator for array of:
///0x310..0x330 - HASH digest register %s
#[inline(always)]
pub fn hash_hr_iter(&self) -> impl Iterator<Item = &HASH_HR> {
self.hash_hr.iter()
}
}
/**CR (rw) register accessor: control register
You can [`read`](crate::generic::Reg::read) this register and get [`cr::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 [`cr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
For information about available fields see [`mod@cr`]
module*/
pub type CR = crate::Reg<cr::CRrs>;
///control register
pub mod cr;
/**DIN (rw) register accessor: data input register
You can [`read`](crate::generic::Reg::read) this register and get [`din::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 [`din::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
For information about available fields see [`mod@din`]
module*/
pub type DIN = crate::Reg<din::DINrs>;
///data input register
pub mod din;
/**STR (rw) register accessor: start register
You can [`read`](crate::generic::Reg::read) this register and get [`str::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 [`str::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
For information about available fields see [`mod@str`]
module*/
pub type STR = crate::Reg<str::STRrs>;
///start register
pub mod str;
/**HR (r) register accessor: digest registers
You can [`read`](crate::generic::Reg::read) this register and get [`hr::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
For information about available fields see [`mod@hr`]
module*/
pub type HR = crate::Reg<hr::HRrs>;
///digest registers
pub mod hr;
/**IMR (rw) register accessor: interrupt enable register
You can [`read`](crate::generic::Reg::read) this register and get [`imr::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 [`imr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
For information about available fields see [`mod@imr`]
module*/
pub type IMR = crate::Reg<imr::IMRrs>;
///interrupt enable register
pub mod imr;
/**SR (rw) register accessor: status register
You can [`read`](crate::generic::Reg::read) this register and get [`sr::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 [`sr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
For information about available fields see [`mod@sr`]
module*/
pub type SR = crate::Reg<sr::SRrs>;
///status register
pub mod sr;
/**CSR (rw) register accessor: context swap registers
You can [`read`](crate::generic::Reg::read) this register and get [`csr::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 [`csr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
For information about available fields see [`mod@csr`]
module*/
pub type CSR = crate::Reg<csr::CSRrs>;
///context swap registers
pub mod csr;
/**HASH_HR (r) register accessor: HASH digest register %s
You can [`read`](crate::generic::Reg::read) this register and get [`hash_hr::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
For information about available fields see [`mod@hash_hr`]
module*/
pub type HASH_HR = crate::Reg<hash_hr::HASH_HRrs>;
///HASH digest register %s
pub mod hash_hr;