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
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
#[doc = r" Register block"]
#[repr(C)]
pub struct RegisterBlock {
    #[doc = "0x00 - Main Control Register"]
    pub etmcr: ETMCR,
    #[doc = "0x04 - Configuration Code Register"]
    pub etmccr: ETMCCR,
    #[doc = "0x08 - ETM Trigger Event Register"]
    pub etmtrigger: ETMTRIGGER,
    _reserved0: [u8; 4usize],
    #[doc = "0x10 - ETM Status Register"]
    pub etmsr: ETMSR,
    #[doc = "0x14 - ETM System Configuration Register"]
    pub etmscr: ETMSCR,
    _reserved1: [u8; 8usize],
    #[doc = "0x20 - ETM TraceEnable Event Register"]
    pub etmteevr: ETMTEEVR,
    #[doc = "0x24 - ETM Trace control Register"]
    pub etmtecr1: ETMTECR1,
    _reserved2: [u8; 4usize],
    #[doc = "0x2c - ETM Fifo Full Level Register"]
    pub etmfflr: ETMFFLR,
    _reserved3: [u8; 272usize],
    #[doc = "0x140 - Counter Reload Value"]
    pub etmcntrldvr1: ETMCNTRLDVR1,
    _reserved4: [u8; 156usize],
    #[doc = "0x1e0 - Synchronisation Frequency Register"]
    pub etmsyncfr: ETMSYNCFR,
    #[doc = "0x1e4 - ID Register"]
    pub etmidr: ETMIDR,
    #[doc = "0x1e8 - Configuration Code Extension Register"]
    pub etmccer: ETMCCER,
    _reserved5: [u8; 4usize],
    #[doc = "0x1f0 - TraceEnable Start/Stop EmbeddedICE Control Register"]
    pub etmtesseicr: ETMTESSEICR,
    _reserved6: [u8; 4usize],
    #[doc = "0x1f8 - Timestamp Event Register"]
    pub etmtsevr: ETMTSEVR,
    _reserved7: [u8; 4usize],
    #[doc = "0x200 - CoreSight Trace ID Register"]
    pub etmtraceidr: ETMTRACEIDR,
    _reserved8: [u8; 4usize],
    #[doc = "0x208 - ETM ID Register 2"]
    pub etmidr2: ETMIDR2,
    _reserved9: [u8; 264usize],
    #[doc = "0x314 - Device Power-down Status Register"]
    pub etmpdsr: ETMPDSR,
    _reserved10: [u8; 3016usize],
    #[doc = "0xee0 - Integration Test Miscellaneous Inputs Register"]
    pub etmiscin: ETMISCIN,
    _reserved11: [u8; 4usize],
    #[doc = "0xee8 - Integration Test Trigger Out Register"]
    pub ittrigout: ITTRIGOUT,
    _reserved12: [u8; 4usize],
    #[doc = "0xef0 - ETM Integration Test ATB Control 2 Register"]
    pub etmitatbctr2: ETMITATBCTR2,
    _reserved13: [u8; 4usize],
    #[doc = "0xef8 - ETM Integration Test ATB Control 0 Register"]
    pub etmitatbctr0: ETMITATBCTR0,
    _reserved14: [u8; 4usize],
    #[doc = "0xf00 - ETM Integration Control Register"]
    pub etmitctrl: ETMITCTRL,
    _reserved15: [u8; 156usize],
    #[doc = "0xfa0 - ETM Claim Tag Set Register"]
    pub etmclaimset: ETMCLAIMSET,
    #[doc = "0xfa4 - ETM Claim Tag Clear Register"]
    pub etmclaimclr: ETMCLAIMCLR,
    _reserved16: [u8; 8usize],
    #[doc = "0xfb0 - ETM Lock Access Register"]
    pub etmlar: ETMLAR,
    #[doc = "0xfb4 - Lock Status Register"]
    pub etmlsr: ETMLSR,
    #[doc = "0xfb8 - ETM Authentication Status Register"]
    pub etmauthstatus: ETMAUTHSTATUS,
    _reserved17: [u8; 16usize],
    #[doc = "0xfcc - CoreSight Device Type Register"]
    pub etmdevtype: ETMDEVTYPE,
    #[doc = "0xfd0 - Peripheral ID4 Register"]
    pub etmpidr4: ETMPIDR4,
    #[doc = "0xfd4 - Peripheral ID5 Register"]
    pub etmpidr5: ETMPIDR5,
    #[doc = "0xfd8 - Peripheral ID6 Register"]
    pub etmpidr6: ETMPIDR6,
    #[doc = "0xfdc - Peripheral ID7 Register"]
    pub etmpidr7: ETMPIDR7,
    #[doc = "0xfe0 - Peripheral ID0 Register"]
    pub etmpidr0: ETMPIDR0,
    #[doc = "0xfe4 - Peripheral ID1 Register"]
    pub etmpidr1: ETMPIDR1,
    #[doc = "0xfe8 - Peripheral ID2 Register"]
    pub etmpidr2: ETMPIDR2,
    #[doc = "0xfec - Peripheral ID3 Register"]
    pub etmpidr3: ETMPIDR3,
    #[doc = "0xff0 - Component ID0 Register"]
    pub etmcidr0: ETMCIDR0,
    #[doc = "0xff4 - Component ID1 Register"]
    pub etmcidr1: ETMCIDR1,
    #[doc = "0xff8 - Component ID2 Register"]
    pub etmcidr2: ETMCIDR2,
    #[doc = "0xffc - Component ID3 Register"]
    pub etmcidr3: ETMCIDR3,
}
#[doc = "Main Control Register"]
pub struct ETMCR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Main Control Register"]
pub mod etmcr;
#[doc = "Configuration Code Register"]
pub struct ETMCCR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Configuration Code Register"]
pub mod etmccr;
#[doc = "ETM Trigger Event Register"]
pub struct ETMTRIGGER {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "ETM Trigger Event Register"]
pub mod etmtrigger;
#[doc = "ETM Status Register"]
pub struct ETMSR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "ETM Status Register"]
pub mod etmsr;
#[doc = "ETM System Configuration Register"]
pub struct ETMSCR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "ETM System Configuration Register"]
pub mod etmscr;
#[doc = "ETM TraceEnable Event Register"]
pub struct ETMTEEVR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "ETM TraceEnable Event Register"]
pub mod etmteevr;
#[doc = "ETM Trace control Register"]
pub struct ETMTECR1 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "ETM Trace control Register"]
pub mod etmtecr1;
#[doc = "ETM Fifo Full Level Register"]
pub struct ETMFFLR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "ETM Fifo Full Level Register"]
pub mod etmfflr;
#[doc = "Counter Reload Value"]
pub struct ETMCNTRLDVR1 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Counter Reload Value"]
pub mod etmcntrldvr1;
#[doc = "Synchronisation Frequency Register"]
pub struct ETMSYNCFR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Synchronisation Frequency Register"]
pub mod etmsyncfr;
#[doc = "ID Register"]
pub struct ETMIDR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "ID Register"]
pub mod etmidr;
#[doc = "Configuration Code Extension Register"]
pub struct ETMCCER {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Configuration Code Extension Register"]
pub mod etmccer;
#[doc = "TraceEnable Start/Stop EmbeddedICE Control Register"]
pub struct ETMTESSEICR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "TraceEnable Start/Stop EmbeddedICE Control Register"]
pub mod etmtesseicr;
#[doc = "Timestamp Event Register"]
pub struct ETMTSEVR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Timestamp Event Register"]
pub mod etmtsevr;
#[doc = "CoreSight Trace ID Register"]
pub struct ETMTRACEIDR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "CoreSight Trace ID Register"]
pub mod etmtraceidr;
#[doc = "ETM ID Register 2"]
pub struct ETMIDR2 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "ETM ID Register 2"]
pub mod etmidr2;
#[doc = "Device Power-down Status Register"]
pub struct ETMPDSR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Device Power-down Status Register"]
pub mod etmpdsr;
#[doc = "Integration Test Miscellaneous Inputs Register"]
pub struct ETMISCIN {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Integration Test Miscellaneous Inputs Register"]
pub mod etmiscin;
#[doc = "Integration Test Trigger Out Register"]
pub struct ITTRIGOUT {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Integration Test Trigger Out Register"]
pub mod ittrigout;
#[doc = "ETM Integration Test ATB Control 2 Register"]
pub struct ETMITATBCTR2 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "ETM Integration Test ATB Control 2 Register"]
pub mod etmitatbctr2;
#[doc = "ETM Integration Test ATB Control 0 Register"]
pub struct ETMITATBCTR0 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "ETM Integration Test ATB Control 0 Register"]
pub mod etmitatbctr0;
#[doc = "ETM Integration Control Register"]
pub struct ETMITCTRL {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "ETM Integration Control Register"]
pub mod etmitctrl;
#[doc = "ETM Claim Tag Set Register"]
pub struct ETMCLAIMSET {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "ETM Claim Tag Set Register"]
pub mod etmclaimset;
#[doc = "ETM Claim Tag Clear Register"]
pub struct ETMCLAIMCLR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "ETM Claim Tag Clear Register"]
pub mod etmclaimclr;
#[doc = "ETM Lock Access Register"]
pub struct ETMLAR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "ETM Lock Access Register"]
pub mod etmlar;
#[doc = "Lock Status Register"]
pub struct ETMLSR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Lock Status Register"]
pub mod etmlsr;
#[doc = "ETM Authentication Status Register"]
pub struct ETMAUTHSTATUS {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "ETM Authentication Status Register"]
pub mod etmauthstatus;
#[doc = "CoreSight Device Type Register"]
pub struct ETMDEVTYPE {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "CoreSight Device Type Register"]
pub mod etmdevtype;
#[doc = "Peripheral ID4 Register"]
pub struct ETMPIDR4 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Peripheral ID4 Register"]
pub mod etmpidr4;
#[doc = "Peripheral ID5 Register"]
pub struct ETMPIDR5 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Peripheral ID5 Register"]
pub mod etmpidr5;
#[doc = "Peripheral ID6 Register"]
pub struct ETMPIDR6 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Peripheral ID6 Register"]
pub mod etmpidr6;
#[doc = "Peripheral ID7 Register"]
pub struct ETMPIDR7 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Peripheral ID7 Register"]
pub mod etmpidr7;
#[doc = "Peripheral ID0 Register"]
pub struct ETMPIDR0 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Peripheral ID0 Register"]
pub mod etmpidr0;
#[doc = "Peripheral ID1 Register"]
pub struct ETMPIDR1 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Peripheral ID1 Register"]
pub mod etmpidr1;
#[doc = "Peripheral ID2 Register"]
pub struct ETMPIDR2 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Peripheral ID2 Register"]
pub mod etmpidr2;
#[doc = "Peripheral ID3 Register"]
pub struct ETMPIDR3 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Peripheral ID3 Register"]
pub mod etmpidr3;
#[doc = "Component ID0 Register"]
pub struct ETMCIDR0 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Component ID0 Register"]
pub mod etmcidr0;
#[doc = "Component ID1 Register"]
pub struct ETMCIDR1 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Component ID1 Register"]
pub mod etmcidr1;
#[doc = "Component ID2 Register"]
pub struct ETMCIDR2 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Component ID2 Register"]
pub mod etmcidr2;
#[doc = "Component ID3 Register"]
pub struct ETMCIDR3 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Component ID3 Register"]
pub mod etmcidr3;