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
#[doc = r" Register block"] #[repr(C)] pub struct RegisterBlock { #[doc = "0x00 - Contains the offsets of AB and CD in the RAM."] pub ctrl0: CTRL0, #[doc = "0x04 - Contains the opcode mode, iteration count, and result offset (in RAM) and also launches the accelerator. Note: with CP version: CTRL0 and CRTL1 can be written in one go with MCRR."] pub ctrl1: CTRL1, #[doc = "0x08 - Contains an optional loader to load into CTRL0/1 in steps to perform a set of operations."] pub loader: LOADER, #[doc = "0x0c - Indicates operational status and would contain the carry bit if used."] pub status: STATUS, #[doc = "0x10 - Sets interrupts"] pub intenset: INTENSET, #[doc = "0x14 - Clears interrupts"] pub intenclr: INTENCLR, #[doc = "0x18 - Interrupt status bits (mask of INTENSET and STATUS)"] pub intstat: INTSTAT, _reserved0: [u8; 4usize], #[doc = "0x20 - A register"] pub areg: AREG, #[doc = "0x24 - B register"] pub breg: BREG, #[doc = "0x28 - C register"] pub creg: CREG, #[doc = "0x2c - D register"] pub dreg: DREG, #[doc = "0x30 - Result register 0"] pub res0: RES0, #[doc = "0x34 - Result register 1"] pub res1: RES1, #[doc = "0x38 - Result register 2"] pub res2: RES2, #[doc = "0x3c - Result register 3"] pub res3: RES3, _reserved1: [u8; 32usize], #[doc = "0x60 - Optional mask register"] pub mask: MASK, #[doc = "0x64 - Optional re-mask register"] pub remask: REMASK, _reserved2: [u8; 24usize], #[doc = "0x80 - Security lock register"] pub lock: LOCK, } #[doc = "Contains the offsets of AB and CD in the RAM."] pub struct CTRL0 { register: ::vcell::VolatileCell<u32>, } #[doc = "Contains the offsets of AB and CD in the RAM."] pub mod ctrl0; #[doc = "Contains the opcode mode, iteration count, and result offset (in RAM) and also launches the accelerator. Note: with CP version: CTRL0 and CRTL1 can be written in one go with MCRR."] pub struct CTRL1 { register: ::vcell::VolatileCell<u32>, } #[doc = "Contains the opcode mode, iteration count, and result offset (in RAM) and also launches the accelerator. Note: with CP version: CTRL0 and CRTL1 can be written in one go with MCRR."] pub mod ctrl1; #[doc = "Contains an optional loader to load into CTRL0/1 in steps to perform a set of operations."] pub struct LOADER { register: ::vcell::VolatileCell<u32>, } #[doc = "Contains an optional loader to load into CTRL0/1 in steps to perform a set of operations."] pub mod loader; #[doc = "Indicates operational status and would contain the carry bit if used."] pub struct STATUS { register: ::vcell::VolatileCell<u32>, } #[doc = "Indicates operational status and would contain the carry bit if used."] pub mod status; #[doc = "Sets interrupts"] pub struct INTENSET { register: ::vcell::VolatileCell<u32>, } #[doc = "Sets interrupts"] pub mod intenset; #[doc = "Clears interrupts"] pub struct INTENCLR { register: ::vcell::VolatileCell<u32>, } #[doc = "Clears interrupts"] pub mod intenclr; #[doc = "Interrupt status bits (mask of INTENSET and STATUS)"] pub struct INTSTAT { register: ::vcell::VolatileCell<u32>, } #[doc = "Interrupt status bits (mask of INTENSET and STATUS)"] pub mod intstat; #[doc = "A register"] pub struct AREG { register: ::vcell::VolatileCell<u32>, } #[doc = "A register"] pub mod areg; #[doc = "B register"] pub struct BREG { register: ::vcell::VolatileCell<u32>, } #[doc = "B register"] pub mod breg; #[doc = "C register"] pub struct CREG { register: ::vcell::VolatileCell<u32>, } #[doc = "C register"] pub mod creg; #[doc = "D register"] pub struct DREG { register: ::vcell::VolatileCell<u32>, } #[doc = "D register"] pub mod dreg; #[doc = "Result register 0"] pub struct RES0 { register: ::vcell::VolatileCell<u32>, } #[doc = "Result register 0"] pub mod res0; #[doc = "Result register 1"] pub struct RES1 { register: ::vcell::VolatileCell<u32>, } #[doc = "Result register 1"] pub mod res1; #[doc = "Result register 2"] pub struct RES2 { register: ::vcell::VolatileCell<u32>, } #[doc = "Result register 2"] pub mod res2; #[doc = "Result register 3"] pub struct RES3 { register: ::vcell::VolatileCell<u32>, } #[doc = "Result register 3"] pub mod res3; #[doc = "Optional mask register"] pub struct MASK { register: ::vcell::VolatileCell<u32>, } #[doc = "Optional mask register"] pub mod mask; #[doc = "Optional re-mask register"] pub struct REMASK { register: ::vcell::VolatileCell<u32>, } #[doc = "Optional re-mask register"] pub mod remask; #[doc = "Security lock register"] pub struct LOCK { register: ::vcell::VolatileCell<u32>, } #[doc = "Security lock register"] pub mod lock;