stm32f745.pp 78 KB

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