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 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206
#[doc = r"Register block"] #[repr(C)] pub struct RegisterBlock { _reserved0: [u8; 16usize], #[doc = "0x10 - Code memory page size"] pub codepagesize: CODEPAGESIZE, #[doc = "0x14 - Code memory size"] pub codesize: CODESIZE, _reserved2: [u8; 72usize], #[doc = "0x60 - Description collection\\[n\\]: Device identifier"] pub deviceid: [DEVICEID; 2], _reserved3: [u8; 24usize], #[doc = "0x80 - Description collection\\[n\\]: Encryption root, word n"] pub er: [ER; 4], #[doc = "0x90 - Description collection\\[n\\]: Identity Root, word n"] pub ir: [IR; 4], #[doc = "0xa0 - Device address type"] pub deviceaddrtype: DEVICEADDRTYPE, #[doc = "0xa4 - Description collection\\[n\\]: Device address n"] pub deviceaddr: [DEVICEADDR; 2], _reserved7: [u8; 84usize], #[doc = "0x100 - Device info"] pub info: INFO, _reserved8: [u8; 560usize], #[doc = "0x350 - Description collection\\[n\\]: Production test signature n"] pub prodtest: [PRODTEST; 3], _reserved9: [u8; 168usize], #[doc = "0x404 - Registers storing factory TEMP module linearization coefficients"] pub temp: TEMP, _reserved10: [u8; 8usize], #[doc = "0x450 - Unspecified"] pub nfc: NFC, _reserved11: [u8; 1952usize], #[doc = "0xc00 - NIST800-90B RNG calibration data"] pub trng90b: TRNG90B, } #[doc = r"Register block"] #[repr(C)] pub struct INFO { #[doc = "0x00 - Part code"] pub part: self::info::PART, #[doc = "0x04 - Build code (hardware version and production configuration)"] pub variant: self::info::VARIANT, #[doc = "0x08 - Package option"] pub package: self::info::PACKAGE, #[doc = "0x0c - RAM variant"] pub ram: self::info::RAM, #[doc = "0x10 - Flash variant"] pub flash: self::info::FLASH, #[doc = "0x14 - Unspecified"] pub unused8: [self::info::UNUSED8; 3], } #[doc = r"Register block"] #[doc = "Device info"] pub mod info; #[doc = r"Register block"] #[repr(C)] pub struct TEMP { #[doc = "0x00 - Slope definition A0"] pub a0: self::temp::A0, #[doc = "0x04 - Slope definition A1"] pub a1: self::temp::A1, #[doc = "0x08 - Slope definition A2"] pub a2: self::temp::A2, #[doc = "0x0c - Slope definition A3"] pub a3: self::temp::A3, #[doc = "0x10 - Slope definition A4"] pub a4: self::temp::A4, #[doc = "0x14 - Slope definition A5"] pub a5: self::temp::A5, #[doc = "0x18 - Y-intercept B0"] pub b0: self::temp::B0, #[doc = "0x1c - Y-intercept B1"] pub b1: self::temp::B1, #[doc = "0x20 - Y-intercept B2"] pub b2: self::temp::B2, #[doc = "0x24 - Y-intercept B3"] pub b3: self::temp::B3, #[doc = "0x28 - Y-intercept B4"] pub b4: self::temp::B4, #[doc = "0x2c - Y-intercept B5"] pub b5: self::temp::B5, #[doc = "0x30 - Segment end T0"] pub t0: self::temp::T0, #[doc = "0x34 - Segment end T1"] pub t1: self::temp::T1, #[doc = "0x38 - Segment end T2"] pub t2: self::temp::T2, #[doc = "0x3c - Segment end T3"] pub t3: self::temp::T3, #[doc = "0x40 - Segment end T4"] pub t4: self::temp::T4, } #[doc = r"Register block"] #[doc = "Registers storing factory TEMP module linearization coefficients"] pub mod temp; #[doc = r"Register block"] #[repr(C)] pub struct NFC { #[doc = "0x00 - Default header for NFC tag. Software can read these values to populate NFCID1_3RD_LAST, NFCID1_2ND_LAST and NFCID1_LAST."] pub tagheader0: self::nfc::TAGHEADER0, #[doc = "0x04 - Default header for NFC tag. Software can read these values to populate NFCID1_3RD_LAST, NFCID1_2ND_LAST and NFCID1_LAST."] pub tagheader1: self::nfc::TAGHEADER1, #[doc = "0x08 - Default header for NFC tag. Software can read these values to populate NFCID1_3RD_LAST, NFCID1_2ND_LAST and NFCID1_LAST."] pub tagheader2: self::nfc::TAGHEADER2, #[doc = "0x0c - Default header for NFC tag. Software can read these values to populate NFCID1_3RD_LAST, NFCID1_2ND_LAST and NFCID1_LAST."] pub tagheader3: self::nfc::TAGHEADER3, } #[doc = r"Register block"] #[doc = "Unspecified"] pub mod nfc; #[doc = r"Register block"] #[repr(C)] pub struct TRNG90B { #[doc = "0x00 - Amount of bytes for the required entropy bits"] pub bytes: self::trng90b::BYTES, #[doc = "0x04 - Repetition counter cutoff"] pub rccutoff: self::trng90b::RCCUTOFF, #[doc = "0x08 - Adaptive proportion cutoff"] pub apcutoff: self::trng90b::APCUTOFF, #[doc = "0x0c - Amount of bytes for the startup tests"] pub startup: self::trng90b::STARTUP, #[doc = "0x10 - Sample count for ring oscillator 1"] pub rosc1: self::trng90b::ROSC1, #[doc = "0x14 - Sample count for ring oscillator 2"] pub rosc2: self::trng90b::ROSC2, #[doc = "0x18 - Sample count for ring oscillator 3"] pub rosc3: self::trng90b::ROSC3, #[doc = "0x1c - Sample count for ring oscillator 4"] pub rosc4: self::trng90b::ROSC4, } #[doc = r"Register block"] #[doc = "NIST800-90B RNG calibration data"] pub mod trng90b; #[doc = "Code memory page size\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 [codepagesize](codepagesize) module"] pub type CODEPAGESIZE = crate::Reg<u32, _CODEPAGESIZE>; #[allow(missing_docs)] #[doc(hidden)] pub struct _CODEPAGESIZE; #[doc = "`read()` method returns [codepagesize::R](codepagesize::R) reader structure"] impl crate::Readable for CODEPAGESIZE {} #[doc = "Code memory page size"] pub mod codepagesize; #[doc = "Code memory size\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 [codesize](codesize) module"] pub type CODESIZE = crate::Reg<u32, _CODESIZE>; #[allow(missing_docs)] #[doc(hidden)] pub struct _CODESIZE; #[doc = "`read()` method returns [codesize::R](codesize::R) reader structure"] impl crate::Readable for CODESIZE {} #[doc = "Code memory size"] pub mod codesize; #[doc = "Description collection\\[n\\]: Device identifier\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 [deviceid](deviceid) module"] pub type DEVICEID = crate::Reg<u32, _DEVICEID>; #[allow(missing_docs)] #[doc(hidden)] pub struct _DEVICEID; #[doc = "`read()` method returns [deviceid::R](deviceid::R) reader structure"] impl crate::Readable for DEVICEID {} #[doc = "Description collection\\[n\\]: Device identifier"] pub mod deviceid; #[doc = "Description collection\\[n\\]: Encryption root, word n\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 [er](er) module"] pub type ER = crate::Reg<u32, _ER>; #[allow(missing_docs)] #[doc(hidden)] pub struct _ER; #[doc = "`read()` method returns [er::R](er::R) reader structure"] impl crate::Readable for ER {} #[doc = "Description collection\\[n\\]: Encryption root, word n"] pub mod er; #[doc = "Description collection\\[n\\]: Identity Root, word n\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 [ir](ir) module"] pub type IR = crate::Reg<u32, _IR>; #[allow(missing_docs)] #[doc(hidden)] pub struct _IR; #[doc = "`read()` method returns [ir::R](ir::R) reader structure"] impl crate::Readable for IR {} #[doc = "Description collection\\[n\\]: Identity Root, word n"] pub mod ir; #[doc = "Device address type\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 [deviceaddrtype](deviceaddrtype) module"] pub type DEVICEADDRTYPE = crate::Reg<u32, _DEVICEADDRTYPE>; #[allow(missing_docs)] #[doc(hidden)] pub struct _DEVICEADDRTYPE; #[doc = "`read()` method returns [deviceaddrtype::R](deviceaddrtype::R) reader structure"] impl crate::Readable for DEVICEADDRTYPE {} #[doc = "Device address type"] pub mod deviceaddrtype; #[doc = "Description collection\\[n\\]: Device address n\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 [deviceaddr](deviceaddr) module"] pub type DEVICEADDR = crate::Reg<u32, _DEVICEADDR>; #[allow(missing_docs)] #[doc(hidden)] pub struct _DEVICEADDR; #[doc = "`read()` method returns [deviceaddr::R](deviceaddr::R) reader structure"] impl crate::Readable for DEVICEADDR {} #[doc = "Description collection\\[n\\]: Device address n"] pub mod deviceaddr; #[doc = "Description collection\\[n\\]: Production test signature n\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 [prodtest](prodtest) module"] pub type PRODTEST = crate::Reg<u32, _PRODTEST>; #[allow(missing_docs)] #[doc(hidden)] pub struct _PRODTEST; #[doc = "`read()` method returns [prodtest::R](prodtest::R) reader structure"] impl crate::Readable for PRODTEST {} #[doc = "Description collection\\[n\\]: Production test signature n"] pub mod prodtest;