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
#[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,
    _reserved1: [u8; 72usize],
    #[doc = "0x60 - Description collection: Device identifier"]
    pub deviceid: [DEVICEID; 2],
    _reserved2: [u8; 24usize],
    #[doc = "0x80 - Description collection: Encryption root, word n"]
    pub er: [ER; 4],
    #[doc = "0x90 - Description collection: Identity root, word n"]
    pub ir: [IR; 4],
    #[doc = "0xa0 - Device address type"]
    pub deviceaddrtype: DEVICEADDRTYPE,
    #[doc = "0xa4 - Description collection: Device address n"]
    pub deviceaddr: [DEVICEADDR; 2],
    _reserved3: [u8; 84usize],
    #[doc = "0x100 - Device info"]
    pub info: INFO,
    _reserved4: [u8; 752usize],
    #[doc = "0x404 - Registers storing factory TEMP module linearization coefficients"]
    pub temp: TEMP,
}
#[doc = r" Register block"]
#[repr(C)]
pub struct INFO {
    #[doc = "0x00 - Part code"]
    pub part: self::info::PART,
    #[doc = "0x04 - Part variant, 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 = 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 = "Code memory page size"]
pub struct CODEPAGESIZE {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Code memory page size"]
pub mod codepagesize;
#[doc = "Code memory size"]
pub struct CODESIZE {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Code memory size"]
pub mod codesize;
#[doc = "Description collection: Device identifier"]
pub struct DEVICEID {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Description collection: Device identifier"]
pub mod deviceid;
#[doc = "Description collection: Encryption root, word n"]
pub struct ER {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Description collection: Encryption root, word n"]
pub mod er;
#[doc = "Description collection: Identity root, word n"]
pub struct IR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Description collection: Identity root, word n"]
pub mod ir;
#[doc = "Device address type"]
pub struct DEVICEADDRTYPE {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Device address type"]
pub mod deviceaddrtype;
#[doc = "Description collection: Device address n"]
pub struct DEVICEADDR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Description collection: Device address n"]
pub mod deviceaddr;