2
0

stm32f756.pp 87 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720
  1. {
  2. Register definitions and utility code for STM32F756
  3. Created by Jeppe Johansen 2015 - [email protected]
  4. }
  5. unit stm32f756;
  6. {$goto on}
  7. interface
  8. {$PACKRECORDS C}
  9. (**
  10. * @brief Configuration of the Cortex-M7 Processor and Core Peripherals
  11. *)
  12. const
  13. __CM7_REV = $0000; (*!< Cortex-M7 revision r0p0 *)
  14. __MPU_PRESENT = true; (*!< CM7 provides an MPU *)
  15. __NVIC_PRIO_BITS = 4; (*!< CM7 uses 4 Bits for the Priority Levels *)
  16. __Vendor_SysTickConfig = 0; (*!< Set to 1 if different SysTick Config is used *)
  17. __FPU_PRESENT = true; (*!< FPU present *)
  18. CACHE_PRESENT = true; (*!< CM7 instruction cache present *)
  19. __DCACHE_PRESENT = true; (*!< CM7 data cache present *)
  20. (** @addtogroup Peripheral_registers_structures
  21. * @{
  22. *)
  23. (**
  24. * @brief Analog to Digital Converter
  25. *)
  26. type
  27. ADC_TypeDef = record
  28. SR: longword; (*!< ADC status register, Address offset: 0x00 *)
  29. CR1: longword; (*!< ADC control register 1, Address offset: 0x04 *)
  30. CR2: longword; (*!< ADC control register 2, Address offset: 0x08 *)
  31. SMPR1: longword; (*!< ADC sample time register 1, Address offset: 0x0C *)
  32. SMPR2: longword; (*!< ADC sample time register 2, Address offset: 0x10 *)
  33. JOFR1: longword; (*!< ADC injected channel data offset register 1, Address offset: 0x14 *)
  34. JOFR2: longword; (*!< ADC injected channel data offset register 2, Address offset: 0x18 *)
  35. JOFR3: longword; (*!< ADC injected channel data offset register 3, Address offset: 0x1C *)
  36. JOFR4: longword; (*!< ADC injected channel data offset register 4, Address offset: 0x20 *)
  37. HTR: longword; (*!< ADC watchdog higher threshold register, Address offset: 0x24 *)
  38. LTR: longword; (*!< ADC watchdog lower threshold register, Address offset: 0x28 *)
  39. SQR1: longword; (*!< ADC regular sequence register 1, Address offset: 0x2C *)
  40. SQR2: longword; (*!< ADC regular sequence register 2, Address offset: 0x30 *)
  41. SQR3: longword; (*!< ADC regular sequence register 3, Address offset: 0x34 *)
  42. JSQR: longword; (*!< ADC injected sequence register, Address offset: 0x38 *)
  43. JDR1: longword; (*!< ADC injected data register 1, Address offset: 0x3C *)
  44. JDR2: longword; (*!< ADC injected data register 2, Address offset: 0x40 *)
  45. JDR3: longword; (*!< ADC injected data register 3, Address offset: 0x44 *)
  46. JDR4: longword; (*!< ADC injected data register 4, Address offset: 0x48 *)
  47. DR: longword; (*!< ADC regular data register, Address offset: 0x4C *)
  48. end;
  49. ADC_Common_TypeDef = record
  50. CSR: longword; (*!< ADC Common status register, Address offset: ADC1 base address + 0x300 *)
  51. CCR: longword; (*!< ADC common control register, Address offset: ADC1 base address + 0x304 *)
  52. CDR: longword; (*!< ADC common regular data register for dual
  53. AND triple modes, Address offset: ADC1 base address + 0x308 *)
  54. end;
  55. (**
  56. * @brief Controller Area Network TxMailBox
  57. *)
  58. CAN_TxMailBox_TypeDef = record
  59. TIR: longword; (*!< CAN TX mailbox identifier register *)
  60. TDTR: longword; (*!< CAN mailbox data length control and time stamp register *)
  61. TDLR: longword; (*!< CAN mailbox data low register *)
  62. TDHR: longword; (*!< CAN mailbox data high register *)
  63. end;
  64. (**
  65. * @brief Controller Area Network FIFOMailBox
  66. *)
  67. CAN_FIFOMailBox_TypeDef = record
  68. RIR: longword; (*!< CAN receive FIFO mailbox identifier register *)
  69. RDTR: longword; (*!< CAN receive FIFO mailbox data length control and time stamp register *)
  70. RDLR: longword; (*!< CAN receive FIFO mailbox data low register *)
  71. RDHR: longword; (*!< CAN receive FIFO mailbox data high register *)
  72. end;
  73. (**
  74. * @brief Controller Area Network FilterRegister
  75. *)
  76. CAN_FilterRegister_TypeDef = record
  77. FR1: longword; (*!< CAN Filter bank register 1 *)
  78. FR2: longword; (*!< CAN Filter bank register 1 *)
  79. end;
  80. (**
  81. * @brief Controller Area Network
  82. *)
  83. CAN_TypeDef = record
  84. MCR: longword; (*!< CAN master control register, Address offset: 0x00 *)
  85. MSR: longword; (*!< CAN master status register, Address offset: 0x04 *)
  86. TSR: longword; (*!< CAN transmit status register, Address offset: 0x08 *)
  87. RF0R: longword; (*!< CAN receive FIFO 0 register, Address offset: 0x0C *)
  88. RF1R: longword; (*!< CAN receive FIFO 1 register, Address offset: 0x10 *)
  89. IER: longword; (*!< CAN interrupt enable register, Address offset: 0x14 *)
  90. ESR: longword; (*!< CAN error status register, Address offset: 0x18 *)
  91. BTR: longword; (*!< CAN bit timing register, Address offset: 0x1C *)
  92. RESERVED0: array [0..87] of longword; (*!< Reserved, 0x020 - 0x17F *)
  93. sTxMailBox: array [0..2] of CAN_TxMailBox_TypeDef; (*!< CAN Tx MailBox, Address offset: 0x180 - 0x1AC *)
  94. sFIFOMailBox: array [0..1] of CAN_FIFOMailBox_TypeDef; (*!< CAN FIFO MailBox, Address offset: 0x1B0 - 0x1CC *)
  95. RESERVED1: array [0..11] of longword; (*!< Reserved, 0x1D0 - 0x1FF *)
  96. FMR: longword; (*!< CAN filter master register, Address offset: 0x200 *)
  97. FM1R: longword; (*!< CAN filter mode register, Address offset: 0x204 *)
  98. RESERVED2: longword; (*!< Reserved, 0x208 *)
  99. FS1R: longword; (*!< CAN filter scale register, Address offset: 0x20C *)
  100. RESERVED3: longword; (*!< Reserved, 0x210 *)
  101. FFA1R: longword; (*!< CAN filter FIFO assignment register, Address offset: 0x214 *)
  102. RESERVED4: longword; (*!< Reserved, 0x218 *)
  103. FA1R: longword; (*!< CAN filter activation register, Address offset: 0x21C *)
  104. RESERVED5: array [0..7] of longword; (*!< Reserved, 0x220-0x23F *)
  105. sFilterRegister: array [0..27] of CAN_FilterRegister_TypeDef; (*!< CAN Filter Register, Address offset: 0x240-0x31C *)
  106. end;
  107. (**
  108. * @brief HDMI-CEC
  109. *)
  110. CEC_TypeDef = record
  111. CR: longword; (*!< CEC control register, Address offset:0x00 *)
  112. CFGR: longword; (*!< CEC configuration register, Address offset:0x04 *)
  113. TXDR: longword; (*!< CEC Tx data register , Address offset:0x08 *)
  114. RXDR: longword; (*!< CEC Rx Data Register, Address offset:0x0C *)
  115. ISR: longword; (*!< CEC Interrupt and Status Register, Address offset:0x10 *)
  116. IER: longword; (*!< CEC interrupt enable register, Address offset:0x14 *)
  117. end;
  118. (**
  119. * @brief CRC calculation unit
  120. *)
  121. CRC_TypeDef = record
  122. DR: longword; (*!< CRC Data register, Address offset: 0x00 *)
  123. IDR: byte; (*!< CRC Independent data register, Address offset: 0x04 *)
  124. RESERVED0: byte; (*!< Reserved, 0x05 *)
  125. RESERVED1: word; (*!< Reserved, 0x06 *)
  126. CR: longword; (*!< CRC Control register, Address offset: 0x08 *)
  127. RESERVED2: longword; (*!< Reserved, 0x0C *)
  128. INIT: longword; (*!< Initial CRC value register, Address offset: 0x10 *)
  129. POL: longword; (*!< CRC polynomial register, Address offset: 0x14 *)
  130. end;
  131. (**
  132. * @brief Digital to Analog Converter
  133. *)
  134. DAC_TypeDef = record
  135. CR: longword; (*!< DAC control register, Address offset: 0x00 *)
  136. SWTRIGR: longword; (*!< DAC software trigger register, Address offset: 0x04 *)
  137. DHR12R1: longword; (*!< DAC channel1 12-bit right-aligned data holding register, Address offset: 0x08 *)
  138. DHR12L1: longword; (*!< DAC channel1 12-bit left aligned data holding register, Address offset: 0x0C *)
  139. DHR8R1: longword; (*!< DAC channel1 8-bit right aligned data holding register, Address offset: 0x10 *)
  140. DHR12R2: longword; (*!< DAC channel2 12-bit right aligned data holding register, Address offset: 0x14 *)
  141. DHR12L2: longword; (*!< DAC channel2 12-bit left aligned data holding register, Address offset: 0x18 *)
  142. DHR8R2: longword; (*!< DAC channel2 8-bit right-aligned data holding register, Address offset: 0x1C *)
  143. DHR12RD: longword; (*!< Dual DAC 12-bit right-aligned data holding register, Address offset: 0x20 *)
  144. DHR12LD: longword; (*!< DUAL DAC 12-bit left aligned data holding register, Address offset: 0x24 *)
  145. DHR8RD: longword; (*!< DUAL DAC 8-bit right aligned data holding register, Address offset: 0x28 *)
  146. DOR1: longword; (*!< DAC channel1 data output register, Address offset: 0x2C *)
  147. DOR2: longword; (*!< DAC channel2 data output register, Address offset: 0x30 *)
  148. SR: longword; (*!< DAC status register, Address offset: 0x34 *)
  149. end;
  150. (**
  151. * @brief Debug MCU
  152. *)
  153. DBGMCU_TypeDef = record
  154. IDCODE: longword; (*!< MCU device ID code, Address offset: 0x00 *)
  155. CR: longword; (*!< Debug MCU configuration register, Address offset: 0x04 *)
  156. APB1FZ: longword; (*!< Debug MCU APB1 freeze register, Address offset: 0x08 *)
  157. APB2FZ: longword; (*!< Debug MCU APB2 freeze register, Address offset: 0x0C *)
  158. end;
  159. (**
  160. * @brief DCMI
  161. *)
  162. DCMI_TypeDef = record
  163. CR: longword; (*!< DCMI control register 1, Address offset: 0x00 *)
  164. SR: longword; (*!< DCMI status register, Address offset: 0x04 *)
  165. RISR: longword; (*!< DCMI raw interrupt status register, Address offset: 0x08 *)
  166. IER: longword; (*!< DCMI interrupt enable register, Address offset: 0x0C *)
  167. MISR: longword; (*!< DCMI masked interrupt status register, Address offset: 0x10 *)
  168. ICR: longword; (*!< DCMI interrupt clear register, Address offset: 0x14 *)
  169. ESCR: longword; (*!< DCMI embedded synchronization code register, Address offset: 0x18 *)
  170. ESUR: longword; (*!< DCMI embedded synchronization unmask register, Address offset: 0x1C *)
  171. CWSTRTR: longword; (*!< DCMI crop window start, Address offset: 0x20 *)
  172. CWSIZER: longword; (*!< DCMI crop window size, Address offset: 0x24 *)
  173. DR: longword; (*!< DCMI data register, Address offset: 0x28 *)
  174. end;
  175. (**
  176. * @brief DMA Controller
  177. *)
  178. DMA_Stream_TypeDef = record
  179. CR: longword; (*!< DMA stream x configuration register *)
  180. NDTR: longword; (*!< DMA stream x number of data register *)
  181. PAR: longword; (*!< DMA stream x peripheral address register *)
  182. M0AR: longword; (*!< DMA stream x memory 0 address register *)
  183. M1AR: longword; (*!< DMA stream x memory 1 address register *)
  184. FCR: longword; (*!< DMA stream x FIFO control register *)
  185. end;
  186. DMA_TypeDef = record
  187. LISR: longword; (*!< DMA low interrupt status register, Address offset: 0x00 *)
  188. HISR: longword; (*!< DMA high interrupt status register, Address offset: 0x04 *)
  189. LIFCR: longword; (*!< DMA low interrupt flag clear register, Address offset: 0x08 *)
  190. HIFCR: longword; (*!< DMA high interrupt flag clear register, Address offset: 0x0C *)
  191. end;
  192. (**
  193. * @brief DMA2D Controller
  194. *)
  195. DMA2D_TypeDef = record
  196. CR: longword; (*!< DMA2D Control Register, Address offset: 0x00 *)
  197. ISR: longword; (*!< DMA2D Interrupt Status Register, Address offset: 0x04 *)
  198. IFCR: longword; (*!< DMA2D Interrupt Flag Clear Register, Address offset: 0x08 *)
  199. FGMAR: longword; (*!< DMA2D Foreground Memory Address Register, Address offset: 0x0C *)
  200. FGOR: longword; (*!< DMA2D Foreground Offset Register, Address offset: 0x10 *)
  201. BGMAR: longword; (*!< DMA2D Background Memory Address Register, Address offset: 0x14 *)
  202. BGOR: longword; (*!< DMA2D Background Offset Register, Address offset: 0x18 *)
  203. FGPFCCR: longword; (*!< DMA2D Foreground PFC Control Register, Address offset: 0x1C *)
  204. FGCOLR: longword; (*!< DMA2D Foreground Color Register, Address offset: 0x20 *)
  205. BGPFCCR: longword; (*!< DMA2D Background PFC Control Register, Address offset: 0x24 *)
  206. BGCOLR: longword; (*!< DMA2D Background Color Register, Address offset: 0x28 *)
  207. FGCMAR: longword; (*!< DMA2D Foreground CLUT Memory Address Register, Address offset: 0x2C *)
  208. BGCMAR: longword; (*!< DMA2D Background CLUT Memory Address Register, Address offset: 0x30 *)
  209. OPFCCR: longword; (*!< DMA2D Output PFC Control Register, Address offset: 0x34 *)
  210. OCOLR: longword; (*!< DMA2D Output Color Register, Address offset: 0x38 *)
  211. OMAR: longword; (*!< DMA2D Output Memory Address Register, Address offset: 0x3C *)
  212. OOR: longword; (*!< DMA2D Output Offset Register, Address offset: 0x40 *)
  213. NLR: longword; (*!< DMA2D Number of Line Register, Address offset: 0x44 *)
  214. LWR: longword; (*!< DMA2D Line Watermark Register, Address offset: 0x48 *)
  215. AMTCR: longword; (*!< DMA2D AHB Master Timer Configuration Register, Address offset: 0x4C *)
  216. RESERVED: array [0..235] of longword; (*!< Reserved, 0x50-0x3FF *)
  217. FGCLUT: array [0..255] of longword; (*!< DMA2D Foreground CLUT, Address offset:400-7FF *)
  218. BGCLUT: array [0..255] of longword; (*!< DMA2D Background CLUT, Address offset:800-BFF *)
  219. end;
  220. (**
  221. * @brief Ethernet MAC
  222. *)
  223. ETH_TypeDef = record
  224. MACCR: longword;
  225. MACFFR: longword;
  226. MACHTHR: longword;
  227. MACHTLR: longword;
  228. MACMIIAR: longword;
  229. MACMIIDR: longword;
  230. MACFCR: longword;
  231. MACVLANTR: longword; (* 8 *)
  232. RESERVED0: array [0..1] of longword;
  233. MACRWUFFR: longword; (* 11 *)
  234. MACPMTCSR: longword;
  235. RESERVED1: array [0..1] of longword;
  236. MACSR: longword; (* 15 *)
  237. MACIMR: longword;
  238. MACA0HR: longword;
  239. MACA0LR: longword;
  240. MACA1HR: longword;
  241. MACA1LR: longword;
  242. MACA2HR: longword;
  243. MACA2LR: longword;
  244. MACA3HR: longword;
  245. MACA3LR: longword; (* 24 *)
  246. RESERVED2: array [0..39] of longword;
  247. MMCCR: longword; (* 65 *)
  248. MMCRIR: longword;
  249. MMCTIR: longword;
  250. MMCRIMR: longword;
  251. MMCTIMR: longword; (* 69 *)
  252. RESERVED3: array [0..13] of longword;
  253. MMCTGFSCCR: longword; (* 84 *)
  254. MMCTGFMSCCR: longword;
  255. RESERVED4: array [0..4] of longword;
  256. MMCTGFCR: longword;
  257. RESERVED5: array [0..9] of longword;
  258. MMCRFCECR: longword;
  259. MMCRFAECR: longword;
  260. RESERVED6: array [0..9] of longword;
  261. MMCRGUFCR: longword;
  262. RESERVED7: array [0..333] of longword;
  263. PTPTSCR: longword;
  264. PTPSSIR: longword;
  265. PTPTSHR: longword;
  266. PTPTSLR: longword;
  267. PTPTSHUR: longword;
  268. PTPTSLUR: longword;
  269. PTPTSAR: longword;
  270. PTPTTHR: longword;
  271. PTPTTLR: longword;
  272. RESERVED8: longword;
  273. PTPTSSR: longword;
  274. RESERVED9: array [0..564] of longword;
  275. DMABMR: longword;
  276. DMATPDR: longword;
  277. DMARPDR: longword;
  278. DMARDLAR: longword;
  279. DMATDLAR: longword;
  280. DMASR: longword;
  281. DMAOMR: longword;
  282. DMAIER: longword;
  283. DMAMFBOCR: longword;
  284. DMARSWTR: longword;
  285. RESERVED10: array [0..7] of longword;
  286. DMACHTDR: longword;
  287. DMACHRDR: longword;
  288. DMACHTBAR: longword;
  289. DMACHRBAR: longword;
  290. end;
  291. (**
  292. * @brief External Interrupt/Event Controller
  293. *)
  294. EXTI_TypeDef = record
  295. IMR: longword; (*!< EXTI Interrupt mask register, Address offset: 0x00 *)
  296. EMR: longword; (*!< EXTI Event mask register, Address offset: 0x04 *)
  297. RTSR: longword; (*!< EXTI Rising trigger selection register, Address offset: 0x08 *)
  298. FTSR: longword; (*!< EXTI Falling trigger selection register, Address offset: 0x0C *)
  299. SWIER: longword; (*!< EXTI Software interrupt event register, Address offset: 0x10 *)
  300. PR: longword; (*!< EXTI Pending register, Address offset: 0x14 *)
  301. end;
  302. (**
  303. * @brief FLASH Registers
  304. *)
  305. FLASH_TypeDef = record
  306. ACR: longword; (*!< FLASH access control register, Address offset: 0x00 *)
  307. KEYR: longword; (*!< FLASH key register, Address offset: 0x04 *)
  308. OPTKEYR: longword; (*!< FLASH option key register, Address offset: 0x08 *)
  309. SR: longword; (*!< FLASH status register, Address offset: 0x0C *)
  310. CR: longword; (*!< FLASH control register, Address offset: 0x10 *)
  311. OPTCR: longword; (*!< FLASH option control register , Address offset: 0x14 *)
  312. OPTCR1: longword; (*!< FLASH option control register 1 , Address offset: 0x18 *)
  313. end;
  314. (**
  315. * @brief Flexible Memory Controller
  316. *)
  317. FMC_Bank1_TypeDef = record
  318. BTCR: array [0..7] of longword; (*!< NOR/PSRAM chip-select control register(BCR) and chip-select timing register(BTR), Address offset: 0x00-1C *)
  319. end;
  320. (**
  321. * @brief Flexible Memory Controller Bank1E
  322. *)
  323. FMC_Bank1E_TypeDef = record
  324. BWTR: array [0..6] of longword; (*!< NOR/PSRAM write timing registers, Address offset: 0x104-0x11C *)
  325. end;
  326. (**
  327. * @brief Flexible Memory Controller Bank3
  328. *)
  329. FMC_Bank3_TypeDef = record
  330. PCR: longword; (*!< NAND Flash control register, Address offset: 0x80 *)
  331. SR: longword; (*!< NAND Flash FIFO status and interrupt register, Address offset: 0x84 *)
  332. PMEM: longword; (*!< NAND Flash Common memory space timing register, Address offset: 0x88 *)
  333. PATT: longword; (*!< NAND Flash Attribute memory space timing register, Address offset: 0x8C *)
  334. RESERVED0: longword; (*!< Reserved, 0x90 *)
  335. ECCR: longword; (*!< NAND Flash ECC result registers, Address offset: 0x94 *)
  336. end;
  337. (**
  338. * @brief Flexible Memory Controller Bank5_6
  339. *)
  340. FMC_Bank5_6_TypeDef = record
  341. SDCR: array [0..1] of longword; (*!< SDRAM Control registers , Address offset: 0x140-0x144 *)
  342. SDTR: array [0..1] of longword; (*!< SDRAM Timing registers , Address offset: 0x148-0x14C *)
  343. SDCMR: longword; (*!< SDRAM Command Mode register, Address offset: 0x150 *)
  344. SDRTR: longword; (*!< SDRAM Refresh Timer register, Address offset: 0x154 *)
  345. SDSR: longword; (*!< SDRAM Status register, Address offset: 0x158 *)
  346. end;
  347. (**
  348. * @brief General Purpose I/O
  349. *)
  350. GPIO_TypeDef = record
  351. MODER: longword; (*!< GPIO port mode register, Address offset: 0x00 *)
  352. OTYPER: longword; (*!< GPIO port output type register, Address offset: 0x04 *)
  353. OSPEEDR: longword; (*!< GPIO port output speed register, Address offset: 0x08 *)
  354. PUPDR: longword; (*!< GPIO port pull-up/pull-down register, Address offset: 0x0C *)
  355. IDR: longword; (*!< GPIO port input data register, Address offset: 0x10 *)
  356. ODR: longword; (*!< GPIO port output data register, Address offset: 0x14 *)
  357. BSRR: longword; (*!< GPIO port bit set/reset register, Address offset: 0x18 *)
  358. LCKR: longword; (*!< GPIO port configuration lock register, Address offset: 0x1C *)
  359. AFR: array [0..1] of longword; (*!< GPIO alternate function registers, Address offset: 0x20-0x24 *)
  360. end;
  361. (**
  362. * @brief System configuration controller
  363. *)
  364. SYSCFG_TypeDef = record
  365. MEMRMP: longword; (*!< SYSCFG memory remap register, Address offset: 0x00 *)
  366. PMC: longword; (*!< SYSCFG peripheral mode configuration register, Address offset: 0x04 *)
  367. EXTICR: array [0..3] of longword; (*!< SYSCFG external interrupt configuration registers, Address offset: 0x08-0x14 *)
  368. RESERVED: array [0..1] of longword; (*!< Reserved, 0x18-0x1C *)
  369. CMPCR: longword; (*!< SYSCFG Compensation cell control register, Address offset: 0x20 *)
  370. end;
  371. (**
  372. * @brief Inter-integrated Circuit Interface
  373. *)
  374. I2C_TypeDef = record
  375. CR1: longword; (*!< I2C Control register 1, Address offset: 0x00 *)
  376. CR2: longword; (*!< I2C Control register 2, Address offset: 0x04 *)
  377. OAR1: longword; (*!< I2C Own address 1 register, Address offset: 0x08 *)
  378. OAR2: longword; (*!< I2C Own address 2 register, Address offset: 0x0C *)
  379. TIMINGR: longword; (*!< I2C Timing register, Address offset: 0x10 *)
  380. TIMEOUTR: longword; (*!< I2C Timeout register, Address offset: 0x14 *)
  381. ISR: longword; (*!< I2C Interrupt and status register, Address offset: 0x18 *)
  382. ICR: longword; (*!< I2C Interrupt clear register, Address offset: 0x1C *)
  383. PECR: longword; (*!< I2C PEC register, Address offset: 0x20 *)
  384. RXDR: longword; (*!< I2C Receive data register, Address offset: 0x24 *)
  385. TXDR: longword; (*!< I2C Transmit data register, Address offset: 0x28 *)
  386. end;
  387. (**
  388. * @brief Independent WATCHDOG
  389. *)
  390. IWDG_TypeDef = record
  391. KR: longword; (*!< IWDG Key register, Address offset: 0x00 *)
  392. PR: longword; (*!< IWDG Prescaler register, Address offset: 0x04 *)
  393. RLR: longword; (*!< IWDG Reload register, Address offset: 0x08 *)
  394. SR: longword; (*!< IWDG Status register, Address offset: 0x0C *)
  395. WINR: longword; (*!< IWDG Window register, Address offset: 0x10 *)
  396. end;
  397. (**
  398. * @brief LCD-TFT Display Controller
  399. *)
  400. LTDC_TypeDef = record
  401. RESERVED0: array [0..1] of longword; (*!< Reserved, 0x00-0x04 *)
  402. SSCR: longword; (*!< LTDC Synchronization Size Configuration Register, Address offset: 0x08 *)
  403. BPCR: longword; (*!< LTDC Back Porch Configuration Register, Address offset: 0x0C *)
  404. AWCR: longword; (*!< LTDC Active Width Configuration Register, Address offset: 0x10 *)
  405. TWCR: longword; (*!< LTDC Total Width Configuration Register, Address offset: 0x14 *)
  406. GCR: longword; (*!< LTDC Global Control Register, Address offset: 0x18 *)
  407. RESERVED1: array [0..1] of longword; (*!< Reserved, 0x1C-0x20 *)
  408. SRCR: longword; (*!< LTDC Shadow Reload Configuration Register, Address offset: 0x24 *)
  409. RESERVED2: array [0..0] of longword; (*!< Reserved, 0x28 *)
  410. BCCR: longword; (*!< LTDC Background Color Configuration Register, Address offset: 0x2C *)
  411. RESERVED3: array [0..0] of longword; (*!< Reserved, 0x30 *)
  412. IER: longword; (*!< LTDC Interrupt Enable Register, Address offset: 0x34 *)
  413. ISR: longword; (*!< LTDC Interrupt Status Register, Address offset: 0x38 *)
  414. ICR: longword; (*!< LTDC Interrupt Clear Register, Address offset: 0x3C *)
  415. LIPCR: longword; (*!< LTDC Line Interrupt Position Configuration Register, Address offset: 0x40 *)
  416. CPSR: longword; (*!< LTDC Current Position Status Register, Address offset: 0x44 *)
  417. CDSR: longword; (*!< LTDC Current Display Status Register, Address offset: 0x48 *)
  418. end;
  419. (**
  420. * @brief LCD-TFT Display layer x Controller
  421. *)
  422. LTDC_Layer_TypeDef = record
  423. CR: longword; (*!< LTDC Layerx Control Register Address offset: 0x84 *)
  424. WHPCR: longword; (*!< LTDC Layerx Window Horizontal Position Configuration Register Address offset: 0x88 *)
  425. WVPCR: longword; (*!< LTDC Layerx Window Vertical Position Configuration Register Address offset: 0x8C *)
  426. CKCR: longword; (*!< LTDC Layerx Color Keying Configuration Register Address offset: 0x90 *)
  427. PFCR: longword; (*!< LTDC Layerx Pixel Format Configuration Register Address offset: 0x94 *)
  428. CACR: longword; (*!< LTDC Layerx Constant Alpha Configuration Register Address offset: 0x98 *)
  429. DCCR: longword; (*!< LTDC Layerx Default Color Configuration Register Address offset: 0x9C *)
  430. BFCR: longword; (*!< LTDC Layerx Blending Factors Configuration Register Address offset: 0xA0 *)
  431. RESERVED0: array [0..1] of longword; (*!< Reserved *)
  432. CFBAR: longword; (*!< LTDC Layerx Color Frame Buffer Address Register Address offset: 0xAC *)
  433. CFBLR: longword; (*!< LTDC Layerx Color Frame Buffer Length Register Address offset: 0xB0 *)
  434. CFBLNR: longword; (*!< LTDC Layerx ColorFrame Buffer Line Number Register Address offset: 0xB4 *)
  435. RESERVED1: array [0..2] of longword; (*!< Reserved *)
  436. CLUTWR: longword; (*!< LTDC Layerx CLUT Write Register Address offset: 0x144 *)
  437. end;
  438. (**
  439. * @brief Power Control
  440. *)
  441. PWR_TypeDef = record
  442. CR1: longword; (*!< PWR power control register 1, Address offset: 0x00 *)
  443. CSR1: longword; (*!< PWR power control/status register 2, Address offset: 0x04 *)
  444. CR2: longword; (*!< PWR power control register 2, Address offset: 0x08 *)
  445. CSR2: longword; (*!< PWR power control/status register 2, Address offset: 0x0C *)
  446. end;
  447. (**
  448. * @brief Reset and Clock Control
  449. *)
  450. RCC_TypeDef = record
  451. CR: longword; (*!< RCC clock control register, Address offset: 0x00 *)
  452. PLLCFGR: longword; (*!< RCC PLL configuration register, Address offset: 0x04 *)
  453. CFGR: longword; (*!< RCC clock configuration register, Address offset: 0x08 *)
  454. CIR: longword; (*!< RCC clock interrupt register, Address offset: 0x0C *)
  455. AHB1RSTR: longword; (*!< RCC AHB1 peripheral reset register, Address offset: 0x10 *)
  456. AHB2RSTR: longword; (*!< RCC AHB2 peripheral reset register, Address offset: 0x14 *)
  457. AHB3RSTR: longword; (*!< RCC AHB3 peripheral reset register, Address offset: 0x18 *)
  458. RESERVED0: longword; (*!< Reserved, 0x1C *)
  459. APB1RSTR: longword; (*!< RCC APB1 peripheral reset register, Address offset: 0x20 *)
  460. APB2RSTR: longword; (*!< RCC APB2 peripheral reset register, Address offset: 0x24 *)
  461. RESERVED1: array [0..1] of longword; (*!< Reserved, 0x28-0x2C *)
  462. AHB1ENR: longword; (*!< RCC AHB1 peripheral clock register, Address offset: 0x30 *)
  463. AHB2ENR: longword; (*!< RCC AHB2 peripheral clock register, Address offset: 0x34 *)
  464. AHB3ENR: longword; (*!< RCC AHB3 peripheral clock register, Address offset: 0x38 *)
  465. RESERVED2: longword; (*!< Reserved, 0x3C *)
  466. APB1ENR: longword; (*!< RCC APB1 peripheral clock enable register, Address offset: 0x40 *)
  467. APB2ENR: longword; (*!< RCC APB2 peripheral clock enable register, Address offset: 0x44 *)
  468. RESERVED3: array [0..1] of longword; (*!< Reserved, 0x48-0x4C *)
  469. AHB1LPENR: longword; (*!< RCC AHB1 peripheral clock enable in low power mode register, Address offset: 0x50 *)
  470. AHB2LPENR: longword; (*!< RCC AHB2 peripheral clock enable in low power mode register, Address offset: 0x54 *)
  471. AHB3LPENR: longword; (*!< RCC AHB3 peripheral clock enable in low power mode register, Address offset: 0x58 *)
  472. RESERVED4: longword; (*!< Reserved, 0x5C *)
  473. APB1LPENR: longword; (*!< RCC APB1 peripheral clock enable in low power mode register, Address offset: 0x60 *)
  474. APB2LPENR: longword; (*!< RCC APB2 peripheral clock enable in low power mode register, Address offset: 0x64 *)
  475. RESERVED5: array [0..1] of longword; (*!< Reserved, 0x68-0x6C *)
  476. BDCR: longword; (*!< RCC Backup domain control register, Address offset: 0x70 *)
  477. CSR: longword; (*!< RCC clock control & status register, Address offset: 0x74 *)
  478. RESERVED6: array [0..1] of longword; (*!< Reserved, 0x78-0x7C *)
  479. SSCGR: longword; (*!< RCC spread spectrum clock generation register, Address offset: 0x80 *)
  480. PLLI2SCFGR: longword; (*!< RCC PLLI2S configuration register, Address offset: 0x84 *)
  481. PLLSAICFGR: longword; (*!< RCC PLLSAI configuration register, Address offset: 0x88 *)
  482. DCKCFGR1: longword; (*!< RCC Dedicated Clocks configuration register1, Address offset: 0x8C *)
  483. DCKCFGR2: longword; (*!< RCC Dedicated Clocks configuration register 2, Address offset: 0x90 *)
  484. end;
  485. (**
  486. * @brief Real-Time Clock
  487. *)
  488. RTC_TypeDef = record
  489. TR: longword; (*!< RTC time register, Address offset: 0x00 *)
  490. DR: longword; (*!< RTC date register, Address offset: 0x04 *)
  491. CR: longword; (*!< RTC control register, Address offset: 0x08 *)
  492. ISR: longword; (*!< RTC initialization and status register, Address offset: 0x0C *)
  493. PRER: longword; (*!< RTC prescaler register, Address offset: 0x10 *)
  494. WUTR: longword; (*!< RTC wakeup timer register, Address offset: 0x14 *)
  495. reserved: longword; (*!< Reserved *)
  496. ALRMAR: longword; (*!< RTC alarm A register, Address offset: 0x1C *)
  497. ALRMBR: longword; (*!< RTC alarm B register, Address offset: 0x20 *)
  498. WPR: longword; (*!< RTC write protection register, Address offset: 0x24 *)
  499. SSR: longword; (*!< RTC sub second register, Address offset: 0x28 *)
  500. SHIFTR: longword; (*!< RTC shift control register, Address offset: 0x2C *)
  501. TSTR: longword; (*!< RTC time stamp time register, Address offset: 0x30 *)
  502. TSDR: longword; (*!< RTC time stamp date register, Address offset: 0x34 *)
  503. TSSSR: longword; (*!< RTC time-stamp sub second register, Address offset: 0x38 *)
  504. CALR: longword; (*!< RTC calibration register, Address offset: 0x3C *)
  505. TAMPCR: longword; (*!< RTC tamper configuration register, Address offset: 0x40 *)
  506. ALRMASSR: longword; (*!< RTC alarm A sub second register, Address offset: 0x44 *)
  507. ALRMBSSR: longword; (*!< RTC alarm B sub second register, Address offset: 0x48 *)
  508. OR_: longword; (*!< RTC option register, Address offset: 0x4C *)
  509. BKP0R: longword; (*!< RTC backup register 0, Address offset: 0x50 *)
  510. BKP1R: longword; (*!< RTC backup register 1, Address offset: 0x54 *)
  511. BKP2R: longword; (*!< RTC backup register 2, Address offset: 0x58 *)
  512. BKP3R: longword; (*!< RTC backup register 3, Address offset: 0x5C *)
  513. BKP4R: longword; (*!< RTC backup register 4, Address offset: 0x60 *)
  514. BKP5R: longword; (*!< RTC backup register 5, Address offset: 0x64 *)
  515. BKP6R: longword; (*!< RTC backup register 6, Address offset: 0x68 *)
  516. BKP7R: longword; (*!< RTC backup register 7, Address offset: 0x6C *)
  517. BKP8R: longword; (*!< RTC backup register 8, Address offset: 0x70 *)
  518. BKP9R: longword; (*!< RTC backup register 9, Address offset: 0x74 *)
  519. BKP10R: longword; (*!< RTC backup register 10, Address offset: 0x78 *)
  520. BKP11R: longword; (*!< RTC backup register 11, Address offset: 0x7C *)
  521. BKP12R: longword; (*!< RTC backup register 12, Address offset: 0x80 *)
  522. BKP13R: longword; (*!< RTC backup register 13, Address offset: 0x84 *)
  523. BKP14R: longword; (*!< RTC backup register 14, Address offset: 0x88 *)
  524. BKP15R: longword; (*!< RTC backup register 15, Address offset: 0x8C *)
  525. BKP16R: longword; (*!< RTC backup register 16, Address offset: 0x90 *)
  526. BKP17R: longword; (*!< RTC backup register 17, Address offset: 0x94 *)
  527. BKP18R: longword; (*!< RTC backup register 18, Address offset: 0x98 *)
  528. BKP19R: longword; (*!< RTC backup register 19, Address offset: 0x9C *)
  529. BKP20R: longword; (*!< RTC backup register 20, Address offset: 0xA0 *)
  530. BKP21R: longword; (*!< RTC backup register 21, Address offset: 0xA4 *)
  531. BKP22R: longword; (*!< RTC backup register 22, Address offset: 0xA8 *)
  532. BKP23R: longword; (*!< RTC backup register 23, Address offset: 0xAC *)
  533. BKP24R: longword; (*!< RTC backup register 24, Address offset: 0xB0 *)
  534. BKP25R: longword; (*!< RTC backup register 25, Address offset: 0xB4 *)
  535. BKP26R: longword; (*!< RTC backup register 26, Address offset: 0xB8 *)
  536. BKP27R: longword; (*!< RTC backup register 27, Address offset: 0xBC *)
  537. BKP28R: longword; (*!< RTC backup register 28, Address offset: 0xC0 *)
  538. BKP29R: longword; (*!< RTC backup register 29, Address offset: 0xC4 *)
  539. BKP30R: longword; (*!< RTC backup register 30, Address offset: 0xC8 *)
  540. BKP31R: longword; (*!< RTC backup register 31, Address offset: 0xCC *)
  541. end;
  542. (**
  543. * @brief Serial Audio Interface
  544. *)
  545. SAI_TypeDef = record
  546. GCR: longword; (*!< SAI global configuration register, Address offset: 0x00 *)
  547. end;
  548. SAI_Block_TypeDef = record
  549. CR1: longword; (*!< SAI block x configuration register 1, Address offset: 0x04 *)
  550. CR2: longword; (*!< SAI block x configuration register 2, Address offset: 0x08 *)
  551. FRCR: longword; (*!< SAI block x frame configuration register, Address offset: 0x0C *)
  552. SLOTR: longword; (*!< SAI block x slot register, Address offset: 0x10 *)
  553. IMR: longword; (*!< SAI block x interrupt mask register, Address offset: 0x14 *)
  554. SR: longword; (*!< SAI block x status register, Address offset: 0x18 *)
  555. CLRFR: longword; (*!< SAI block x clear flag register, Address offset: 0x1C *)
  556. DR: longword; (*!< SAI block x data register, Address offset: 0x20 *)
  557. end;
  558. (**
  559. * @brief SPDIF-RX Interface
  560. *)
  561. SPDIFRX_TypeDef = record
  562. CR: longword; (*!< Control register, Address offset: 0x00 *)
  563. IMR: longword; (*!< Interrupt mask register, Address offset: 0x04 *)
  564. SR: longword; (*!< Status register, Address offset: 0x08 *)
  565. IFCR: longword; (*!< Interrupt Flag Clear register, Address offset: 0x0C *)
  566. DR: longword; (*!< Data input register, Address offset: 0x10 *)
  567. CSR: longword; (*!< Channel Status register, Address offset: 0x14 *)
  568. DIR: longword; (*!< Debug Information register, Address offset: 0x18 *)
  569. end;
  570. (**
  571. * @brief SD host Interface
  572. *)
  573. SDMMC_TypeDef = record
  574. POWER: longword; (*!< SDMMC power control register, Address offset: 0x00 *)
  575. CLKCR: longword; (*!< SDMMClock control register, Address offset: 0x04 *)
  576. ARG: longword; (*!< SDMMC argument register, Address offset: 0x08 *)
  577. CMD: longword; (*!< SDMMC command register, Address offset: 0x0C *)
  578. RESPCMD: longword; (*!< SDMMC command response register, Address offset: 0x10 *)
  579. RESP1: longword; (*!< SDMMC response 1 register, Address offset: 0x14 *)
  580. RESP2: longword; (*!< SDMMC response 2 register, Address offset: 0x18 *)
  581. RESP3: longword; (*!< SDMMC response 3 register, Address offset: 0x1C *)
  582. RESP4: longword; (*!< SDMMC response 4 register, Address offset: 0x20 *)
  583. DTIMER: longword; (*!< SDMMC data timer register, Address offset: 0x24 *)
  584. DLEN: longword; (*!< SDMMC data length register, Address offset: 0x28 *)
  585. DCTRL: longword; (*!< SDMMC data control register, Address offset: 0x2C *)
  586. DCOUNT: longword; (*!< SDMMC data counter register, Address offset: 0x30 *)
  587. STA: longword; (*!< SDMMC status register, Address offset: 0x34 *)
  588. ICR: longword; (*!< SDMMC interrupt clear register, Address offset: 0x38 *)
  589. MASK: longword; (*!< SDMMC mask register, Address offset: 0x3C *)
  590. RESERVED0: array [0..1] of longword; (*!< Reserved, 0x40-0x44 *)
  591. FIFOCNT: longword; (*!< SDMMC FIFO counter register, Address offset: 0x48 *)
  592. RESERVED1: array [0..12] of longword; (*!< Reserved, 0x4C-0x7C *)
  593. FIFO: longword; (*!< SDMMC data FIFO register, Address offset: 0x80 *)
  594. end;
  595. (**
  596. * @brief Serial Peripheral Interface
  597. *)
  598. SPI_TypeDef = record
  599. CR1: longword; (*!< SPI control register 1 (not used in I2S mode), Address offset: 0x00 *)
  600. CR2: longword; (*!< SPI control register 2, Address offset: 0x04 *)
  601. SR: longword; (*!< SPI status register, Address offset: 0x08 *)
  602. DR: longword; (*!< SPI data register, Address offset: 0x0C *)
  603. CRCPR: longword; (*!< SPI CRC polynomial register (not used in I2S mode), Address offset: 0x10 *)
  604. RXCRCR: longword; (*!< SPI RX CRC register (not used in I2S mode), Address offset: 0x14 *)
  605. TXCRCR: longword; (*!< SPI TX CRC register (not used in I2S mode), Address offset: 0x18 *)
  606. I2SCFGR: longword; (*!< SPI_I2S configuration register, Address offset: 0x1C *)
  607. I2SPR: longword; (*!< SPI_I2S prescaler register, Address offset: 0x20 *)
  608. end;
  609. (**
  610. * @brief QUAD Serial Peripheral Interface
  611. *)
  612. QUADSPI_TypeDef = record
  613. CR: longword; (*!< QUADSPI Control register, Address offset: 0x00 *)
  614. DCR: longword; (*!< QUADSPI Device Configuration register, Address offset: 0x04 *)
  615. SR: longword; (*!< QUADSPI Status register, Address offset: 0x08 *)
  616. FCR: longword; (*!< QUADSPI Flag Clear register, Address offset: 0x0C *)
  617. DLR: longword; (*!< QUADSPI Data Length register, Address offset: 0x10 *)
  618. CCR: longword; (*!< QUADSPI Communication Configuration register, Address offset: 0x14 *)
  619. AR: longword; (*!< QUADSPI Address register, Address offset: 0x18 *)
  620. ABR: longword; (*!< QUADSPI Alternate Bytes register, Address offset: 0x1C *)
  621. DR: longword; (*!< QUADSPI Data register, Address offset: 0x20 *)
  622. PSMKR: longword; (*!< QUADSPI Polling Status Mask register, Address offset: 0x24 *)
  623. PSMAR: longword; (*!< QUADSPI Polling Status Match register, Address offset: 0x28 *)
  624. PIR: longword; (*!< QUADSPI Polling Interval register, Address offset: 0x2C *)
  625. LPTR: longword; (*!< QUADSPI Low Power Timeout register, Address offset: 0x30 *)
  626. end;
  627. (**
  628. * @brief TIM
  629. *)
  630. TIM_TypeDef = record
  631. CR1: longword; (*!< TIM control register 1, Address offset: 0x00 *)
  632. CR2: longword; (*!< TIM control register 2, Address offset: 0x04 *)
  633. SMCR: longword; (*!< TIM slave mode control register, Address offset: 0x08 *)
  634. DIER: longword; (*!< TIM DMA/interrupt enable register, Address offset: 0x0C *)
  635. SR: longword; (*!< TIM status register, Address offset: 0x10 *)
  636. EGR: longword; (*!< TIM event generation register, Address offset: 0x14 *)
  637. CCMR1: longword; (*!< TIM capture/compare mode register 1, Address offset: 0x18 *)
  638. CCMR2: longword; (*!< TIM capture/compare mode register 2, Address offset: 0x1C *)
  639. CCER: longword; (*!< TIM capture/compare enable register, Address offset: 0x20 *)
  640. CNT: longword; (*!< TIM counter register, Address offset: 0x24 *)
  641. PSC: longword; (*!< TIM prescaler, Address offset: 0x28 *)
  642. ARR: longword; (*!< TIM auto-reload register, Address offset: 0x2C *)
  643. RCR: longword; (*!< TIM repetition counter register, Address offset: 0x30 *)
  644. CCR1: longword; (*!< TIM capture/compare register 1, Address offset: 0x34 *)
  645. CCR2: longword; (*!< TIM capture/compare register 2, Address offset: 0x38 *)
  646. CCR3: longword; (*!< TIM capture/compare register 3, Address offset: 0x3C *)
  647. CCR4: longword; (*!< TIM capture/compare register 4, Address offset: 0x40 *)
  648. BDTR: longword; (*!< TIM break and dead-time register, Address offset: 0x44 *)
  649. DCR: longword; (*!< TIM DMA control register, Address offset: 0x48 *)
  650. DMAR: longword; (*!< TIM DMA address for full transfer, Address offset: 0x4C *)
  651. OR_: longword; (*!< TIM option register, Address offset: 0x50 *)
  652. CCMR3: longword; (*!< TIM capture/compare mode register 3, Address offset: 0x54 *)
  653. CCR5: longword; (*!< TIM capture/compare mode register5, Address offset: 0x58 *)
  654. CCR6: longword; (*!< TIM capture/compare mode register6, Address offset: 0x5C *)
  655. end;
  656. (**
  657. * @brief LPTIMIMER
  658. *)
  659. LPTIM_TypeDef = record
  660. ISR: longword; (*!< LPTIM Interrupt and Status register, Address offset: 0x00 *)
  661. ICR: longword; (*!< LPTIM Interrupt Clear register, Address offset: 0x04 *)
  662. IER: longword; (*!< LPTIM Interrupt Enable register, Address offset: 0x08 *)
  663. CFGR: longword; (*!< LPTIM Configuration register, Address offset: 0x0C *)
  664. CR: longword; (*!< LPTIM Control register, Address offset: 0x10 *)
  665. CMP: longword; (*!< LPTIM Compare register, Address offset: 0x14 *)
  666. ARR: longword; (*!< LPTIM Autoreload register, Address offset: 0x18 *)
  667. CNT: longword; (*!< LPTIM Counter register, Address offset: 0x1C *)
  668. OR_: longword; (*!< LPTIM Option register, Address offset: 0x20 *)
  669. end;
  670. (**
  671. * @brief Universal Synchronous Asynchronous Receiver Transmitter
  672. *)
  673. USART_TypeDef = record
  674. CR1: longword; (*!< USART Control register 1, Address offset: 0x00 *)
  675. CR2: longword; (*!< USART Control register 2, Address offset: 0x04 *)
  676. CR3: longword; (*!< USART Control register 3, Address offset: 0x08 *)
  677. BRR: longword; (*!< USART Baud rate register, Address offset: 0x0C *)
  678. GTPR: longword; (*!< USART Guard time and prescaler register, Address offset: 0x10 *)
  679. RTOR: longword; (*!< USART Receiver Time Out register, Address offset: 0x14 *)
  680. RQR: longword; (*!< USART Request register, Address offset: 0x18 *)
  681. ISR: longword; (*!< USART Interrupt and status register, Address offset: 0x1C *)
  682. ICR: longword; (*!< USART Interrupt flag Clear register, Address offset: 0x20 *)
  683. RDR: longword; (*!< USART Receive Data register, Address offset: 0x24 *)
  684. TDR: longword; (*!< USART Transmit Data register, Address offset: 0x28 *)
  685. end;
  686. (**
  687. * @brief Window WATCHDOG
  688. *)
  689. WWDG_TypeDef = record
  690. CR: longword; (*!< WWDG Control register, Address offset: 0x00 *)
  691. CFR: longword; (*!< WWDG Configuration register, Address offset: 0x04 *)
  692. SR: longword; (*!< WWDG Status register, Address offset: 0x08 *)
  693. end;
  694. (**
  695. * @brief Crypto Processor
  696. *)
  697. CRYP_TypeDef = record
  698. CR: longword; (*!< CRYP control register, Address offset: 0x00 *)
  699. SR: longword; (*!< CRYP status register, Address offset: 0x04 *)
  700. DR: longword; (*!< CRYP data input register, Address offset: 0x08 *)
  701. DOUT: longword; (*!< CRYP data output register, Address offset: 0x0C *)
  702. DMACR: longword; (*!< CRYP DMA control register, Address offset: 0x10 *)
  703. IMSCR: longword; (*!< CRYP interrupt mask set/clear register, Address offset: 0x14 *)
  704. RISR: longword; (*!< CRYP raw interrupt status register, Address offset: 0x18 *)
  705. MISR: longword; (*!< CRYP masked interrupt status register, Address offset: 0x1C *)
  706. K0LR: longword; (*!< CRYP key left register 0, Address offset: 0x20 *)
  707. K0RR: longword; (*!< CRYP key right register 0, Address offset: 0x24 *)
  708. K1LR: longword; (*!< CRYP key left register 1, Address offset: 0x28 *)
  709. K1RR: longword; (*!< CRYP key right register 1, Address offset: 0x2C *)
  710. K2LR: longword; (*!< CRYP key left register 2, Address offset: 0x30 *)
  711. K2RR: longword; (*!< CRYP key right register 2, Address offset: 0x34 *)
  712. K3LR: longword; (*!< CRYP key left register 3, Address offset: 0x38 *)
  713. K3RR: longword; (*!< CRYP key right register 3, Address offset: 0x3C *)
  714. IV0LR: longword; (*!< CRYP initialization vector left-word register 0, Address offset: 0x40 *)
  715. IV0RR: longword; (*!< CRYP initialization vector right-word register 0, Address offset: 0x44 *)
  716. IV1LR: longword; (*!< CRYP initialization vector left-word register 1, Address offset: 0x48 *)
  717. IV1RR: longword; (*!< CRYP initialization vector right-word register 1, Address offset: 0x4C *)
  718. CSGCMCCM0R: longword; (*!< CRYP GCM/GMAC or CCM/CMAC context swap register 0, Address offset: 0x50 *)
  719. CSGCMCCM1R: longword; (*!< CRYP GCM/GMAC or CCM/CMAC context swap register 1, Address offset: 0x54 *)
  720. CSGCMCCM2R: longword; (*!< CRYP GCM/GMAC or CCM/CMAC context swap register 2, Address offset: 0x58 *)
  721. CSGCMCCM3R: longword; (*!< CRYP GCM/GMAC or CCM/CMAC context swap register 3, Address offset: 0x5C *)
  722. CSGCMCCM4R: longword; (*!< CRYP GCM/GMAC or CCM/CMAC context swap register 4, Address offset: 0x60 *)
  723. CSGCMCCM5R: longword; (*!< CRYP GCM/GMAC or CCM/CMAC context swap register 5, Address offset: 0x64 *)
  724. CSGCMCCM6R: longword; (*!< CRYP GCM/GMAC or CCM/CMAC context swap register 6, Address offset: 0x68 *)
  725. CSGCMCCM7R: longword; (*!< CRYP GCM/GMAC or CCM/CMAC context swap register 7, Address offset: 0x6C *)
  726. CSGCM0R: longword; (*!< CRYP GCM/GMAC context swap register 0, Address offset: 0x70 *)
  727. CSGCM1R: longword; (*!< CRYP GCM/GMAC context swap register 1, Address offset: 0x74 *)
  728. CSGCM2R: longword; (*!< CRYP GCM/GMAC context swap register 2, Address offset: 0x78 *)
  729. CSGCM3R: longword; (*!< CRYP GCM/GMAC context swap register 3, Address offset: 0x7C *)
  730. CSGCM4R: longword; (*!< CRYP GCM/GMAC context swap register 4, Address offset: 0x80 *)
  731. CSGCM5R: longword; (*!< CRYP GCM/GMAC context swap register 5, Address offset: 0x84 *)
  732. CSGCM6R: longword; (*!< CRYP GCM/GMAC context swap register 6, Address offset: 0x88 *)
  733. CSGCM7R: longword; (*!< CRYP GCM/GMAC context swap register 7, Address offset: 0x8C *)
  734. end;
  735. (**
  736. * @brief HASH
  737. *)
  738. HASH_TypeDef = record
  739. CR: longword; (*!< HASH control register, Address offset: 0x00 *)
  740. DIN: longword; (*!< HASH data input register, Address offset: 0x04 *)
  741. STR: longword; (*!< HASH start register, Address offset: 0x08 *)
  742. HR: array [0..4] of longword; (*!< HASH digest registers, Address offset: 0x0C-0x1C *)
  743. IMR: longword; (*!< HASH interrupt enable register, Address offset: 0x20 *)
  744. SR: longword; (*!< HASH status register, Address offset: 0x24 *)
  745. RESERVED: array [0..51] of longword; (*!< Reserved, 0x28-0xF4 *)
  746. CSR: array [0..53] of longword; (*!< HASH context swap registers, Address offset: 0x0F8-0x1CC *)
  747. end;
  748. (**
  749. * @brief HASH_DIGEST
  750. *)
  751. HASH_DIGEST_TypeDef = record
  752. HR: array [0..7] of longword; (*!< HASH digest registers, Address offset: 0x310-0x32C *)
  753. end;
  754. (**
  755. * @brief RNG
  756. *)
  757. RNG_TypeDef = record
  758. CR: longword; (*!< RNG control register, Address offset: 0x00 *)
  759. SR: longword; (*!< RNG status register, Address offset: 0x04 *)
  760. DR: longword; (*!< RNG data register, Address offset: 0x08 *)
  761. end;
  762. (**
  763. * @}
  764. *)
  765. (**
  766. * @brief USB_OTG_Core_Registers
  767. *)
  768. USB_OTG_GlobalTypeDef = record
  769. GOTGCTL: longword; (*!< USB_OTG Control and Status Register 000h *)
  770. GOTGINT: longword; (*!< USB_OTG Interrupt Register 004h *)
  771. GAHBCFG: longword; (*!< Core AHB Configuration Register 008h *)
  772. GUSBCFG: longword; (*!< Core USB Configuration Register 00Ch *)
  773. GRSTCTL: longword; (*!< Core Reset Register 010h *)
  774. GINTSTS: longword; (*!< Core Interrupt Register 014h *)
  775. GINTMSK: longword; (*!< Core Interrupt Mask Register 018h *)
  776. GRXSTSR: longword; (*!< Receive Sts Q Read Register 01Ch *)
  777. GRXSTSP: longword; (*!< Receive Sts Q Read & POP Register 020h *)
  778. GRXFSIZ: longword; (*!< Receive FIFO Size Register 024h *)
  779. DIEPTXF0_HNPTXFSIZ: longword; (*!< EP0 / Non Periodic Tx FIFO Size Register 028h *)
  780. HNPTXSTS: longword; (*!< Non Periodic Tx FIFO/Queue Sts reg 02Ch *)
  781. Reserved30: array [0..1] of longword; (*!< Reserved 030h *)
  782. GCCFG: longword; (*!< General Purpose IO Register 038h *)
  783. CID: longword; (*!< User ID Register 03Ch *)
  784. Reserved5: array [0..2] of longword; (*!< Reserved 040h-048h *)
  785. GHWCFG3: longword; (*!< User HW config3 04Ch *)
  786. Reserved6: longword; (*!< Reserved 050h *)
  787. GLPMCFG: longword; (*!< LPM Register 054h *)
  788. GPWRDN: longword; (*!< Power Down Register 058h *)
  789. GDFIFOCFG: longword; (*!< DFIFO Software Config Register 05Ch *)
  790. GADPCTL: longword; (*!< ADP Timer, Control and Status Register 60Ch *)
  791. Reserved43: array [0..38] of longword; (*!< Reserved 058h-0FFh *)
  792. HPTXFSIZ: longword; (*!< Host Periodic Tx FIFO Size Reg 100h *)
  793. DIEPTXF: array [0..14] of longword; (*!< dev Periodic Transmit FIFO *)
  794. end;
  795. (**
  796. * @brief USB_OTG_device_Registers
  797. *)
  798. USB_OTG_DeviceTypeDef = record
  799. DCFG: longword; (*!< dev Configuration Register 800h *)
  800. DCTL: longword; (*!< dev Control Register 804h *)
  801. DSTS: longword; (*!< dev Status Register (RO) 808h *)
  802. Reserved0C: longword; (*!< Reserved 80Ch *)
  803. DIEPMSK: longword; (*!< dev IN Endpoint Mask 810h *)
  804. DOEPMSK: longword; (*!< dev OUT Endpoint Mask 814h *)
  805. DAINT: longword; (*!< dev All Endpoints Itr Reg 818h *)
  806. DAINTMSK: longword; (*!< dev All Endpoints Itr Mask 81Ch *)
  807. Reserved20: longword; (*!< Reserved 820h *)
  808. Reserved9: longword; (*!< Reserved 824h *)
  809. DVBUSDIS: longword; (*!< dev VBUS discharge Register 828h *)
  810. DVBUSPULSE: longword; (*!< dev VBUS Pulse Register 82Ch *)
  811. DTHRCTL: longword; (*!< dev threshold 830h *)
  812. DIEPEMPMSK: longword; (*!< dev empty msk 834h *)
  813. DEACHINT: longword; (*!< dedicated EP interrupt 838h *)
  814. DEACHMSK: longword; (*!< dedicated EP msk 83Ch *)
  815. Reserved40: longword; (*!< dedicated EP mask 840h *)
  816. DINEP1MSK: longword; (*!< dedicated EP mask 844h *)
  817. Reserved44: array [0..14] of longword; (*!< Reserved 844-87Ch *)
  818. DOUTEP1MSK: longword; (*!< dedicated EP msk 884h *)
  819. end;
  820. (**
  821. * @brief USB_OTG_IN_Endpoint-Specific_Register
  822. *)
  823. USB_OTG_INEndpointTypeDef = record
  824. DIEPCTL: longword; (*!< dev IN Endpoint Control Reg 900h + (ep_num * 20h) + 00h *)
  825. Reserved04: longword; (*!< Reserved 900h + (ep_num * 20h) + 04h *)
  826. DIEPINT: longword; (*!< dev IN Endpoint Itr Reg 900h + (ep_num * 20h) + 08h *)
  827. Reserved0C: longword; (*!< Reserved 900h + (ep_num * 20h) + 0Ch *)
  828. DIEPTSIZ: longword; (*!< IN Endpoint Txfer Size 900h + (ep_num * 20h) + 10h *)
  829. DIEPDMA: longword; (*!< IN Endpoint DMA Address Reg 900h + (ep_num * 20h) + 14h *)
  830. DTXFSTS: longword; (*!< IN Endpoint Tx FIFO Status Reg 900h + (ep_num * 20h) + 18h *)
  831. Reserved18: longword; (*!< Reserved 900h+(ep_num*20h)+1Ch-900h+ (ep_num * 20h) + 1Ch *)
  832. end;
  833. (**
  834. * @brief USB_OTG_OUT_Endpoint-Specific_Registers
  835. *)
  836. USB_OTG_OUTEndpointTypeDef = record
  837. DOEPCTL: longword; (*!< dev OUT Endpoint Control Reg B00h + (ep_num * 20h) + 00h *)
  838. Reserved04: longword; (*!< Reserved B00h + (ep_num * 20h) + 04h *)
  839. DOEPINT: longword; (*!< dev OUT Endpoint Itr Reg B00h + (ep_num * 20h) + 08h *)
  840. Reserved0C: longword; (*!< Reserved B00h + (ep_num * 20h) + 0Ch *)
  841. DOEPTSIZ: longword; (*!< dev OUT Endpoint Txfer Size B00h + (ep_num * 20h) + 10h *)
  842. DOEPDMA: longword; (*!< dev OUT Endpoint DMA Address B00h + (ep_num * 20h) + 14h *)
  843. Reserved18: array [0..1] of longword; (*!< Reserved B00h + (ep_num * 20h) + 18h - B00h + (ep_num * 20h) + 1Ch *)
  844. end;
  845. (**
  846. * @brief USB_OTG_Host_Mode_Register_Structures
  847. *)
  848. USB_OTG_HostTypeDef = record
  849. HCFG: longword; (*!< Host Configuration Register 400h *)
  850. HFIR: longword; (*!< Host Frame Interval Register 404h *)
  851. HFNUM: longword; (*!< Host Frame Nbr/Frame Remaining 408h *)
  852. Reserved40C: longword; (*!< Reserved 40Ch *)
  853. HPTXSTS: longword; (*!< Host Periodic Tx FIFO/ Queue Status 410h *)
  854. HAINT: longword; (*!< Host All Channels Interrupt Register 414h *)
  855. HAINTMSK: longword; (*!< Host All Channels Interrupt Mask 418h *)
  856. end;
  857. (**
  858. * @brief USB_OTG_Host_Channel_Specific_Registers
  859. *)
  860. USB_OTG_HostChannelTypeDef = record
  861. HCCHAR: longword; (*!< Host Channel Characteristics Register 500h *)
  862. HCSPLT: longword; (*!< Host Channel Split Control Register 504h *)
  863. HCINT: longword; (*!< Host Channel Interrupt Register 508h *)
  864. HCINTMSK: longword; (*!< Host Channel Interrupt Mask Register 50Ch *)
  865. HCTSIZ: longword; (*!< Host Channel Transfer Size Register 510h *)
  866. HCDMA: longword; (*!< Host Channel DMA Address Register 514h *)
  867. Reserved: array [0..1] of longword; (*!< Reserved *)
  868. end;
  869. (**
  870. * @}
  871. *)
  872. (** @addtogroup Peripheral_memory_map
  873. * @{
  874. *)
  875. const
  876. RAMITCM_BASE = $00000000; (*!< Base address of :16KB RAM reserved for CPU execution/instruction accessible over ITCM *)
  877. FLASHITCM_BASE = $00200000; (*!< Base address of :(up to 1 MB) embedded FLASH memory accessible over ITCM *)
  878. FLASHAXI_BASE = $08000000; (*!< Base address of : (up to 1 MB) embedded FLASH memory accessible over AXI *)
  879. RAMDTCM_BASE = $20000000; (*!< Base address of : 64KB system data RAM accessible over DTCM *)
  880. SRAM1_BASE = $20010000; (*!< Base address of : 240KB RAM1 accessible over AXI/AHB *)
  881. SRAM2_BASE = $2004C000; (*!< Base address of : 16KB RAM2 accessible over AXI/AHB *)
  882. PERIPH_BASE = $40000000; (*!< Base address of : AHB/ABP Peripherals *)
  883. BKPSRAM_BASE = $40024000; (*!< Base address of : Backup SRAM(4 KB) *)
  884. QSPI_BASE = $90000000; (*!< Base address of : QSPI memories accessible over AXI *)
  885. FMC_R_BASE = $A0000000; (*!< Base address of : FMC Control registers *)
  886. QSPI_R_BASE = $A0001000; (*!< Base address of : QSPI Control registers *)
  887. FLASH_END = $080FFFFF; (*!< FLASH end address *)
  888. (* Legacy define *)
  889. FLASH_BASE = FLASHAXI_BASE;
  890. (*!< Peripheral memory map *)
  891. APB1PERIPH_BASE = PERIPH_BASE;
  892. APB2PERIPH_BASE = (PERIPH_BASE + $00010000);
  893. AHB1PERIPH_BASE = (PERIPH_BASE + $00020000);
  894. AHB2PERIPH_BASE = (PERIPH_BASE + $10000000);
  895. (*!< APB1 peripherals *)
  896. TIM2_BASE = (APB1PERIPH_BASE + $0000);
  897. TIM3_BASE = (APB1PERIPH_BASE + $0400);
  898. TIM4_BASE = (APB1PERIPH_BASE + $0800);
  899. TIM5_BASE = (APB1PERIPH_BASE + $0C00);
  900. TIM6_BASE = (APB1PERIPH_BASE + $1000);
  901. TIM7_BASE = (APB1PERIPH_BASE + $1400);
  902. TIM12_BASE = (APB1PERIPH_BASE + $1800);
  903. TIM13_BASE = (APB1PERIPH_BASE + $1C00);
  904. TIM14_BASE = (APB1PERIPH_BASE + $2000);
  905. LPTIM1_BASE = (APB1PERIPH_BASE + $2400);
  906. RTC_BASE = (APB1PERIPH_BASE + $2800);
  907. WWDG_BASE = (APB1PERIPH_BASE + $2C00);
  908. IWDG_BASE = (APB1PERIPH_BASE + $3000);
  909. SPI2_BASE = (APB1PERIPH_BASE + $3800);
  910. SPI3_BASE = (APB1PERIPH_BASE + $3C00);
  911. SPDIFRX_BASE = (APB1PERIPH_BASE + $4000);
  912. USART2_BASE = (APB1PERIPH_BASE + $4400);
  913. USART3_BASE = (APB1PERIPH_BASE + $4800);
  914. UART4_BASE = (APB1PERIPH_BASE + $4C00);
  915. UART5_BASE = (APB1PERIPH_BASE + $5000);
  916. I2C1_BASE = (APB1PERIPH_BASE + $5400);
  917. I2C2_BASE = (APB1PERIPH_BASE + $5800);
  918. I2C3_BASE = (APB1PERIPH_BASE + $5C00);
  919. I2C4_BASE = (APB1PERIPH_BASE + $6000);
  920. CAN1_BASE = (APB1PERIPH_BASE + $6400);
  921. CAN2_BASE = (APB1PERIPH_BASE + $6800);
  922. CEC_BASE = (APB1PERIPH_BASE + $6C00);
  923. PWR_BASE = (APB1PERIPH_BASE + $7000);
  924. DAC_BASE = (APB1PERIPH_BASE + $7400);
  925. UART7_BASE = (APB1PERIPH_BASE + $7800);
  926. UART8_BASE = (APB1PERIPH_BASE + $7C00);
  927. (*!< APB2 peripherals *)
  928. TIM1_BASE = (APB2PERIPH_BASE + $0000);
  929. TIM8_BASE = (APB2PERIPH_BASE + $0400);
  930. USART1_BASE = (APB2PERIPH_BASE + $1000);
  931. USART6_BASE = (APB2PERIPH_BASE + $1400);
  932. ADC1_BASE = (APB2PERIPH_BASE + $2000);
  933. ADC2_BASE = (APB2PERIPH_BASE + $2100);
  934. ADC3_BASE = (APB2PERIPH_BASE + $2200);
  935. ADC_BASE = (APB2PERIPH_BASE + $2300);
  936. SDMMC1_BASE = (APB2PERIPH_BASE + $2C00);
  937. SPI1_BASE = (APB2PERIPH_BASE + $3000);
  938. SPI4_BASE = (APB2PERIPH_BASE + $3400);
  939. SYSCFG_BASE = (APB2PERIPH_BASE + $3800);
  940. EXTI_BASE = (APB2PERIPH_BASE + $3C00);
  941. TIM9_BASE = (APB2PERIPH_BASE + $4000);
  942. TIM10_BASE = (APB2PERIPH_BASE + $4400);
  943. TIM11_BASE = (APB2PERIPH_BASE + $4800);
  944. SPI5_BASE = (APB2PERIPH_BASE + $5000);
  945. SPI6_BASE = (APB2PERIPH_BASE + $5400);
  946. SAI1_BASE = (APB2PERIPH_BASE + $5800);
  947. SAI2_BASE = (APB2PERIPH_BASE + $5C00);
  948. SAI1_Block_A_BASE = (SAI1_BASE + $004);
  949. SAI1_Block_B_BASE = (SAI1_BASE + $024);
  950. SAI2_Block_A_BASE = (SAI2_BASE + $004);
  951. SAI2_Block_B_BASE = (SAI2_BASE + $024);
  952. LTDC_BASE = (APB2PERIPH_BASE + $6800);
  953. LTDC_Layer1_BASE = (LTDC_BASE + $84);
  954. LTDC_Layer2_BASE = (LTDC_BASE + $104);
  955. (*!< AHB1 peripherals *)
  956. GPIOA_BASE = (AHB1PERIPH_BASE + $0000);
  957. GPIOB_BASE = (AHB1PERIPH_BASE + $0400);
  958. GPIOC_BASE = (AHB1PERIPH_BASE + $0800);
  959. GPIOD_BASE = (AHB1PERIPH_BASE + $0C00);
  960. GPIOE_BASE = (AHB1PERIPH_BASE + $1000);
  961. GPIOF_BASE = (AHB1PERIPH_BASE + $1400);
  962. GPIOG_BASE = (AHB1PERIPH_BASE + $1800);
  963. GPIOH_BASE = (AHB1PERIPH_BASE + $1C00);
  964. GPIOI_BASE = (AHB1PERIPH_BASE + $2000);
  965. GPIOJ_BASE = (AHB1PERIPH_BASE + $2400);
  966. GPIOK_BASE = (AHB1PERIPH_BASE + $2800);
  967. CRC_BASE = (AHB1PERIPH_BASE + $3000);
  968. RCC_BASE = (AHB1PERIPH_BASE + $3800);
  969. FLASH_R_BASE = (AHB1PERIPH_BASE + $3C00);
  970. DMA1_BASE = (AHB1PERIPH_BASE + $6000);
  971. DMA1_Stream0_BASE = (DMA1_BASE + $010);
  972. DMA1_Stream1_BASE = (DMA1_BASE + $028);
  973. DMA1_Stream2_BASE = (DMA1_BASE + $040);
  974. DMA1_Stream3_BASE = (DMA1_BASE + $058);
  975. DMA1_Stream4_BASE = (DMA1_BASE + $070);
  976. DMA1_Stream5_BASE = (DMA1_BASE + $088);
  977. DMA1_Stream6_BASE = (DMA1_BASE + $0A0);
  978. DMA1_Stream7_BASE = (DMA1_BASE + $0B8);
  979. DMA2_BASE = (AHB1PERIPH_BASE + $6400);
  980. DMA2_Stream0_BASE = (DMA2_BASE + $010);
  981. DMA2_Stream1_BASE = (DMA2_BASE + $028);
  982. DMA2_Stream2_BASE = (DMA2_BASE + $040);
  983. DMA2_Stream3_BASE = (DMA2_BASE + $058);
  984. DMA2_Stream4_BASE = (DMA2_BASE + $070);
  985. DMA2_Stream5_BASE = (DMA2_BASE + $088);
  986. DMA2_Stream6_BASE = (DMA2_BASE + $0A0);
  987. DMA2_Stream7_BASE = (DMA2_BASE + $0B8);
  988. ETH_BASE = (AHB1PERIPH_BASE + $8000);
  989. ETH_MAC_BASE = (ETH_BASE);
  990. ETH_MMC_BASE = (ETH_BASE + $0100);
  991. ETH_PTP_BASE = (ETH_BASE + $0700);
  992. ETH_DMA_BASE = (ETH_BASE + $1000);
  993. DMA2D_BASE = (AHB1PERIPH_BASE + $B000);
  994. (*!< AHB2 peripherals *)
  995. DCMI_BASE = (AHB2PERIPH_BASE + $50000);
  996. CRYP_BASE = (AHB2PERIPH_BASE + $60000);
  997. HASH_BASE = (AHB2PERIPH_BASE + $60400);
  998. HASH_DIGEST_BASE = (AHB2PERIPH_BASE + $60710);
  999. RNG_BASE = (AHB2PERIPH_BASE + $60800);
  1000. (*!< FMC Bankx registers base address *)
  1001. FMC_Bank1_R_BASE = (FMC_R_BASE + $0000);
  1002. FMC_Bank1E_R_BASE = (FMC_R_BASE + $0104);
  1003. FMC_Bank3_R_BASE = (FMC_R_BASE + $0080);
  1004. FMC_Bank5_6_R_BASE = (FMC_R_BASE + $0140);
  1005. (* Debug MCU registers base address *)
  1006. DBGMCU_BASE = $E0042000;
  1007. (*!< USB registers base address *)
  1008. USB_OTG_HS_PERIPH_BASE = $40040000;
  1009. USB_OTG_FS_PERIPH_BASE = $50000000;
  1010. USB_OTG_GLOBAL_BASE = $000;
  1011. USB_OTG_DEVICE_BASE = $800;
  1012. USB_OTG_IN_ENDPOINT_BASE = $900;
  1013. USB_OTG_OUT_ENDPOINT_BASE = $B00;
  1014. USB_OTG_EP_REG_SIZE = $20;
  1015. USB_OTG_HOST_BASE = $400;
  1016. USB_OTG_HOST_PORT_BASE = $440;
  1017. USB_OTG_HOST_CHANNEL_BASE = $500;
  1018. USB_OTG_HOST_CHANNEL_SIZE = $20;
  1019. USB_OTG_PCGCCTL_BASE = $E00;
  1020. USB_OTG_FIFO_BASE = $1000;
  1021. USB_OTG_FIFO_SIZE = $1000;
  1022. var
  1023. TIM2: TIM_TypeDef absolute TIM2_BASE;
  1024. TIM3: TIM_TypeDef absolute TIM3_BASE;
  1025. TIM4: TIM_TypeDef absolute TIM4_BASE;
  1026. TIM5: TIM_TypeDef absolute TIM5_BASE;
  1027. TIM6: TIM_TypeDef absolute TIM6_BASE;
  1028. TIM7: TIM_TypeDef absolute TIM7_BASE;
  1029. TIM12: TIM_TypeDef absolute TIM12_BASE;
  1030. TIM13: TIM_TypeDef absolute TIM13_BASE;
  1031. TIM14: TIM_TypeDef absolute TIM14_BASE;
  1032. LPTIM1: LPTIM_TypeDef absolute LPTIM1_BASE;
  1033. RTC: RTC_TypeDef absolute RTC_BASE;
  1034. WWDG: WWDG_TypeDef absolute WWDG_BASE;
  1035. IWDG: IWDG_TypeDef absolute IWDG_BASE;
  1036. SPI2: SPI_TypeDef absolute SPI2_BASE;
  1037. SPI3: SPI_TypeDef absolute SPI3_BASE;
  1038. SPDIFRX: SPDIFRX_TypeDef absolute SPDIFRX_BASE;
  1039. USART2: USART_TypeDef absolute USART2_BASE;
  1040. USART3: USART_TypeDef absolute USART3_BASE;
  1041. UART4: USART_TypeDef absolute UART4_BASE;
  1042. UART5: USART_TypeDef absolute UART5_BASE;
  1043. I2C1: I2C_TypeDef absolute I2C1_BASE;
  1044. I2C2: I2C_TypeDef absolute I2C2_BASE;
  1045. I2C3: I2C_TypeDef absolute I2C3_BASE;
  1046. I2C4: I2C_TypeDef absolute I2C4_BASE;
  1047. CAN1: CAN_TypeDef absolute CAN1_BASE;
  1048. CAN2: CAN_TypeDef absolute CAN2_BASE;
  1049. CEC: CEC_TypeDef absolute CEC_BASE;
  1050. PWR: PWR_TypeDef absolute PWR_BASE;
  1051. DAC: DAC_TypeDef absolute DAC_BASE;
  1052. UART7: USART_TypeDef absolute UART7_BASE;
  1053. UART8: USART_TypeDef absolute UART8_BASE;
  1054. TIM1: TIM_TypeDef absolute TIM1_BASE;
  1055. TIM8: TIM_TypeDef absolute TIM8_BASE;
  1056. USART1: USART_TypeDef absolute USART1_BASE;
  1057. USART6: USART_TypeDef absolute USART6_BASE;
  1058. ADC: ADC_Common_TypeDef absolute ADC_BASE;
  1059. ADC1: ADC_TypeDef absolute ADC1_BASE;
  1060. ADC2: ADC_TypeDef absolute ADC2_BASE;
  1061. ADC3: ADC_TypeDef absolute ADC3_BASE;
  1062. SDMMC1: SDMMC_TypeDef absolute SDMMC1_BASE;
  1063. SPI1: SPI_TypeDef absolute SPI1_BASE;
  1064. SPI4: SPI_TypeDef absolute SPI4_BASE;
  1065. SYSCFG: SYSCFG_TypeDef absolute SYSCFG_BASE;
  1066. EXTI: EXTI_TypeDef absolute EXTI_BASE;
  1067. TIM9: TIM_TypeDef absolute TIM9_BASE;
  1068. TIM10: TIM_TypeDef absolute TIM10_BASE;
  1069. TIM11: TIM_TypeDef absolute TIM11_BASE;
  1070. SPI5: SPI_TypeDef absolute SPI5_BASE;
  1071. SPI6: SPI_TypeDef absolute SPI6_BASE;
  1072. SAI1: SAI_TypeDef absolute SAI1_BASE;
  1073. SAI2: SAI_TypeDef absolute SAI2_BASE;
  1074. SAI1_Block_A: SAI_Block_TypeDef absolute SAI1_Block_A_BASE;
  1075. SAI1_Block_B: SAI_Block_TypeDef absolute SAI1_Block_B_BASE;
  1076. SAI2_Block_A: SAI_Block_TypeDef absolute SAI2_Block_A_BASE;
  1077. SAI2_Block_B: SAI_Block_TypeDef absolute SAI2_Block_B_BASE;
  1078. LTDC: LTDC_TypeDef absolute LTDC_BASE;
  1079. LTDC_Layer1: LTDC_Layer_TypeDef absolute LTDC_Layer1_BASE;
  1080. LTDC_Layer2: LTDC_Layer_TypeDef absolute LTDC_Layer2_BASE;
  1081. GPIOA: GPIO_TypeDef absolute GPIOA_BASE;
  1082. GPIOB: GPIO_TypeDef absolute GPIOB_BASE;
  1083. GPIOC: GPIO_TypeDef absolute GPIOC_BASE;
  1084. GPIOD: GPIO_TypeDef absolute GPIOD_BASE;
  1085. GPIOE: GPIO_TypeDef absolute GPIOE_BASE;
  1086. GPIOF: GPIO_TypeDef absolute GPIOF_BASE;
  1087. GPIOG: GPIO_TypeDef absolute GPIOG_BASE;
  1088. GPIOH: GPIO_TypeDef absolute GPIOH_BASE;
  1089. GPIOI: GPIO_TypeDef absolute GPIOI_BASE;
  1090. GPIOJ: GPIO_TypeDef absolute GPIOJ_BASE;
  1091. GPIOK: GPIO_TypeDef absolute GPIOK_BASE;
  1092. CRC: CRC_TypeDef absolute CRC_BASE;
  1093. RCC: RCC_TypeDef absolute RCC_BASE;
  1094. FLASH: FLASH_TypeDef absolute FLASH_R_BASE;
  1095. DMA1: DMA_TypeDef absolute DMA1_BASE;
  1096. DMA1_Stream0: DMA_Stream_TypeDef absolute DMA1_Stream0_BASE;
  1097. DMA1_Stream1: DMA_Stream_TypeDef absolute DMA1_Stream1_BASE;
  1098. DMA1_Stream2: DMA_Stream_TypeDef absolute DMA1_Stream2_BASE;
  1099. DMA1_Stream3: DMA_Stream_TypeDef absolute DMA1_Stream3_BASE;
  1100. DMA1_Stream4: DMA_Stream_TypeDef absolute DMA1_Stream4_BASE;
  1101. DMA1_Stream5: DMA_Stream_TypeDef absolute DMA1_Stream5_BASE;
  1102. DMA1_Stream6: DMA_Stream_TypeDef absolute DMA1_Stream6_BASE;
  1103. DMA1_Stream7: DMA_Stream_TypeDef absolute DMA1_Stream7_BASE;
  1104. DMA2: DMA_TypeDef absolute DMA2_BASE;
  1105. DMA2_Stream0: DMA_Stream_TypeDef absolute DMA2_Stream0_BASE;
  1106. DMA2_Stream1: DMA_Stream_TypeDef absolute DMA2_Stream1_BASE;
  1107. DMA2_Stream2: DMA_Stream_TypeDef absolute DMA2_Stream2_BASE;
  1108. DMA2_Stream3: DMA_Stream_TypeDef absolute DMA2_Stream3_BASE;
  1109. DMA2_Stream4: DMA_Stream_TypeDef absolute DMA2_Stream4_BASE;
  1110. DMA2_Stream5: DMA_Stream_TypeDef absolute DMA2_Stream5_BASE;
  1111. DMA2_Stream6: DMA_Stream_TypeDef absolute DMA2_Stream6_BASE;
  1112. DMA2_Stream7: DMA_Stream_TypeDef absolute DMA2_Stream7_BASE;
  1113. ETH: ETH_TypeDef absolute ETH_BASE;
  1114. DMA2D: DMA2D_TypeDef absolute DMA2D_BASE;
  1115. DCMI: DCMI_TypeDef absolute DCMI_BASE;
  1116. CRYP: CRYP_TypeDef absolute CRYP_BASE;
  1117. HASH: HASH_TypeDef absolute HASH_BASE;
  1118. HASH_DIGEST: HASH_DIGEST_TypeDef absolute HASH_DIGEST_BASE;
  1119. RNG: RNG_TypeDef absolute RNG_BASE;
  1120. FMC_Bank1: FMC_Bank1_TypeDef absolute FMC_Bank1_R_BASE;
  1121. FMC_Bank1E: FMC_Bank1E_TypeDef absolute FMC_Bank1E_R_BASE;
  1122. FMC_Bank3: FMC_Bank3_TypeDef absolute FMC_Bank3_R_BASE;
  1123. FMC_Bank5_6: FMC_Bank5_6_TypeDef absolute FMC_Bank5_6_R_BASE;
  1124. QUADSPI: QUADSPI_TypeDef absolute QSPI_R_BASE;
  1125. DBGMCU: DBGMCU_TypeDef absolute DBGMCU_BASE;
  1126. USB_OTG_FS: USB_OTG_GlobalTypeDef absolute USB_OTG_FS_PERIPH_BASE;
  1127. USB_OTG_HS: USB_OTG_GlobalTypeDef absolute USB_OTG_HS_PERIPH_BASE;
  1128. implementation
  1129. procedure NMI_Interrupt; external name 'NMI_Interrupt';
  1130. procedure HardFault_Interrupt; external name 'HardFault_Interrupt';
  1131. procedure MemManage_Interrupt; external name 'MemManage_Interrupt';
  1132. procedure BusFault_Interrupt; external name 'BusFault_Interrupt';
  1133. procedure UsageFault_Interrupt; external name 'UsageFault_Interrupt';
  1134. procedure SVC_Interrupt; external name 'SVC_Interrupt';
  1135. procedure DebugMon_Interrupt; external name 'DebugMon_Interrupt';
  1136. procedure PendSV_Interrupt; external name 'PendSV_Interrupt';
  1137. procedure SysTick_Interrupt; external name 'SysTick_Interrupt';
  1138. procedure WWDG_Interrupt; external name 'WWDG_Interrupt';
  1139. procedure PVD_Interrupt; external name 'PVD_Interrupt';
  1140. procedure TAMP_STAMP_Interrupt; external name 'TAMP_STAMP_Interrupt';
  1141. procedure RTC_WKUP_Interrupt; external name 'RTC_WKUP_Interrupt';
  1142. procedure FLASH_Interrupt; external name 'FLASH_Interrupt';
  1143. procedure RCC_Interrupt; external name 'RCC_Interrupt';
  1144. procedure EXTI0_Interrupt; external name 'EXTI0_Interrupt';
  1145. procedure EXTI1_Interrupt; external name 'EXTI1_Interrupt';
  1146. procedure EXTI2_Interrupt; external name 'EXTI2_Interrupt';
  1147. procedure EXTI3_Interrupt; external name 'EXTI3_Interrupt';
  1148. procedure EXTI4_Interrupt; external name 'EXTI4_Interrupt';
  1149. procedure DMA1_Stream0_Interrupt; external name 'DMA1_Stream0_Interrupt';
  1150. procedure DMA1_Stream1_Interrupt; external name 'DMA1_Stream1_Interrupt';
  1151. procedure DMA1_Stream2_Interrupt; external name 'DMA1_Stream2_Interrupt';
  1152. procedure DMA1_Stream3_Interrupt; external name 'DMA1_Stream3_Interrupt';
  1153. procedure DMA1_Stream4_Interrupt; external name 'DMA1_Stream4_Interrupt';
  1154. procedure DMA1_Stream5_Interrupt; external name 'DMA1_Stream5_Interrupt';
  1155. procedure DMA1_Stream6_Interrupt; external name 'DMA1_Stream6_Interrupt';
  1156. procedure ADC_Interrupt; external name 'ADC_Interrupt';
  1157. procedure CAN1_TX_Interrupt; external name 'CAN1_TX_Interrupt';
  1158. procedure CAN1_RX0_Interrupt; external name 'CAN1_RX0_Interrupt';
  1159. procedure CAN1_RX1_Interrupt; external name 'CAN1_RX1_Interrupt';
  1160. procedure CAN1_SCE_Interrupt; external name 'CAN1_SCE_Interrupt';
  1161. procedure EXTI9_5_Interrupt; external name 'EXTI9_5_Interrupt';
  1162. procedure TIM1_BRK_TIM9_Interrupt; external name 'TIM1_BRK_TIM9_Interrupt';
  1163. procedure TIM1_UP_TIM10_Interrupt; external name 'TIM1_UP_TIM10_Interrupt';
  1164. procedure TIM1_TRG_COM_TIM11_Interrupt; external name 'TIM1_TRG_COM_TIM11_Interrupt';
  1165. procedure TIM1_CC_Interrupt; external name 'TIM1_CC_Interrupt';
  1166. procedure TIM2_Interrupt; external name 'TIM2_Interrupt';
  1167. procedure TIM3_Interrupt; external name 'TIM3_Interrupt';
  1168. procedure TIM4_Interrupt; external name 'TIM4_Interrupt';
  1169. procedure I2C1_EV_Interrupt; external name 'I2C1_EV_Interrupt';
  1170. procedure I2C1_ER_Interrupt; external name 'I2C1_ER_Interrupt';
  1171. procedure I2C2_EV_Interrupt; external name 'I2C2_EV_Interrupt';
  1172. procedure I2C2_ER_Interrupt; external name 'I2C2_ER_Interrupt';
  1173. procedure SPI1_Interrupt; external name 'SPI1_Interrupt';
  1174. procedure SPI2_Interrupt; external name 'SPI2_Interrupt';
  1175. procedure USART1_Interrupt; external name 'USART1_Interrupt';
  1176. procedure USART2_Interrupt; external name 'USART2_Interrupt';
  1177. procedure USART3_Interrupt; external name 'USART3_Interrupt';
  1178. procedure EXTI15_10_Interrupt; external name 'EXTI15_10_Interrupt';
  1179. procedure RTC_Alarm_Interrupt; external name 'RTC_Alarm_Interrupt';
  1180. procedure OTG_FS_WKUP_Interrupt; external name 'OTG_FS_WKUP_Interrupt';
  1181. procedure TIM8_BRK_TIM12_Interrupt; external name 'TIM8_BRK_TIM12_Interrupt';
  1182. procedure TIM8_UP_TIM13_Interrupt; external name 'TIM8_UP_TIM13_Interrupt';
  1183. procedure TIM8_TRG_COM_TIM14_Interrupt; external name 'TIM8_TRG_COM_TIM14_Interrupt';
  1184. procedure TIM8_CC_Interrupt; external name 'TIM8_CC_Interrupt';
  1185. procedure DMA1_Stream7_Interrupt; external name 'DMA1_Stream7_Interrupt';
  1186. procedure FMC_Interrupt; external name 'FMC_Interrupt';
  1187. procedure SDMMC1_Interrupt; external name 'SDMMC1_Interrupt';
  1188. procedure TIM5_Interrupt; external name 'TIM5_Interrupt';
  1189. procedure SPI3_Interrupt; external name 'SPI3_Interrupt';
  1190. procedure UART4_Interrupt; external name 'UART4_Interrupt';
  1191. procedure UART5_Interrupt; external name 'UART5_Interrupt';
  1192. procedure TIM6_DAC_Interrupt; external name 'TIM6_DAC_Interrupt';
  1193. procedure TIM7_Interrupt; external name 'TIM7_Interrupt';
  1194. procedure DMA2_Stream0_Interrupt; external name 'DMA2_Stream0_Interrupt';
  1195. procedure DMA2_Stream1_Interrupt; external name 'DMA2_Stream1_Interrupt';
  1196. procedure DMA2_Stream2_Interrupt; external name 'DMA2_Stream2_Interrupt';
  1197. procedure DMA2_Stream3_Interrupt; external name 'DMA2_Stream3_Interrupt';
  1198. procedure DMA2_Stream4_Interrupt; external name 'DMA2_Stream4_Interrupt';
  1199. procedure ETH_Interrupt; external name 'ETH_Interrupt';
  1200. procedure ETH_WKUP_Interrupt; external name 'ETH_WKUP_Interrupt';
  1201. procedure CAN2_TX_Interrupt; external name 'CAN2_TX_Interrupt';
  1202. procedure CAN2_RX0_Interrupt; external name 'CAN2_RX0_Interrupt';
  1203. procedure CAN2_RX1_Interrupt; external name 'CAN2_RX1_Interrupt';
  1204. procedure CAN2_SCE_Interrupt; external name 'CAN2_SCE_Interrupt';
  1205. procedure OTG_FS_Interrupt; external name 'OTG_FS_Interrupt';
  1206. procedure DMA2_Stream5_Interrupt; external name 'DMA2_Stream5_Interrupt';
  1207. procedure DMA2_Stream6_Interrupt; external name 'DMA2_Stream6_Interrupt';
  1208. procedure DMA2_Stream7_Interrupt; external name 'DMA2_Stream7_Interrupt';
  1209. procedure USART6_Interrupt; external name 'USART6_Interrupt';
  1210. procedure I2C3_EV_Interrupt; external name 'I2C3_EV_Interrupt';
  1211. procedure I2C3_ER_Interrupt; external name 'I2C3_ER_Interrupt';
  1212. procedure OTG_HS_EP1_OUT_Interrupt; external name 'OTG_HS_EP1_OUT_Interrupt';
  1213. procedure OTG_HS_EP1_IN_Interrupt; external name 'OTG_HS_EP1_IN_Interrupt';
  1214. procedure OTG_HS_WKUP_Interrupt; external name 'OTG_HS_WKUP_Interrupt';
  1215. procedure OTG_HS_Interrupt; external name 'OTG_HS_Interrupt';
  1216. procedure DCMI_Interrupt; external name 'DCMI_Interrupt';
  1217. procedure CRYP_Interrupt; external name 'CRYP_Interrupt';
  1218. procedure HASH_RNG_Interrupt; external name 'HASH_RNG_Interrupt';
  1219. procedure FPU_Interrupt; external name 'FPU_Interrupt';
  1220. procedure UART7_Interrupt; external name 'UART7_Interrupt';
  1221. procedure UART8_Interrupt; external name 'UART8_Interrupt';
  1222. procedure SPI4_Interrupt; external name 'SPI4_Interrupt';
  1223. procedure SPI5_Interrupt; external name 'SPI5_Interrupt';
  1224. procedure SPI6_Interrupt; external name 'SPI6_Interrupt';
  1225. procedure SAI1_Interrupt; external name 'SAI1_Interrupt';
  1226. procedure LTDC_Interrupt; external name 'LTDC_Interrupt';
  1227. procedure LTDC_ER_Interrupt; external name 'LTDC_ER_Interrupt';
  1228. procedure DMA2D_Interrupt; external name 'DMA2D_Interrupt';
  1229. procedure SAI2_Interrupt; external name 'SAI2_Interrupt';
  1230. procedure QUADSPI_Interrupt; external name 'QUADSPI_Interrupt';
  1231. procedure LPTIM1_Interrupt; external name 'LPTIM1_Interrupt';
  1232. procedure CEC_Interrupt; external name 'CEC_Interrupt';
  1233. procedure I2C4_EV_Interrupt; external name 'I2C4_EV_Interrupt';
  1234. procedure I2C4_ER_Interrupt; external name 'I2C4_ER_Interrupt';
  1235. procedure SPDIF_RX_Interrupt; external name 'SPDIF_RX_Interrupt';
  1236. {$i cortexm4f_start.inc}
  1237. procedure Vectors; assembler; nostackframe;
  1238. label interrupt_vectors;
  1239. asm
  1240. .section ".init.interrupt_vectors"
  1241. interrupt_vectors:
  1242. .long _stack_top
  1243. .long Startup
  1244. .long NMI_Interrupt
  1245. .long HardFault_Interrupt
  1246. .long MemManage_Interrupt
  1247. .long BusFault_Interrupt
  1248. .long UsageFault_Interrupt
  1249. .long 0
  1250. .long 0
  1251. .long 0
  1252. .long 0
  1253. .long SVC_Interrupt
  1254. .long DebugMon_Interrupt
  1255. .long 0
  1256. .long PendSV_Interrupt
  1257. .long SysTick_Interrupt
  1258. (* External Interrupts *)
  1259. .long WWDG_Interrupt
  1260. .long PVD_Interrupt
  1261. .long TAMP_STAMP_Interrupt
  1262. .long RTC_WKUP_Interrupt
  1263. .long FLASH_Interrupt
  1264. .long RCC_Interrupt
  1265. .long EXTI0_Interrupt
  1266. .long EXTI1_Interrupt
  1267. .long EXTI2_Interrupt
  1268. .long EXTI3_Interrupt
  1269. .long EXTI4_Interrupt
  1270. .long DMA1_Stream0_Interrupt
  1271. .long DMA1_Stream1_Interrupt
  1272. .long DMA1_Stream2_Interrupt
  1273. .long DMA1_Stream3_Interrupt
  1274. .long DMA1_Stream4_Interrupt
  1275. .long DMA1_Stream5_Interrupt
  1276. .long DMA1_Stream6_Interrupt
  1277. .long ADC_Interrupt
  1278. .long CAN1_TX_Interrupt
  1279. .long CAN1_RX0_Interrupt
  1280. .long CAN1_RX1_Interrupt
  1281. .long CAN1_SCE_Interrupt
  1282. .long EXTI9_5_Interrupt
  1283. .long TIM1_BRK_TIM9_Interrupt
  1284. .long TIM1_UP_TIM10_Interrupt
  1285. .long TIM1_TRG_COM_TIM11_Interrupt
  1286. .long TIM1_CC_Interrupt
  1287. .long TIM2_Interrupt
  1288. .long TIM3_Interrupt
  1289. .long TIM4_Interrupt
  1290. .long I2C1_EV_Interrupt
  1291. .long I2C1_ER_Interrupt
  1292. .long I2C2_EV_Interrupt
  1293. .long I2C2_ER_Interrupt
  1294. .long SPI1_Interrupt
  1295. .long SPI2_Interrupt
  1296. .long USART1_Interrupt
  1297. .long USART2_Interrupt
  1298. .long USART3_Interrupt
  1299. .long EXTI15_10_Interrupt
  1300. .long RTC_Alarm_Interrupt
  1301. .long OTG_FS_WKUP_Interrupt
  1302. .long TIM8_BRK_TIM12_Interrupt
  1303. .long TIM8_UP_TIM13_Interrupt
  1304. .long TIM8_TRG_COM_TIM14_Interrupt
  1305. .long TIM8_CC_Interrupt
  1306. .long DMA1_Stream7_Interrupt
  1307. .long FMC_Interrupt
  1308. .long SDMMC1_Interrupt
  1309. .long TIM5_Interrupt
  1310. .long SPI3_Interrupt
  1311. .long UART4_Interrupt
  1312. .long UART5_Interrupt
  1313. .long TIM6_DAC_Interrupt
  1314. .long TIM7_Interrupt
  1315. .long DMA2_Stream0_Interrupt
  1316. .long DMA2_Stream1_Interrupt
  1317. .long DMA2_Stream2_Interrupt
  1318. .long DMA2_Stream3_Interrupt
  1319. .long DMA2_Stream4_Interrupt
  1320. .long ETH_Interrupt
  1321. .long ETH_WKUP_Interrupt
  1322. .long CAN2_TX_Interrupt
  1323. .long CAN2_RX0_Interrupt
  1324. .long CAN2_RX1_Interrupt
  1325. .long CAN2_SCE_Interrupt
  1326. .long OTG_FS_Interrupt
  1327. .long DMA2_Stream5_Interrupt
  1328. .long DMA2_Stream6_Interrupt
  1329. .long DMA2_Stream7_Interrupt
  1330. .long USART6_Interrupt
  1331. .long I2C3_EV_Interrupt
  1332. .long I2C3_ER_Interrupt
  1333. .long OTG_HS_EP1_OUT_Interrupt
  1334. .long OTG_HS_EP1_IN_Interrupt
  1335. .long OTG_HS_WKUP_Interrupt
  1336. .long OTG_HS_Interrupt
  1337. .long DCMI_Interrupt
  1338. .long CRYP_Interrupt
  1339. .long HASH_RNG_Interrupt
  1340. .long FPU_Interrupt
  1341. .long UART7_Interrupt
  1342. .long UART8_Interrupt
  1343. .long SPI4_Interrupt
  1344. .long SPI5_Interrupt
  1345. .long SPI6_Interrupt
  1346. .long SAI1_Interrupt
  1347. .long LTDC_Interrupt
  1348. .long LTDC_ER_Interrupt
  1349. .long DMA2D_Interrupt
  1350. .long SAI2_Interrupt
  1351. .long QUADSPI_Interrupt
  1352. .long LPTIM1_Interrupt
  1353. .long CEC_Interrupt
  1354. .long I2C4_EV_Interrupt
  1355. .long I2C4_ER_Interrupt
  1356. .long SPDIF_RX_Interrupt
  1357. .weak NMI_Interrupt
  1358. .weak HardFault_Interrupt
  1359. .weak MemManage_Interrupt
  1360. .weak BusFault_Interrupt
  1361. .weak UsageFault_Interrupt
  1362. .weak SVC_Interrupt
  1363. .weak DebugMon_Interrupt
  1364. .weak PendSV_Interrupt
  1365. .weak SysTick_Interrupt
  1366. .weak WWDG_Interrupt
  1367. .weak PVD_Interrupt
  1368. .weak TAMP_STAMP_Interrupt
  1369. .weak RTC_WKUP_Interrupt
  1370. .weak FLASH_Interrupt
  1371. .weak RCC_Interrupt
  1372. .weak EXTI0_Interrupt
  1373. .weak EXTI1_Interrupt
  1374. .weak EXTI2_Interrupt
  1375. .weak EXTI3_Interrupt
  1376. .weak EXTI4_Interrupt
  1377. .weak DMA1_Stream0_Interrupt
  1378. .weak DMA1_Stream1_Interrupt
  1379. .weak DMA1_Stream2_Interrupt
  1380. .weak DMA1_Stream3_Interrupt
  1381. .weak DMA1_Stream4_Interrupt
  1382. .weak DMA1_Stream5_Interrupt
  1383. .weak DMA1_Stream6_Interrupt
  1384. .weak ADC_Interrupt
  1385. .weak CAN1_TX_Interrupt
  1386. .weak CAN1_RX0_Interrupt
  1387. .weak CAN1_RX1_Interrupt
  1388. .weak CAN1_SCE_Interrupt
  1389. .weak EXTI9_5_Interrupt
  1390. .weak TIM1_BRK_TIM9_Interrupt
  1391. .weak TIM1_UP_TIM10_Interrupt
  1392. .weak TIM1_TRG_COM_TIM11_Interrupt
  1393. .weak TIM1_CC_Interrupt
  1394. .weak TIM2_Interrupt
  1395. .weak TIM3_Interrupt
  1396. .weak TIM4_Interrupt
  1397. .weak I2C1_EV_Interrupt
  1398. .weak I2C1_ER_Interrupt
  1399. .weak I2C2_EV_Interrupt
  1400. .weak I2C2_ER_Interrupt
  1401. .weak SPI1_Interrupt
  1402. .weak SPI2_Interrupt
  1403. .weak USART1_Interrupt
  1404. .weak USART2_Interrupt
  1405. .weak USART3_Interrupt
  1406. .weak EXTI15_10_Interrupt
  1407. .weak RTC_Alarm_Interrupt
  1408. .weak OTG_FS_WKUP_Interrupt
  1409. .weak TIM8_BRK_TIM12_Interrupt
  1410. .weak TIM8_UP_TIM13_Interrupt
  1411. .weak TIM8_TRG_COM_TIM14_Interrupt
  1412. .weak TIM8_CC_Interrupt
  1413. .weak DMA1_Stream7_Interrupt
  1414. .weak FMC_Interrupt
  1415. .weak SDMMC1_Interrupt
  1416. .weak TIM5_Interrupt
  1417. .weak SPI3_Interrupt
  1418. .weak UART4_Interrupt
  1419. .weak UART5_Interrupt
  1420. .weak TIM6_DAC_Interrupt
  1421. .weak TIM7_Interrupt
  1422. .weak DMA2_Stream0_Interrupt
  1423. .weak DMA2_Stream1_Interrupt
  1424. .weak DMA2_Stream2_Interrupt
  1425. .weak DMA2_Stream3_Interrupt
  1426. .weak DMA2_Stream4_Interrupt
  1427. .weak ETH_Interrupt
  1428. .weak ETH_WKUP_Interrupt
  1429. .weak CAN2_TX_Interrupt
  1430. .weak CAN2_RX0_Interrupt
  1431. .weak CAN2_RX1_Interrupt
  1432. .weak CAN2_SCE_Interrupt
  1433. .weak OTG_FS_Interrupt
  1434. .weak DMA2_Stream5_Interrupt
  1435. .weak DMA2_Stream6_Interrupt
  1436. .weak DMA2_Stream7_Interrupt
  1437. .weak USART6_Interrupt
  1438. .weak I2C3_EV_Interrupt
  1439. .weak I2C3_ER_Interrupt
  1440. .weak OTG_HS_EP1_OUT_Interrupt
  1441. .weak OTG_HS_EP1_IN_Interrupt
  1442. .weak OTG_HS_WKUP_Interrupt
  1443. .weak OTG_HS_Interrupt
  1444. .weak DCMI_Interrupt
  1445. .weak CRYP_Interrupt
  1446. .weak HASH_RNG_Interrupt
  1447. .weak FPU_Interrupt
  1448. .weak UART7_Interrupt
  1449. .weak UART8_Interrupt
  1450. .weak SPI4_Interrupt
  1451. .weak SPI5_Interrupt
  1452. .weak SPI6_Interrupt
  1453. .weak SAI1_Interrupt
  1454. .weak LTDC_Interrupt
  1455. .weak LTDC_ER_Interrupt
  1456. .weak DMA2D_Interrupt
  1457. .weak SAI2_Interrupt
  1458. .weak QUADSPI_Interrupt
  1459. .weak LPTIM1_Interrupt
  1460. .weak CEC_Interrupt
  1461. .weak I2C4_EV_Interrupt
  1462. .weak I2C4_ER_Interrupt
  1463. .weak SPDIF_RX_Interrupt
  1464. .set NMI_Interrupt, HaltProc
  1465. .set HardFault_Interrupt, HaltProc
  1466. .set MemManage_Interrupt, HaltProc
  1467. .set BusFault_Interrupt, HaltProc
  1468. .set UsageFault_Interrupt, HaltProc
  1469. .set SVC_Interrupt, HaltProc
  1470. .set DebugMon_Interrupt, HaltProc
  1471. .set PendSV_Interrupt, HaltProc
  1472. .set SysTick_Interrupt, HaltProc
  1473. .set WWDG_Interrupt, HaltProc
  1474. .set PVD_Interrupt, HaltProc
  1475. .set TAMP_STAMP_Interrupt, HaltProc
  1476. .set RTC_WKUP_Interrupt, HaltProc
  1477. .set FLASH_Interrupt, HaltProc
  1478. .set RCC_Interrupt, HaltProc
  1479. .set EXTI0_Interrupt, HaltProc
  1480. .set EXTI1_Interrupt, HaltProc
  1481. .set EXTI2_Interrupt, HaltProc
  1482. .set EXTI3_Interrupt, HaltProc
  1483. .set EXTI4_Interrupt, HaltProc
  1484. .set DMA1_Stream0_Interrupt, HaltProc
  1485. .set DMA1_Stream1_Interrupt, HaltProc
  1486. .set DMA1_Stream2_Interrupt, HaltProc
  1487. .set DMA1_Stream3_Interrupt, HaltProc
  1488. .set DMA1_Stream4_Interrupt, HaltProc
  1489. .set DMA1_Stream5_Interrupt, HaltProc
  1490. .set DMA1_Stream6_Interrupt, HaltProc
  1491. .set ADC_Interrupt, HaltProc
  1492. .set CAN1_TX_Interrupt, HaltProc
  1493. .set CAN1_RX0_Interrupt, HaltProc
  1494. .set CAN1_RX1_Interrupt, HaltProc
  1495. .set CAN1_SCE_Interrupt, HaltProc
  1496. .set EXTI9_5_Interrupt, HaltProc
  1497. .set TIM1_BRK_TIM9_Interrupt, HaltProc
  1498. .set TIM1_UP_TIM10_Interrupt, HaltProc
  1499. .set TIM1_TRG_COM_TIM11_Interrupt, HaltProc
  1500. .set TIM1_CC_Interrupt, HaltProc
  1501. .set TIM2_Interrupt, HaltProc
  1502. .set TIM3_Interrupt, HaltProc
  1503. .set TIM4_Interrupt, HaltProc
  1504. .set I2C1_EV_Interrupt, HaltProc
  1505. .set I2C1_ER_Interrupt, HaltProc
  1506. .set I2C2_EV_Interrupt, HaltProc
  1507. .set I2C2_ER_Interrupt, HaltProc
  1508. .set SPI1_Interrupt, HaltProc
  1509. .set SPI2_Interrupt, HaltProc
  1510. .set USART1_Interrupt, HaltProc
  1511. .set USART2_Interrupt, HaltProc
  1512. .set USART3_Interrupt, HaltProc
  1513. .set EXTI15_10_Interrupt, HaltProc
  1514. .set RTC_Alarm_Interrupt, HaltProc
  1515. .set OTG_FS_WKUP_Interrupt, HaltProc
  1516. .set TIM8_BRK_TIM12_Interrupt, HaltProc
  1517. .set TIM8_UP_TIM13_Interrupt, HaltProc
  1518. .set TIM8_TRG_COM_TIM14_Interrupt, HaltProc
  1519. .set TIM8_CC_Interrupt, HaltProc
  1520. .set DMA1_Stream7_Interrupt, HaltProc
  1521. .set FMC_Interrupt, HaltProc
  1522. .set SDMMC1_Interrupt, HaltProc
  1523. .set TIM5_Interrupt, HaltProc
  1524. .set SPI3_Interrupt, HaltProc
  1525. .set UART4_Interrupt, HaltProc
  1526. .set UART5_Interrupt, HaltProc
  1527. .set TIM6_DAC_Interrupt, HaltProc
  1528. .set TIM7_Interrupt, HaltProc
  1529. .set DMA2_Stream0_Interrupt, HaltProc
  1530. .set DMA2_Stream1_Interrupt, HaltProc
  1531. .set DMA2_Stream2_Interrupt, HaltProc
  1532. .set DMA2_Stream3_Interrupt, HaltProc
  1533. .set DMA2_Stream4_Interrupt, HaltProc
  1534. .set ETH_Interrupt, HaltProc
  1535. .set ETH_WKUP_Interrupt, HaltProc
  1536. .set CAN2_TX_Interrupt, HaltProc
  1537. .set CAN2_RX0_Interrupt, HaltProc
  1538. .set CAN2_RX1_Interrupt, HaltProc
  1539. .set CAN2_SCE_Interrupt, HaltProc
  1540. .set OTG_FS_Interrupt, HaltProc
  1541. .set DMA2_Stream5_Interrupt, HaltProc
  1542. .set DMA2_Stream6_Interrupt, HaltProc
  1543. .set DMA2_Stream7_Interrupt, HaltProc
  1544. .set USART6_Interrupt, HaltProc
  1545. .set I2C3_EV_Interrupt, HaltProc
  1546. .set I2C3_ER_Interrupt, HaltProc
  1547. .set OTG_HS_EP1_OUT_Interrupt, HaltProc
  1548. .set OTG_HS_EP1_IN_Interrupt, HaltProc
  1549. .set OTG_HS_WKUP_Interrupt, HaltProc
  1550. .set OTG_HS_Interrupt, HaltProc
  1551. .set DCMI_Interrupt, HaltProc
  1552. .set CRYP_Interrupt, HaltProc
  1553. .set HASH_RNG_Interrupt, HaltProc
  1554. .set FPU_Interrupt, HaltProc
  1555. .set UART7_Interrupt, HaltProc
  1556. .set UART8_Interrupt, HaltProc
  1557. .set SPI4_Interrupt, HaltProc
  1558. .set SPI5_Interrupt, HaltProc
  1559. .set SPI6_Interrupt, HaltProc
  1560. .set SAI1_Interrupt, HaltProc
  1561. .set LTDC_Interrupt, HaltProc
  1562. .set LTDC_ER_Interrupt, HaltProc
  1563. .set DMA2D_Interrupt, HaltProc
  1564. .set SAI2_Interrupt, HaltProc
  1565. .set QUADSPI_Interrupt, HaltProc
  1566. .set LPTIM1_Interrupt, HaltProc
  1567. .set CEC_Interrupt, HaltProc
  1568. .set I2C4_EV_Interrupt, HaltProc
  1569. .set I2C4_ER_Interrupt, HaltProc
  1570. .set SPDIF_RX_Interrupt, HaltProc
  1571. .text
  1572. end;
  1573. end.