Imt.Base C++ API V4.1.1.0
Loading...
Searching...
No Matches
OSPIRegisters.h
Go to the documentation of this file.
1// (c) IMT - Information Management Technology AG, CH-9470 Buchs, www.imt.ch.
2
3#ifndef STM32H730_OSPIREGISTERS_H
4#define STM32H730_OSPIREGISTERS_H
5
8
9namespace imt {
10namespace base {
11namespace hal {
12namespace stm32h730 {
13namespace registers {
14
25 struct OCTOSPI_CR {
26 uint32_t volatile EN : 1;
27 uint32_t volatile ABORT : 1;
28 uint32_t volatile DMAEN : 1;
29 uint32_t volatile TCEN : 1;
31 uint32_t volatile DQM : 1;
32 uint32_t volatile FSEL : 1;
33 uint32_t volatile FTHRES : 5;
34 uint32_t volatile : 3;
35 uint32_t volatile TEIE : 1;
36 uint32_t volatile TCIE : 1;
37 uint32_t volatile FTIE : 1;
38 uint32_t volatile SMIE : 1;
39 uint32_t volatile TOIE : 1;
40 uint32_t volatile : 1;
41 uint32_t volatile APMS : 1;
42 uint32_t volatile PMM : 1;
43 uint32_t volatile : 4;
44 uint32_t volatile FMODE : 2;
45 uint32_t volatile : 2;
46 };
47
51 struct OCTOSPI_DCR1 {
52 uint32_t volatile CKMODE : 1;
53 uint32_t volatile FRCK : 1;
55 uint32_t volatile DLYBYP : 1;
56 uint32_t volatile : 4;
57 uint32_t volatile CSHT : 6;
58 uint32_t volatile : 2;
59 uint32_t volatile DEVSIZE : 5;
60 uint32_t volatile : 3;
61 uint32_t volatile MTYP : 3;
62 uint32_t volatile : 5;
63 };
64
68 struct OCTOSPI_DCR2 {
69 uint32_t volatile PRESCALER : 8;
71 uint32_t volatile WRAPSIZE : 3;
72 uint32_t volatile : 13;
73 };
74
78 struct OCTOSPI_DCR3 {
79 uint32_t volatile MAXTRAN : 8;
81 uint32_t volatile CSBOUND : 5;
82 uint32_t volatile : 11;
83 };
84
88 struct OCTOSPI_DCR4 {
89 uint32_t volatile REFRESH : 32;
90 };
91
95 struct OCTOSPI_SR {
96 uint32_t volatile TEF : 1;
97 uint32_t volatile TCF : 1;
98 uint32_t volatile FTF : 1;
99 uint32_t volatile SMF : 1;
100 uint32_t volatile TOF : 1;
101 uint32_t volatile BUSY : 1;
103 uint32_t volatile FLEVEL : 6;
104 uint32_t volatile : 18;
105 };
106
110 struct OCTOSPI_FCR {
111 uint32_t volatile CTEF : 1;
112 uint32_t volatile CTCF : 1;
114 uint32_t volatile CSMF : 1;
115 uint32_t volatile CTOF : 1;
116 uint32_t volatile : 27;
117 };
118
122 struct OCTOSPI_DLR {
123 uint32_t volatile DL : 32;
124 };
125
129 struct OCTOSPI_AR {
130 uint32_t volatile ADDRESS : 32;
131 };
132
136 struct OCTOSPI_DR {
137 uint32_t volatile DATA : 32;
138 };
139
144 uint32_t volatile MASK : 32;
145 };
146
151 uint32_t volatile MATCH : 32;
152 };
153
157 struct OCTOSPI_PIR {
158 uint32_t volatile INTERVAL : 16;
160 };
161
166 struct Fields {
167 uint32_t volatile IMODE : 3;
168 uint32_t volatile IDTR : 1;
169 uint32_t volatile ISIZE : 2;
171 uint32_t volatile ADMODE : 3;
172 uint32_t volatile ADDTR : 1;
173 uint32_t volatile ADSIZE : 2;
174 uint32_t volatile : 2;
175 uint32_t volatile ABMODE : 3;
176 uint32_t volatile ABDTR : 1;
177 uint32_t volatile ABSIZE : 2;
178 uint32_t volatile : 2;
179 uint32_t volatile DMODE : 3;
180 uint32_t volatile DDTR : 1;
181 uint32_t volatile : 1;
182 uint32_t volatile DQSE : 1;
183 uint32_t volatile : 1;
184 uint32_t volatile SIOO : 1;
185 };
186 Fields volatile field;
187 uint32_t volatile reg;
188 };
189
193 struct OCTOSPI_TCR {
194 uint32_t volatile DCYC : 5;
196 uint32_t volatile DHQC : 1;
197 uint32_t volatile : 1;
198 uint32_t volatile SSHIFT : 1;
199 uint32_t volatile : 1;
200 };
201
205 struct OCTOSPI_IR {
206 uint32_t volatile INSTRUCTION : 32;
207 };
208
212 struct OCTOSPI_ABR {
213 uint32_t volatile ALTERNATE : 32;
214 };
215
220 uint32_t volatile TIMEOUT : 16;
222 };
223
228 uint32_t volatile IMODE : 3;
229 uint32_t volatile IDTR : 1;
230 uint32_t volatile ISIZE : 2;
232 uint32_t volatile ADMODE : 3;
233 uint32_t volatile ADDTR : 1;
234 uint32_t volatile ADSIZE : 2;
235 uint32_t volatile : 2;
236 uint32_t volatile ABMODE : 3;
237 uint32_t volatile ABDTR : 1;
238 uint32_t volatile ABSIZE : 2;
239 uint32_t volatile : 2;
240 uint32_t volatile DMODE : 3;
241 uint32_t volatile DDTR : 1;
242 uint32_t volatile : 1;
243 uint32_t volatile DQSE : 1;
244 uint32_t volatile : 2;
245 };
246
251 uint32_t volatile DCYC : 5;
253 uint32_t volatile DHQC : 1;
254 uint32_t volatile : 1;
255 uint32_t volatile SSHIFT : 1;
256 uint32_t volatile : 1;
257 };
258
263 uint32_t volatile INSTRUCTION : 32;
264 };
265
270 uint32_t volatile ALTERNATE : 32;
271 };
272
277 uint32_t volatile IMODE : 3;
278 uint32_t volatile IDTR : 1;
279 uint32_t volatile ISIZE : 2;
281 uint32_t volatile ADMODE : 3;
282 uint32_t volatile ADDTR : 1;
283 uint32_t volatile ADSIZE : 2;
284 uint32_t volatile : 2;
285 uint32_t volatile ABMODE : 3;
286 uint32_t volatile ABDTR : 1;
287 uint32_t volatile ABSIZE : 2;
288 uint32_t volatile : 2;
289 uint32_t volatile DMODE : 3;
290 uint32_t volatile DDTR : 1;
291 uint32_t volatile : 1;
292 uint32_t volatile DQSE : 1;
293 uint32_t volatile : 2;
294 };
295
300 uint32_t volatile DCYC : 5;
302 };
303
307 struct OCTOSPI_WIR {
308 uint32_t volatile INSTRUCTION : 32;
309 };
310
315 uint32_t volatile ALTERNATE : 32;
316 };
317
322 uint32_t volatile LM : 1;
323 uint32_t volatile WZL : 1;
325 uint32_t volatile TACC : 8;
326 uint32_t volatile TRWR : 8;
327 uint32_t volatile : 8;
328 };
329
334 return *reinterpret_cast<OSPIRegisters*>(module);
335 }
336
337 // Registers
338 volatile OCTOSPI_CR CR; // Offset 0x00
339 uint32_t volatile _reserved0; // Offset 0x04
340 volatile OCTOSPI_DCR1 DCR1; // Offset 0x08
341 volatile OCTOSPI_DCR2 DCR2; // Offset 0x0C
342 volatile OCTOSPI_DCR3 DCR3; // Offset 0x10
343 volatile OCTOSPI_DCR4 DCR4; // Offset 0x14
344 uint32_t volatile _reserved1[2]; // Offset 0x18
345 volatile OCTOSPI_SR SR; // Offset 0x20
346 volatile OCTOSPI_FCR FCR; // Offset 0x24
347 uint32_t volatile _reserved2[6]; // Offset 0x28
348 volatile OCTOSPI_DLR DLR; // Offset 0x40
349 uint32_t volatile _reserved3; // Offset 0x44
350 volatile OCTOSPI_AR AR; // Offset 0x48
351 uint32_t volatile _reserved4; // Offset 0x4C
352 volatile OCTOSPI_DR DR; // Offset 0x50
353 uint32_t volatile _reserved5[11]; // Offset 0x54
354 volatile OCTOSPI_PSMKR PSMKR; // Offset 0x80
355 uint32_t volatile _reserved6; // Offset 0x84
356 volatile OCTOSPI_PSMAR PSMAR; // Offset 0x88
357 uint32_t volatile _reserved7; // Offset 0x8C
358 volatile OCTOSPI_PIR PIR; // Offset 0x90
359 uint32_t volatile _reserved8[27]; // Offset 0x94
360 volatile OCTOSPI_CCR CCR; // Offset 0x100
361 uint32_t volatile _reserved9; // Offset 0x104
362 volatile OCTOSPI_TCR TCR; // Offset 0x108
363 uint32_t volatile _reserved10; // Offset 0x10C
364 volatile OCTOSPI_IR IR; // Offset 0x110
365 uint32_t volatile _reserved11[3]; // Offset 0x114
366 volatile OCTOSPI_ABR ABR; // Offset 0x120
367 uint32_t volatile _reserved12[3]; // Offset 0x124
368 volatile OCTOSPI_LPTR LPTR; // Offset 0x130
369 uint32_t volatile _reserved13[3]; // Offset 0x134
370 volatile OCTOSPI_WPCCR WPCCR; // Offset 0x140
371 uint32_t volatile _reserved14; // Offset 0x144
372 volatile OCTOSPI_WPTCR WPTCR; // Offset 0x148
373 uint32_t volatile _reserved15; // Offset 0x14C
374 volatile OCTOSPI_WPIR WPIR; // Offset 0x150
375 uint32_t volatile _reserved16[3]; // Offset 0x154
376 volatile OCTOSPI_WPABR WPABR; // Offset 0x160
377 uint32_t volatile _reserved17[7]; // Offset 0x164
378 volatile OCTOSPI_WCCR WCCR; // Offset 0x180
379 uint32_t volatile _reserved18; // Offset 0x184
380 volatile OCTOSPI_WTCR WTCR; // Offset 0x188
381 uint32_t volatile _reserved19; // Offset 0x18C
382 volatile OCTOSPI_WIR WIR; // Offset 0x190
383 uint32_t volatile _reserved20[3]; // Offset 0x194
384 volatile OCTOSPI_WABR WABR; // Offset 0x1A0
385 uint32_t volatile _reserved21[23]; // Offset 0x1A4
386 volatile OCTOSPI_HLCR HLCR; // Offset 0x200
387
388private:
389
394
398 OSPIRegisters(OSPIRegisters const& other);
399
403 OSPIRegisters& operator=(OSPIRegisters const& other);
404};
405
406} // namespace registers
407} // namespace stm32h730
408} // namespace hal
409} // namespace base
410} // namespace imt
411
412#endif // STM32H730_OSPIREGISTERS_H
OCTOSPIModuleAddress
Enumeration of the available OCTOSPI modules on STM32H730.
This is a application specific file which is used to configure Imt.Base.Core.Math.
unsigned __int32 uint32_t
Definition stdint.h:64
OCTOSPI alternate bytes registers (OCTOSPI_ABR), chapter 25.6.17.
OCTOSPI address register (OCTOSPI_AR), chapter 25.6.9.
uint32_t volatile IDTR
Instruction double transfer rate.
uint32_t volatile SIOO
Send instruction only once mode.
uint32_t volatile ABDTR
Alternate bytes double transfer rate.
OCTOSPI control register (OCTOSPI_CR), chapter 25.6.1.
uint32_t volatile TOIE
TimeOut interrupt enable.
uint32_t volatile TCIE
Transfer complete interrupt enable.
uint32_t volatile SMIE
Status match interrupt enable.
uint32_t volatile FTIE
FIFO threshold interrupt enable.
uint32_t volatile TEIE
Transfer error interrupt enable.
uint32_t volatile APMS
Automatic poll mode stop.
OCTOSPI device configuration register (OCTOSPI_DCR1), chapter 25.6.2.
OCTOSPI device configuration register (OCTOSPI_DCR2), chapter 25.6.3.
OCTOSPI device configuration register (OCTOSPI_DCR3), chapter 25.6.4.
OCTOSPI device configuration register (OCTOSPI_DCR4), chapter 25.6.5.
OCTOSPI data length register (OCTOSPI_DLR), chapter 25.6.8.
OCTOSPI data register (OCTOSPI_DR), chapter 25.6.10.
OCTOSPI flag clear register (OCTOSPI_FCR), chapter 25.6.7.
uint32_t volatile CTCF
Clear transfer complete flag.
OCTOSPI HyperBus latency configuration register (OCTOSPI_HLCR), chapter 25.6.27.
OCTOSPI instruction register (OCTOSPI_IR), chapter 25.6.16.
OCTOSPI low-power timeout register (OCTOSPI_LPTR), chapter 25.6.18.
OCTOSPI polling interval register (OCTOSPI_PIR), chapter 25.6.13.
OCTOSPI polling status match register (OCTOSPI_PSMAR), chapter 25.6.12.
OCTOSPI polling status mask register (OCTOSPI_PSMKR), chapter 25.6.11.
OCTOSPI status register (OCTOSPI_SR), chapter 25.6.6.
OCTOSPI timing configuration register (OCTOSPI_TCR), chapter 25.6.15.
OCTOSPI write alternate bytes register (OCTOSPI_WABR), chapter 25.6.26.
OCTOSPI write communication configuration register (OCTOSPI_WCCR), chapter 25.6.23.
uint32_t volatile ADDTR
Address double transfer rate.
uint32_t volatile ABDTR
Alternate bytes double transfer rate.
uint32_t volatile IDTR
Instruction double transfer rate.
OCTOSPI write instruction register (OCTOSPI_WIR), chapter 25.6.25.
OCTOSPI wrap alternate bytes register (OCTOSPI_WPABR), chapter 25.6.22.
OCTOSPI wrap communication configuration register (OCTOSPI_WPCCR), chapter 25.6.19.
uint32_t volatile ADDTR
Address double transfer rate.
uint32_t volatile IDTR
Instruction double transfer rate.
uint32_t volatile ABDTR
Alternate bytes double transfer rate.
OCTOSPI wrap instruction register (OCTOSPI_WPIR), chapter 25.6.21.
OCTOSPI wrap timing configuration register (OCTOSPI_WPTCR), chapter 25.6.20.
OCTOSPI write timing configuration register (OCTOSPI_WTCR), chapter 25.6.24.
(Octo-SPI) module register structure
static OSPIRegisters & getInstance(OCTOSPIModuleAddress const module)
Gets the instance of the registers for a given OSPI module in memory.
OCTOSPI communication configuration register (OCTOSPI_CCR), chapter 25.6.14.