stm32f429xx.pp 70 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427
  1. {$IFNDEF FPC_DOTTEDUNITS}
  2. unit stm32f429xx;
  3. {$ENDIF FPC_DOTTEDUNITS}
  4. interface
  5. {$PACKRECORDS 2}
  6. {$GOTO ON}
  7. {$MODESWITCH ADVANCEDRECORDS}
  8. // *
  9. // ******************************************************************************
  10. // * @file stm32f429xx.h
  11. // * @author MCD Application Team
  12. // * @version V2.4.0
  13. // * @date 14-August-2015
  14. // CMSIS STM32F429xx Device Peripheral Access Layer Header File.
  15. // *
  16. // * This file contains:
  17. // * - Data structures and the address mapping for all peripherals
  18. // * - Peripheral's registers declarations and bits definition
  19. // * - Macros to access peripheral’s registers hardware
  20. // *
  21. // ******************************************************************************
  22. // * @attention
  23. // *
  24. // * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
  25. // *
  26. // * Redistribution and use in source and binary forms, with or without modification,
  27. // * are permitted provided that the following conditions are met:
  28. // * 1. Redistributions of source code must retain the above copyright notice,
  29. // * this list of conditions and the following disclaimer.
  30. // * 2. Redistributions in binary form must reproduce the above copyright notice,
  31. // * this list of conditions and the following disclaimer in the documentation
  32. // * and/or other materials provided with the distribution.
  33. // * 3. Neither the name of STMicroelectronics nor the names of its contributors
  34. // * may be used to endorse or promote products derived from this software
  35. // * without specific prior written permission.
  36. // *
  37. // * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  38. // * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  39. // * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  40. // * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  41. // * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  42. // * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  43. // * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  44. // * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  45. // * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  46. // * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  47. // *
  48. // ******************************************************************************
  49. // Configuration of the Cortex-M4 Processor and Core Peripherals
  50. // STM32F4XX Interrupt Number Definition, according to the selected device
  51. // * in @ref Library_configuration_section
  52. type
  53. TIRQn_Enum = (
  54. NonMaskableInt_IRQn = -14, // 2 Non Maskable Interrupt
  55. MemoryManagement_IRQn = -12, // 4 Cortex-M4 Memory Management Interrupt
  56. BusFault_IRQn = -11, // 5 Cortex-M4 Bus Fault Interrupt
  57. UsageFault_IRQn = -10, // 6 Cortex-M4 Usage Fault Interrupt
  58. SVCall_IRQn = -5, // 11 Cortex-M4 SV Call Interrupt
  59. DebugMonitor_IRQn = -4, // 12 Cortex-M4 Debug Monitor Interrupt
  60. PendSV_IRQn = -2, // 14 Cortex-M4 Pend SV Interrupt
  61. SysTick_IRQn = -1, // 15 Cortex-M4 System Tick Interrupt
  62. WWDG_IRQn = 0, // Window WatchDog Interrupt
  63. PVD_IRQn = 1, // PVD through EXTI Line detection Interrupt
  64. TAMP_STAMP_IRQn = 2, // Tamper and TimeStamp interrupts through the EXTI line
  65. RTC_WKUP_IRQn = 3, // RTC Wakeup interrupt through the EXTI line
  66. FLASH_IRQn = 4, // FLASH global Interrupt
  67. RCC_IRQn = 5, // RCC global Interrupt
  68. EXTI0_IRQn = 6, // EXTI Line0 Interrupt
  69. EXTI1_IRQn = 7, // EXTI Line1 Interrupt
  70. EXTI2_IRQn = 8, // EXTI Line2 Interrupt
  71. EXTI3_IRQn = 9, // EXTI Line3 Interrupt
  72. EXTI4_IRQn = 10, // EXTI Line4 Interrupt
  73. DMA1_Stream0_IRQn = 11, // DMA1 Stream 0 global Interrupt
  74. DMA1_Stream1_IRQn = 12, // DMA1 Stream 1 global Interrupt
  75. DMA1_Stream2_IRQn = 13, // DMA1 Stream 2 global Interrupt
  76. DMA1_Stream3_IRQn = 14, // DMA1 Stream 3 global Interrupt
  77. DMA1_Stream4_IRQn = 15, // DMA1 Stream 4 global Interrupt
  78. DMA1_Stream5_IRQn = 16, // DMA1 Stream 5 global Interrupt
  79. DMA1_Stream6_IRQn = 17, // DMA1 Stream 6 global Interrupt
  80. ADC_IRQn = 18, // ADC1, ADC2 and ADC3 global Interrupts
  81. CAN1_TX_IRQn = 19, // CAN1 TX Interrupt
  82. CAN1_RX0_IRQn = 20, // CAN1 RX0 Interrupt
  83. CAN1_RX1_IRQn = 21, // CAN1 RX1 Interrupt
  84. CAN1_SCE_IRQn = 22, // CAN1 SCE Interrupt
  85. EXTI9_5_IRQn = 23, // External Line[9:5] Interrupts
  86. TIM1_BRK_TIM9_IRQn = 24, // TIM1 Break interrupt and TIM9 global interrupt
  87. TIM1_UP_TIM10_IRQn = 25, // TIM1 Update Interrupt and TIM10 global interrupt
  88. TIM1_TRG_COM_TIM11_IRQn = 26, // TIM1 Trigger and Commutation Interrupt and TIM11 global interrupt
  89. TIM1_CC_IRQn = 27, // TIM1 Capture Compare Interrupt
  90. TIM2_IRQn = 28, // TIM2 global Interrupt
  91. TIM3_IRQn = 29, // TIM3 global Interrupt
  92. TIM4_IRQn = 30, // TIM4 global Interrupt
  93. I2C1_EV_IRQn = 31, // I2C1 Event Interrupt
  94. I2C1_ER_IRQn = 32, // I2C1 Error Interrupt
  95. I2C2_EV_IRQn = 33, // I2C2 Event Interrupt
  96. I2C2_ER_IRQn = 34, // I2C2 Error Interrupt
  97. SPI1_IRQn = 35, // SPI1 global Interrupt
  98. SPI2_IRQn = 36, // SPI2 global Interrupt
  99. USART1_IRQn = 37, // USART1 global Interrupt
  100. USART2_IRQn = 38, // USART2 global Interrupt
  101. USART3_IRQn = 39, // USART3 global Interrupt
  102. EXTI15_10_IRQn = 40, // External Line[15:10] Interrupts
  103. RTC_Alarm_IRQn = 41, // RTC Alarm (A and B) through EXTI Line Interrupt
  104. OTG_FS_WKUP_IRQn = 42, // USB OTG FS Wakeup through EXTI line interrupt
  105. TIM8_BRK_TIM12_IRQn = 43, // TIM8 Break Interrupt and TIM12 global interrupt
  106. TIM8_UP_TIM13_IRQn = 44, // TIM8 Update Interrupt and TIM13 global interrupt
  107. TIM8_TRG_COM_TIM14_IRQn = 45, // TIM8 Trigger and Commutation Interrupt and TIM14 global interrupt
  108. TIM8_CC_IRQn = 46, // TIM8 Capture Compare Interrupt
  109. DMA1_Stream7_IRQn = 47, // DMA1 Stream7 Interrupt
  110. FMC_IRQn = 48, // FMC global Interrupt
  111. SDIO_IRQn = 49, // SDIO global Interrupt
  112. TIM5_IRQn = 50, // TIM5 global Interrupt
  113. SPI3_IRQn = 51, // SPI3 global Interrupt
  114. UART4_IRQn = 52, // UART4 global Interrupt
  115. UART5_IRQn = 53, // UART5 global Interrupt
  116. TIM6_DAC_IRQn = 54, // TIM6 global and DAC1&2 underrun error interrupts
  117. TIM7_IRQn = 55, // TIM7 global interrupt
  118. DMA2_Stream0_IRQn = 56, // DMA2 Stream 0 global Interrupt
  119. DMA2_Stream1_IRQn = 57, // DMA2 Stream 1 global Interrupt
  120. DMA2_Stream2_IRQn = 58, // DMA2 Stream 2 global Interrupt
  121. DMA2_Stream3_IRQn = 59, // DMA2 Stream 3 global Interrupt
  122. DMA2_Stream4_IRQn = 60, // DMA2 Stream 4 global Interrupt
  123. ETH_IRQn = 61, // Ethernet global Interrupt
  124. ETH_WKUP_IRQn = 62, // Ethernet Wakeup through EXTI line Interrupt
  125. CAN2_TX_IRQn = 63, // CAN2 TX Interrupt
  126. CAN2_RX0_IRQn = 64, // CAN2 RX0 Interrupt
  127. CAN2_RX1_IRQn = 65, // CAN2 RX1 Interrupt
  128. CAN2_SCE_IRQn = 66, // CAN2 SCE Interrupt
  129. OTG_FS_IRQn = 67, // USB OTG FS global Interrupt
  130. DMA2_Stream5_IRQn = 68, // DMA2 Stream 5 global interrupt
  131. DMA2_Stream6_IRQn = 69, // DMA2 Stream 6 global interrupt
  132. DMA2_Stream7_IRQn = 70, // DMA2 Stream 7 global interrupt
  133. USART6_IRQn = 71, // USART6 global interrupt
  134. I2C3_EV_IRQn = 72, // I2C3 event interrupt
  135. I2C3_ER_IRQn = 73, // I2C3 error interrupt
  136. OTG_HS_EP1_OUT_IRQn = 74, // USB OTG HS End Point 1 Out global interrupt
  137. OTG_HS_EP1_IN_IRQn = 75, // USB OTG HS End Point 1 In global interrupt
  138. OTG_HS_WKUP_IRQn = 76, // USB OTG HS Wakeup through EXTI interrupt
  139. OTG_HS_IRQn = 77, // USB OTG HS global interrupt
  140. DCMI_IRQn = 78, // DCMI global interrupt
  141. HASH_RNG_IRQn = 80, // Hash and RNG global interrupt
  142. FPU_IRQn = 81, // FPU global interrupt
  143. UART7_IRQn = 82, // UART7 global interrupt
  144. UART8_IRQn = 83, // UART8 global interrupt
  145. SPI4_IRQn = 84, // SPI4 global Interrupt
  146. SPI5_IRQn = 85, // SPI5 global Interrupt
  147. SPI6_IRQn = 86, // SPI6 global Interrupt
  148. SAI1_IRQn = 87, // SAI1 global Interrupt
  149. LTDC_IRQn = 88, // LTDC global Interrupt
  150. LTDC_ER_IRQn = 89, // LTDC Error global Interrupt
  151. DMA2D_IRQn = 90 // DMA2D global Interrupt
  152. );
  153. TADC_Registers = record
  154. SR : longword; // ADC status register
  155. CR1 : longword; // ADC control register 1
  156. CR2 : longword; // ADC control register 2
  157. SMPR1 : longword; // ADC sample time register 1
  158. SMPR2 : longword; // ADC sample time register 2
  159. JOFR1 : longword; // ADC injected channel data offset register 1
  160. JOFR2 : longword; // ADC injected channel data offset register 2
  161. JOFR3 : longword; // ADC injected channel data offset register 3
  162. JOFR4 : longword; // ADC injected channel data offset register 4
  163. HTR : longword; // ADC watchdog higher threshold register
  164. LTR : longword; // ADC watchdog lower threshold register
  165. SQR1 : longword; // ADC regular sequence register 1
  166. SQR2 : longword; // ADC regular sequence register 2
  167. SQR3 : longword; // ADC regular sequence register 3
  168. JSQR : longword; // ADC injected sequence register
  169. JDR1 : longword; // ADC injected data register 1
  170. JDR2 : longword; // ADC injected data register 2
  171. JDR3 : longword; // ADC injected data register 3
  172. JDR4 : longword; // ADC injected data register 4
  173. DR : longword; // ADC regular data register
  174. end;
  175. TADC_COMMON_Registers = record
  176. CSR : longword; // ADC Common status register
  177. CCR : longword; // ADC common control register
  178. CDR : longword; // ADC common regular data register for dual
  179. end;
  180. TCAN_TXMAILBOX_Registers = record
  181. TIR : longword; // CAN TX mailbox identifier register
  182. TDTR : longword; // CAN mailbox data length control and time stamp register
  183. TDLR : longword; // CAN mailbox data low register
  184. TDHR : longword; // CAN mailbox data high register
  185. end;
  186. TCAN_FIFOMAILBOX_Registers = record
  187. RIR : longword; // CAN receive FIFO mailbox identifier register
  188. RDTR : longword; // CAN receive FIFO mailbox data length control and time stamp register
  189. RDLR : longword; // CAN receive FIFO mailbox data low register
  190. RDHR : longword; // CAN receive FIFO mailbox data high register
  191. end;
  192. TCAN_FILTERREGISTER_Registers = record
  193. FR1 : longword; // CAN Filter bank register 1
  194. FR2 : longword; // CAN Filter bank register 1
  195. end;
  196. TCAN_Registers = record
  197. MCR : longword; // CAN master control register
  198. MSR : longword; // CAN master status register
  199. TSR : longword; // CAN transmit status register
  200. RF0R : longword; // CAN receive FIFO 0 register
  201. RF1R : longword; // CAN receive FIFO 1 register
  202. IER : longword; // CAN interrupt enable register
  203. ESR : longword; // CAN error status register
  204. BTR : longword; // CAN bit timing register
  205. RESERVED0 : array[0..87] of longword; // Reserved, 0x020 - 0x17F
  206. sTxMailBox : array[0..2] of TCAN_TXMAILBOX_Registers; // CAN Tx MailBox
  207. sFIFOMailBox : array[0..1] of TCAN_FIFOMAILBOX_Registers; // CAN FIFO MailBox
  208. RESERVED1 : array[0..11] of longword; // Reserved, 0x1D0 - 0x1FF
  209. FMR : longword; // CAN filter master register
  210. FM1R : longword; // CAN filter mode register
  211. RESERVED2 : longword; // Reserved, 0x208
  212. FS1R : longword; // CAN filter scale register
  213. RESERVED3 : longword; // Reserved, 0x210
  214. FFA1R : longword; // CAN filter FIFO assignment register
  215. RESERVED4 : longword; // Reserved, 0x218
  216. FA1R : longword; // CAN filter activation register
  217. RESERVED5 : array[0..7] of longword; // Reserved, 0x220-0x23F
  218. sFilterRegister : array[0..27] of TCAN_FILTERREGISTER_Registers; // CAN Filter Register
  219. end;
  220. TCRC_Registers = record
  221. DR : longword; // CRC Data register
  222. IDR : byte; // CRC Independent data register
  223. RESERVED0 : byte; // Reserved, 0x05
  224. RESERVED1 : word; // Reserved, 0x06
  225. CR : longword; // CRC Control register
  226. end;
  227. TDAC_Registers = record
  228. CR : longword; // DAC control register
  229. SWTRIGR : longword; // DAC software trigger register
  230. DHR12R1 : longword; // DAC channel1 12-bit right-aligned data holding register
  231. DHR12L1 : longword; // DAC channel1 12-bit left aligned data holding register
  232. DHR8R1 : longword; // DAC channel1 8-bit right aligned data holding register
  233. DHR12R2 : longword; // DAC channel2 12-bit right aligned data holding register
  234. DHR12L2 : longword; // DAC channel2 12-bit left aligned data holding register
  235. DHR8R2 : longword; // DAC channel2 8-bit right-aligned data holding register
  236. DHR12RD : longword; // Dual DAC 12-bit right-aligned data holding register
  237. DHR12LD : longword; // DUAL DAC 12-bit left aligned data holding register
  238. DHR8RD : longword; // DUAL DAC 8-bit right aligned data holding register
  239. DOR1 : longword; // DAC channel1 data output register
  240. DOR2 : longword; // DAC channel2 data output register
  241. SR : longword; // DAC status register
  242. end;
  243. TDBGMCU_Registers = record
  244. IDCODE : longword; // MCU device ID code
  245. CR : longword; // Debug MCU configuration register
  246. APB1FZ : longword; // Debug MCU APB1 freeze register
  247. APB2FZ : longword; // Debug MCU APB2 freeze register
  248. end;
  249. TDCMI_Registers = record
  250. CR : longword; // DCMI control register 1
  251. SR : longword; // DCMI status register
  252. RISR : longword; // DCMI raw interrupt status register
  253. IER : longword; // DCMI interrupt enable register
  254. MISR : longword; // DCMI masked interrupt status register
  255. ICR : longword; // DCMI interrupt clear register
  256. ESCR : longword; // DCMI embedded synchronization code register
  257. ESUR : longword; // DCMI embedded synchronization unmask register
  258. CWSTRTR : longword; // DCMI crop window start
  259. CWSIZER : longword; // DCMI crop window size
  260. DR : longword; // DCMI data register
  261. end;
  262. TDMA_STREAM_Registers = record
  263. CR : longword; // DMA stream x configuration register
  264. NDTR : longword; // DMA stream x number of data register
  265. PAR : longword; // DMA stream x peripheral address register
  266. M0AR : longword; // DMA stream x memory 0 address register
  267. M1AR : longword; // DMA stream x memory 1 address register
  268. FCR : longword; // DMA stream x FIFO control register
  269. end;
  270. TDMA_Registers = record
  271. LISR : longword; // DMA low interrupt status register
  272. HISR : longword; // DMA high interrupt status register
  273. LIFCR : longword; // DMA low interrupt flag clear register
  274. HIFCR : longword; // DMA high interrupt flag clear register
  275. end;
  276. TDMA2D_Registers = record
  277. CR : longword; // DMA2D Control Register
  278. ISR : longword; // DMA2D Interrupt Status Register
  279. IFCR : longword; // DMA2D Interrupt Flag Clear Register
  280. FGMAR : longword; // DMA2D Foreground Memory Address Register
  281. FGOR : longword; // DMA2D Foreground Offset Register
  282. BGMAR : longword; // DMA2D Background Memory Address Register
  283. BGOR : longword; // DMA2D Background Offset Register
  284. FGPFCCR : longword; // DMA2D Foreground PFC Control Register
  285. FGCOLR : longword; // DMA2D Foreground Color Register
  286. BGPFCCR : longword; // DMA2D Background PFC Control Register
  287. BGCOLR : longword; // DMA2D Background Color Register
  288. FGCMAR : longword; // DMA2D Foreground CLUT Memory Address Register
  289. BGCMAR : longword; // DMA2D Background CLUT Memory Address Register
  290. OPFCCR : longword; // DMA2D Output PFC Control Register
  291. OCOLR : longword; // DMA2D Output Color Register
  292. OMAR : longword; // DMA2D Output Memory Address Register
  293. OOR : longword; // DMA2D Output Offset Register
  294. NLR : longword; // DMA2D Number of Line Register
  295. LWR : longword; // DMA2D Line Watermark Register
  296. AMTCR : longword; // DMA2D AHB Master Timer Configuration Register
  297. RESERVED : array[0..235] of longword; // Reserved, 0x50-0x3FF
  298. FGCLUT : array[0..255] of longword; // DMA2D Foreground CLUT
  299. BGCLUT : array[0..255] of longword; // DMA2D Background CLUT
  300. end;
  301. TETH_Registers = record
  302. MACCR : longword;
  303. MACFFR : longword;
  304. MACHTHR : longword;
  305. MACHTLR : longword;
  306. MACMIIAR : longword;
  307. MACMIIDR : longword;
  308. MACFCR : longword;
  309. MACVLANTR : longword; // 8
  310. RESERVED0 : array[0..1] of longword;
  311. MACRWUFFR : longword; // 11
  312. MACPMTCSR : longword;
  313. RESERVED1 : array[0..1] of longword;
  314. MACSR : longword; // 15
  315. MACIMR : longword;
  316. MACA0HR : longword;
  317. MACA0LR : longword;
  318. MACA1HR : longword;
  319. MACA1LR : longword;
  320. MACA2HR : longword;
  321. MACA2LR : longword;
  322. MACA3HR : longword;
  323. MACA3LR : longword; // 24
  324. RESERVED2 : array[0..39] of longword;
  325. MMCCR : longword; // 65
  326. MMCRIR : longword;
  327. MMCTIR : longword;
  328. MMCRIMR : longword;
  329. MMCTIMR : longword; // 69
  330. RESERVED3 : array[0..13] of longword;
  331. MMCTGFSCCR : longword; // 84
  332. MMCTGFMSCCR : longword;
  333. RESERVED4 : array[0..4] of longword;
  334. MMCTGFCR : longword;
  335. RESERVED5 : array[0..9] of longword;
  336. MMCRFCECR : longword;
  337. MMCRFAECR : longword;
  338. RESERVED6 : array[0..9] of longword;
  339. MMCRGUFCR : longword;
  340. RESERVED7 : array[0..333] of longword;
  341. PTPTSCR : longword;
  342. PTPSSIR : longword;
  343. PTPTSHR : longword;
  344. PTPTSLR : longword;
  345. PTPTSHUR : longword;
  346. PTPTSLUR : longword;
  347. PTPTSAR : longword;
  348. PTPTTHR : longword;
  349. PTPTTLR : longword;
  350. RESERVED8 : longword;
  351. PTPTSSR : longword;
  352. RESERVED9 : array[0..564] of longword;
  353. DMABMR : longword;
  354. DMATPDR : longword;
  355. DMARPDR : longword;
  356. DMARDLAR : longword;
  357. DMATDLAR : longword;
  358. DMASR : longword;
  359. DMAOMR : longword;
  360. DMAIER : longword;
  361. DMAMFBOCR : longword;
  362. DMARSWTR : longword;
  363. RESERVED10 : array[0..7] of longword;
  364. DMACHTDR : longword;
  365. DMACHRDR : longword;
  366. DMACHTBAR : longword;
  367. DMACHRBAR : longword;
  368. end;
  369. TEXTI_Registers = record
  370. IMR : longword; // EXTI Interrupt mask register
  371. EMR : longword; // EXTI Event mask register
  372. RTSR : longword; // EXTI Rising trigger selection register
  373. FTSR : longword; // EXTI Falling trigger selection register
  374. SWIER : longword; // EXTI Software interrupt event register
  375. PR : longword; // EXTI Pending register
  376. end;
  377. TFLASH_Registers = record
  378. ACR : longword; // FLASH access control register
  379. KEYR : longword; // FLASH key register
  380. OPTKEYR : longword; // FLASH option key register
  381. SR : longword; // FLASH status register
  382. CR : longword; // FLASH control register
  383. OPTCR : longword; // FLASH option control register
  384. OPTCR1 : longword; // FLASH option control register 1
  385. end;
  386. TFMC_BANK1_Registers = record
  387. BTCR : array[0..7] of longword; // NOR/PSRAM chip-select control register(BCR) and chip-select timing register(BTR)
  388. end;
  389. TFMC_BANK1E_Registers = record
  390. BWTR : array[0..6] of longword; // NOR/PSRAM write timing registers
  391. end;
  392. TFMC_BANK2_3_Registers = record
  393. PCR2 : longword; // NAND Flash control register 2
  394. SR2 : longword; // NAND Flash FIFO status and interrupt register 2
  395. PMEM2 : longword; // NAND Flash Common memory space timing register 2
  396. PATT2 : longword; // NAND Flash Attribute memory space timing register 2
  397. RESERVED0 : longword; // Reserved, 0x70
  398. ECCR2 : longword; // NAND Flash ECC result registers 2
  399. RESERVED1 : longword; // Reserved, 0x78
  400. RESERVED2 : longword; // Reserved, 0x7C
  401. PCR3 : longword; // NAND Flash control register 3
  402. SR3 : longword; // NAND Flash FIFO status and interrupt register 3
  403. PMEM3 : longword; // NAND Flash Common memory space timing register 3
  404. PATT3 : longword; // NAND Flash Attribute memory space timing register 3
  405. RESERVED3 : longword; // Reserved, 0x90
  406. ECCR3 : longword; // NAND Flash ECC result registers 3
  407. end;
  408. TFMC_BANK4_Registers = record
  409. PCR4 : longword; // PC Card control register 4
  410. SR4 : longword; // PC Card FIFO status and interrupt register 4
  411. PMEM4 : longword; // PC Card Common memory space timing register 4
  412. PATT4 : longword; // PC Card Attribute memory space timing register 4
  413. PIO4 : longword; // PC Card I/O space timing register 4
  414. end;
  415. TFMC_BANK5_6_Registers = record
  416. SDCR : array[0..1] of longword; // SDRAM Control registers
  417. SDTR : array[0..1] of longword; // SDRAM Timing registers
  418. SDCMR : longword; // SDRAM Command Mode register
  419. SDRTR : longword; // SDRAM Refresh Timer register
  420. SDSR : longword; // SDRAM Status register
  421. end;
  422. TGPIO_Registers = record
  423. MODER : longword; // GPIO port mode register
  424. OTYPER : longword; // GPIO port output type register
  425. OSPEEDR : longword; // GPIO port output speed register
  426. PUPDR : longword; // GPIO port pull-up/pull-down register
  427. IDR : longword; // GPIO port input data register
  428. ODR : longword; // GPIO port output data register
  429. BSRR : longword; // GPIO port bit set/reset register
  430. LCKR : longword; // GPIO port configuration lock register
  431. AFR : array[0..1] of longword; // GPIO alternate function registers
  432. end;
  433. TSYSCFG_Registers = record
  434. MEMRMP : longword; // SYSCFG memory remap register
  435. PMC : longword; // SYSCFG peripheral mode configuration register
  436. EXTICR : array[0..3] of longword; // SYSCFG external interrupt configuration registers
  437. RESERVED : array[0..1] of longword; // Reserved, 0x18-0x1C
  438. CMPCR : longword; // SYSCFG Compensation cell control register
  439. end;
  440. TI2C_Registers = record
  441. CR1 : longword; // I2C Control register 1
  442. CR2 : longword; // I2C Control register 2
  443. OAR1 : longword; // I2C Own address register 1
  444. OAR2 : longword; // I2C Own address register 2
  445. DR : longword; // I2C Data register
  446. SR1 : longword; // I2C Status register 1
  447. SR2 : longword; // I2C Status register 2
  448. CCR : longword; // I2C Clock control register
  449. TRISE : longword; // I2C TRISE register
  450. FLTR : longword; // I2C FLTR register
  451. end;
  452. TIWDG_Registers = record
  453. KR : longword; // IWDG Key register
  454. PR : longword; // IWDG Prescaler register
  455. RLR : longword; // IWDG Reload register
  456. SR : longword; // IWDG Status register
  457. end;
  458. TLTDC_Registers = record
  459. RESERVED0 : array[0..1] of longword; // Reserved, 0x00-0x04
  460. SSCR : longword; // LTDC Synchronization Size Configuration Register
  461. BPCR : longword; // LTDC Back Porch Configuration Register
  462. AWCR : longword; // LTDC Active Width Configuration Register
  463. TWCR : longword; // LTDC Total Width Configuration Register
  464. GCR : longword; // LTDC Global Control Register
  465. RESERVED1 : array[0..1] of longword; // Reserved, 0x1C-0x20
  466. SRCR : longword; // LTDC Shadow Reload Configuration Register
  467. RESERVED2 : longWord; // Reserved, 0x28
  468. BCCR : longword; // LTDC Background Color Configuration Register
  469. RESERVED3 : longWord; // Reserved, 0x30
  470. IER : longword; // LTDC Interrupt Enable Register
  471. ISR : longword; // LTDC Interrupt Status Register
  472. ICR : longword; // LTDC Interrupt Clear Register
  473. LIPCR : longword; // LTDC Line Interrupt Position Configuration Register
  474. CPSR : longword; // LTDC Current Position Status Register
  475. CDSR : longword; // LTDC Current Display Status Register
  476. end;
  477. TLTDC_LAYER_Registers = record
  478. CR : longword; // LTDC Layerx Control Register
  479. WHPCR : longword; // LTDC Layerx Window Horizontal Position Configuration Register
  480. WVPCR : longword; // LTDC Layerx Window Vertical Position Configuration Register
  481. CKCR : longword; // LTDC Layerx Color Keying Configuration Register
  482. PFCR : longword; // LTDC Layerx Pixel Format Configuration Register
  483. CACR : longword; // LTDC Layerx Constant Alpha Configuration Register
  484. DCCR : longword; // LTDC Layerx Default Color Configuration Register
  485. BFCR : longword; // LTDC Layerx Blending Factors Configuration Register
  486. RESERVED0 : array[0..1] of longword; // Reserved
  487. CFBAR : longword; // LTDC Layerx Color Frame Buffer Address Register
  488. CFBLR : longword; // LTDC Layerx Color Frame Buffer Length Register
  489. CFBLNR : longword; // LTDC Layerx ColorFrame Buffer Line Number Register
  490. RESERVED1 : array[0..2] of longword; // Reserved
  491. CLUTWR : longword; // LTDC Layerx CLUT Write Register
  492. end;
  493. TPWR_Registers = record
  494. CR : longword; // PWR power control register
  495. CSR : longword; // PWR power control/status register
  496. end;
  497. TRCC_Registers = record
  498. CR : longword; // RCC clock control register
  499. PLLCFGR : longword; // RCC PLL configuration register
  500. CFGR : longword; // RCC clock configuration register
  501. CIR : longword; // RCC clock interrupt register
  502. AHB1RSTR : longword; // RCC AHB1 peripheral reset register
  503. AHB2RSTR : longword; // RCC AHB2 peripheral reset register
  504. AHB3RSTR : longword; // RCC AHB3 peripheral reset register
  505. RESERVED0 : longword; // Reserved, 0x1C
  506. APB1RSTR : longword; // RCC APB1 peripheral reset register
  507. APB2RSTR : longword; // RCC APB2 peripheral reset register
  508. RESERVED1 : array[0..1] of longword; // Reserved, 0x28-0x2C
  509. AHB1ENR : longword; // RCC AHB1 peripheral clock register
  510. AHB2ENR : longword; // RCC AHB2 peripheral clock register
  511. AHB3ENR : longword; // RCC AHB3 peripheral clock register
  512. RESERVED2 : longword; // Reserved, 0x3C
  513. APB1ENR : longword; // RCC APB1 peripheral clock enable register
  514. APB2ENR : longword; // RCC APB2 peripheral clock enable register
  515. RESERVED3 : array[0..1] of longword; // Reserved, 0x48-0x4C
  516. AHB1LPENR : longword; // RCC AHB1 peripheral clock enable in low power mode register
  517. AHB2LPENR : longword; // RCC AHB2 peripheral clock enable in low power mode register
  518. AHB3LPENR : longword; // RCC AHB3 peripheral clock enable in low power mode register
  519. RESERVED4 : longword; // Reserved, 0x5C
  520. APB1LPENR : longword; // RCC APB1 peripheral clock enable in low power mode register
  521. APB2LPENR : longword; // RCC APB2 peripheral clock enable in low power mode register
  522. RESERVED5 : array[0..1] of longword; // Reserved, 0x68-0x6C
  523. BDCR : longword; // RCC Backup domain control register
  524. CSR : longword; // RCC clock control & status register
  525. RESERVED6 : array[0..1] of longword; // Reserved, 0x78-0x7C
  526. SSCGR : longword; // RCC spread spectrum clock generation register
  527. PLLI2SCFGR : longword; // RCC PLLI2S configuration register
  528. PLLSAICFGR : longword; // RCC PLLSAI configuration register
  529. DCKCFGR : longword; // RCC Dedicated Clocks configuration register
  530. end;
  531. TRTC_Registers = record
  532. TR : longword; // RTC time register
  533. DR : longword; // RTC date register
  534. CR : longword; // RTC control register
  535. ISR : longword; // RTC initialization and status register
  536. PRER : longword; // RTC prescaler register
  537. WUTR : longword; // RTC wakeup timer register
  538. CALIBR : longword; // RTC calibration register
  539. ALRMAR : longword; // RTC alarm A register
  540. ALRMBR : longword; // RTC alarm B register
  541. WPR : longword; // RTC write protection register
  542. SSR : longword; // RTC sub second register
  543. SHIFTR : longword; // RTC shift control register
  544. TSTR : longword; // RTC time stamp time register
  545. TSDR : longword; // RTC time stamp date register
  546. TSSSR : longword; // RTC time-stamp sub second register
  547. CALR : longword; // RTC calibration register
  548. TAFCR : longword; // RTC tamper and alternate function configuration register
  549. ALRMASSR : longword; // RTC alarm A sub second register
  550. ALRMBSSR : longword; // RTC alarm B sub second register
  551. RESERVED7 : longword; // Reserved, 0x4C
  552. BKP0R : longword; // RTC backup register 1
  553. BKP1R : longword; // RTC backup register 1
  554. BKP2R : longword; // RTC backup register 2
  555. BKP3R : longword; // RTC backup register 3
  556. BKP4R : longword; // RTC backup register 4
  557. BKP5R : longword; // RTC backup register 5
  558. BKP6R : longword; // RTC backup register 6
  559. BKP7R : longword; // RTC backup register 7
  560. BKP8R : longword; // RTC backup register 8
  561. BKP9R : longword; // RTC backup register 9
  562. BKP10R : longword; // RTC backup register 10
  563. BKP11R : longword; // RTC backup register 11
  564. BKP12R : longword; // RTC backup register 12
  565. BKP13R : longword; // RTC backup register 13
  566. BKP14R : longword; // RTC backup register 14
  567. BKP15R : longword; // RTC backup register 15
  568. BKP16R : longword; // RTC backup register 16
  569. BKP17R : longword; // RTC backup register 17
  570. BKP18R : longword; // RTC backup register 18
  571. BKP19R : longword; // RTC backup register 19
  572. end;
  573. TSAI_Registers = record
  574. GCR : longword; // SAI global configuration register
  575. end;
  576. TSAI_BLOCK_Registers = record
  577. CR1 : longword; // SAI block x configuration register 1
  578. CR2 : longword; // SAI block x configuration register 2
  579. FRCR : longword; // SAI block x frame configuration register
  580. SLOTR : longword; // SAI block x slot register
  581. IMR : longword; // SAI block x interrupt mask register
  582. SR : longword; // SAI block x status register
  583. CLRFR : longword; // SAI block x clear flag register
  584. DR : longword; // SAI block x data register
  585. end;
  586. TSDIO_Registers = record
  587. POWER : longword; // SDIO power control register
  588. CLKCR : longword; // SDI clock control register
  589. ARG : longword; // SDIO argument register
  590. CMD : longword; // SDIO command register
  591. RESPCMD : longword; // SDIO command response register
  592. RESP1 : longword; // SDIO response 1 register
  593. RESP2 : longword; // SDIO response 2 register
  594. RESP3 : longword; // SDIO response 3 register
  595. RESP4 : longword; // SDIO response 4 register
  596. DTIMER : longword; // SDIO data timer register
  597. DLEN : longword; // SDIO data length register
  598. DCTRL : longword; // SDIO data control register
  599. DCOUNT : longword; // SDIO data counter register
  600. STA : longword; // SDIO status register
  601. ICR : longword; // SDIO interrupt clear register
  602. MASK : longword; // SDIO mask register
  603. RESERVED0 : array[0..1] of longword; // Reserved, 0x40-0x44
  604. FIFOCNT : longword; // SDIO FIFO counter register
  605. RESERVED1 : array[0..12] of longword; // Reserved, 0x4C-0x7C
  606. FIFO : longword; // SDIO data FIFO register
  607. end;
  608. TSPI_Registers = record
  609. CR1 : longword; // SPI control register 1 (not used in I2S mode)
  610. CR2 : longword; // SPI control register 2
  611. SR : longword; // SPI status register
  612. DR : longword; // SPI data register
  613. CRCPR : longword; // SPI CRC polynomial register (not used in I2S mode)
  614. RXCRCR : longword; // SPI RX CRC register (not used in I2S mode)
  615. TXCRCR : longword; // SPI TX CRC register (not used in I2S mode)
  616. I2SCFGR : longword; // SPI_I2S configuration register
  617. I2SPR : longword; // SPI_I2S prescaler register
  618. end;
  619. TTIM_Registers = record
  620. CR1 : longword; // TIM control register 1
  621. CR2 : longword; // TIM control register 2
  622. SMCR : longword; // TIM slave mode control register
  623. DIER : longword; // TIM DMA/interrupt enable register
  624. SR : longword; // TIM status register
  625. EGR : longword; // TIM event generation register
  626. CCMR1 : longword; // TIM capture/compare mode register 1
  627. CCMR2 : longword; // TIM capture/compare mode register 2
  628. CCER : longword; // TIM capture/compare enable register
  629. CNT : longword; // TIM counter register
  630. PSC : longword; // TIM prescaler
  631. ARR : longword; // TIM auto-reload register
  632. RCR : longword; // TIM repetition counter register
  633. CCR1 : longword; // TIM capture/compare register 1
  634. CCR2 : longword; // TIM capture/compare register 2
  635. CCR3 : longword; // TIM capture/compare register 3
  636. CCR4 : longword; // TIM capture/compare register 4
  637. BDTR : longword; // TIM break and dead-time register
  638. DCR : longword; // TIM DMA control register
  639. DMAR : longword; // TIM DMA address for full transfer
  640. &OR : longword; // TIM option register
  641. end;
  642. TUSART_Registers = record
  643. SR : longword; // USART Status register
  644. DR : longword; // USART Data register
  645. BRR : longword; // USART Baud rate register
  646. CR1 : longword; // USART Control register 1
  647. CR2 : longword; // USART Control register 2
  648. CR3 : longword; // USART Control register 3
  649. GTPR : longword; // USART Guard time and prescaler register
  650. end;
  651. TWWDG_Registers = record
  652. CR : longword; // WWDG Control register
  653. CFR : longword; // WWDG Configuration register
  654. SR : longword; // WWDG Status register
  655. end;
  656. TRNG_Registers = record
  657. CR : longword; // RNG control register
  658. SR : longword; // RNG status register
  659. DR : longword; // RNG data register
  660. end;
  661. TUSB_OTG_GLOBAL_Registers = record
  662. GOTGCTL : longword; // USB_OTG Control and Status Register 000h
  663. GOTGINT : longword; // USB_OTG Interrupt Register 004h
  664. GAHBCFG : longword; // Core AHB Configuration Register 008h
  665. GUSBCFG : longword; // Core USB Configuration Register 00Ch
  666. GRSTCTL : longword; // Core Reset Register 010h
  667. GINTSTS : longword; // Core Interrupt Register 014h
  668. GINTMSK : longword; // Core Interrupt Mask Register 018h
  669. GRXSTSR : longword; // Receive Sts Q Read Register 01Ch
  670. GRXSTSP : longword; // Receive Sts Q Read & POP Register 020h
  671. GRXFSIZ : longword; // Receive FIFO Size Register 024h
  672. DIEPTXF0_HNPTXFSIZ : longword; // EP0 / Non Periodic Tx FIFO Size Register 028h
  673. HNPTXSTS : longword; // Non Periodic Tx FIFO/Queue Sts reg 02Ch
  674. RESERVED30 : array[0..1] of longword; // Reserved 030h
  675. GCCFG : longword; // General Purpose IO Register 038h
  676. CID : longword; // User ID Register 03Ch
  677. RESERVED40 : array[0..47] of longword; // Reserved 040h-0FFh
  678. HPTXFSIZ : longword; // Host Periodic Tx FIFO Size Reg 100h
  679. DIEPTXF : array[0..14] of longword; // dev Periodic Transmit FIFO
  680. end;
  681. TUSB_OTG_DEVICE_Registers = record
  682. DCFG : longword; // dev Configuration Register 800h
  683. DCTL : longword; // dev Control Register 804h
  684. DSTS : longword; // dev Status Register (RO) 808h
  685. RESERVED0C : longword; // Reserved 80Ch
  686. DIEPMSK : longword; // dev IN Endpoint Mask 810h
  687. DOEPMSK : longword; // dev OUT Endpoint Mask 814h
  688. DAINT : longword; // dev All Endpoints Itr Reg 818h
  689. DAINTMSK : longword; // dev All Endpoints Itr Mask 81Ch
  690. RESERVED20 : longword; // Reserved 820h
  691. RESERVED9 : longword; // Reserved 824h
  692. DVBUSDIS : longword; // dev VBUS discharge Register 828h
  693. DVBUSPULSE : longword; // dev VBUS Pulse Register 82Ch
  694. DTHRCTL : longword; // dev thr 830h
  695. DIEPEMPMSK : longword; // dev empty msk 834h
  696. DEACHINT : longword; // dedicated EP interrupt 838h
  697. DEACHMSK : longword; // dedicated EP msk 83Ch
  698. RESERVED40 : longword; // dedicated EP mask 840h
  699. DINEP1MSK : longword; // dedicated EP mask 844h
  700. RESERVED44 : array[0..14] of longword; // Reserved 844-87Ch
  701. DOUTEP1MSK : longword; // dedicated EP msk 884h
  702. end;
  703. TUSB_OTG_INENDPOINT_Registers = record
  704. DIEPCTL : longword; // dev IN Endpoint Control Reg 900h + (ep_num * 20h) + 00h
  705. RESERVED04 : longword; // Reserved 900h + (ep_num * 20h) + 04h
  706. DIEPINT : longword; // dev IN Endpoint Itr Reg 900h + (ep_num * 20h) + 08h
  707. RESERVED0C : longword; // Reserved 900h + (ep_num * 20h) + 0Ch
  708. DIEPTSIZ : longword; // IN Endpoint Txfer Size 900h + (ep_num * 20h) + 10h
  709. DIEPDMA : longword; // IN Endpoint DMA Address Reg 900h + (ep_num * 20h) + 14h
  710. DTXFSTS : longword; // IN Endpoint Tx FIFO Status Reg 900h + (ep_num * 20h) + 18h
  711. RESERVED18 : longword; // Reserved 900h+(ep_num*20h)+1Ch-900h+ (ep_num * 20h) + 1Ch
  712. end;
  713. TUSB_OTG_OUTENDPOINT_Registers = record
  714. DOEPCTL : longword; // dev OUT Endpoint Control Reg B00h + (ep_num * 20h) + 00h
  715. RESERVED04 : longword; // Reserved B00h + (ep_num * 20h) + 04h
  716. DOEPINT : longword; // dev OUT Endpoint Itr Reg B00h + (ep_num * 20h) + 08h
  717. RESERVED0C : longword; // Reserved B00h + (ep_num * 20h) + 0Ch
  718. DOEPTSIZ : longword; // dev OUT Endpoint Txfer Size B00h + (ep_num * 20h) + 10h
  719. DOEPDMA : longword; // dev OUT Endpoint DMA Address B00h + (ep_num * 20h) + 14h
  720. RESERVED18 : array[0..1] of longword; // Reserved B00h + (ep_num * 20h) + 18h - B00h + (ep_num * 20h) + 1Ch
  721. end;
  722. TUSB_OTG_HOST_Registers = record
  723. HCFG : longword; // Host Configuration Register 400h
  724. HFIR : longword; // Host Frame Interval Register 404h
  725. HFNUM : longword; // Host Frame Nbr/Frame Remaining 408h
  726. RESERVED40C : longword; // Reserved 40Ch
  727. HPTXSTS : longword; // Host Periodic Tx FIFO/ Queue Status 410h
  728. HAINT : longword; // Host All Channels Interrupt Register 414h
  729. HAINTMSK : longword; // Host All Channels Interrupt Mask 418h
  730. end;
  731. TUSB_OTG_HOSTCHANNEL_Registers = record
  732. HCCHAR : longword;
  733. HCSPLT : longword;
  734. HCINT : longword;
  735. HCINTMSK : longword;
  736. HCTSIZ : longword;
  737. HCDMA : longword;
  738. RESERVED : array[0..1] of longword;
  739. end;
  740. const
  741. FLASH_BASE = $08000000; // FLASH(up to 2 MB) base address in the alias region
  742. CCMDATARAM_BASE = $10000000; // CCM(core coupled memory) data RAM(64 KB) base address in the alias region
  743. SRAM1_BASE = $20000000; // SRAM1(112 KB) base address in the alias region
  744. SRAM2_BASE = $2001C000; // SRAM2(16 KB) base address in the alias region
  745. SRAM3_BASE = $20020000; // SRAM3(64 KB) base address in the alias region
  746. PERIPH_BASE = $40000000; // Peripheral base address in the alias region
  747. BKPSRAM_BASE = $40024000; // Backup SRAM(4 KB) base address in the alias region
  748. FMC_R_BASE = $A0000000; // FMC registers base address
  749. SRAM1_BB_BASE = $22000000; // SRAM1(112 KB) base address in the bit-band region
  750. SRAM2_BB_BASE = $22380000; // SRAM2(16 KB) base address in the bit-band region
  751. SRAM3_BB_BASE = $22400000; // SRAM3(64 KB) base address in the bit-band region
  752. PERIPH_BB_BASE = $42000000; // Peripheral base address in the bit-band region
  753. BKPSRAM_BB_BASE = $42480000; // Backup SRAM(4 KB) base address in the bit-band region
  754. SRAM_BASE = $20000000;
  755. SRAM_BB_BASE = $22000000;
  756. APB1PERIPH_BASE = $40000000;
  757. APB2PERIPH_BASE = PERIPH_BASE + $00010000;
  758. AHB1PERIPH_BASE = PERIPH_BASE + $00020000;
  759. AHB2PERIPH_BASE = PERIPH_BASE + $10000000;
  760. TIM2_BASE = APB1PERIPH_BASE + $0000;
  761. TIM3_BASE = APB1PERIPH_BASE + $0400;
  762. TIM4_BASE = APB1PERIPH_BASE + $0800;
  763. TIM5_BASE = APB1PERIPH_BASE + $0C00;
  764. TIM6_BASE = APB1PERIPH_BASE + $1000;
  765. TIM7_BASE = APB1PERIPH_BASE + $1400;
  766. TIM12_BASE = APB1PERIPH_BASE + $1800;
  767. TIM13_BASE = APB1PERIPH_BASE + $1C00;
  768. TIM14_BASE = APB1PERIPH_BASE + $2000;
  769. RTC_BASE = APB1PERIPH_BASE + $2800;
  770. WWDG_BASE = APB1PERIPH_BASE + $2C00;
  771. IWDG_BASE = APB1PERIPH_BASE + $3000;
  772. I2S2ext_BASE = APB1PERIPH_BASE + $3400;
  773. SPI2_BASE = APB1PERIPH_BASE + $3800;
  774. SPI3_BASE = APB1PERIPH_BASE + $3C00;
  775. I2S3ext_BASE = APB1PERIPH_BASE + $4000;
  776. USART2_BASE = APB1PERIPH_BASE + $4400;
  777. USART3_BASE = APB1PERIPH_BASE + $4800;
  778. UART4_BASE = APB1PERIPH_BASE + $4C00;
  779. UART5_BASE = APB1PERIPH_BASE + $5000;
  780. I2C1_BASE = APB1PERIPH_BASE + $5400;
  781. I2C2_BASE = APB1PERIPH_BASE + $5800;
  782. I2C3_BASE = APB1PERIPH_BASE + $5C00;
  783. CAN1_BASE = APB1PERIPH_BASE + $6400;
  784. CAN2_BASE = APB1PERIPH_BASE + $6800;
  785. PWR_BASE = APB1PERIPH_BASE + $7000;
  786. DAC_BASE = APB1PERIPH_BASE + $7400;
  787. UART7_BASE = APB1PERIPH_BASE + $7800;
  788. UART8_BASE = APB1PERIPH_BASE + $7C00;
  789. TIM1_BASE = APB2PERIPH_BASE + $0000;
  790. TIM8_BASE = APB2PERIPH_BASE + $0400;
  791. USART1_BASE = APB2PERIPH_BASE + $1000;
  792. USART6_BASE = APB2PERIPH_BASE + $1400;
  793. ADC1_BASE = APB2PERIPH_BASE + $2000;
  794. ADC2_BASE = APB2PERIPH_BASE + $2100;
  795. ADC3_BASE = APB2PERIPH_BASE + $2200;
  796. ADC_BASE = APB2PERIPH_BASE + $2300;
  797. SDIO_BASE = APB2PERIPH_BASE + $2C00;
  798. SPI1_BASE = APB2PERIPH_BASE + $3000;
  799. SPI4_BASE = APB2PERIPH_BASE + $3400;
  800. SYSCFG_BASE = APB2PERIPH_BASE + $3800;
  801. EXTI_BASE = APB2PERIPH_BASE + $3C00;
  802. TIM9_BASE = APB2PERIPH_BASE + $4000;
  803. TIM10_BASE = APB2PERIPH_BASE + $4400;
  804. TIM11_BASE = APB2PERIPH_BASE + $4800;
  805. SPI5_BASE = APB2PERIPH_BASE + $5000;
  806. SPI6_BASE = APB2PERIPH_BASE + $5400;
  807. SAI1_BASE = APB2PERIPH_BASE + $5800;
  808. SAI1_Block_A_BASE = SAI1_BASE + $004;
  809. SAI1_Block_B_BASE = SAI1_BASE + $024;
  810. LTDC_BASE = APB2PERIPH_BASE + $6800;
  811. LTDC_Layer1_BASE = LTDC_BASE + $84;
  812. LTDC_Layer2_BASE = LTDC_BASE + $104;
  813. GPIOA_BASE = AHB1PERIPH_BASE + $0000;
  814. GPIOB_BASE = AHB1PERIPH_BASE + $0400;
  815. GPIOC_BASE = AHB1PERIPH_BASE + $0800;
  816. GPIOD_BASE = AHB1PERIPH_BASE + $0C00;
  817. GPIOE_BASE = AHB1PERIPH_BASE + $1000;
  818. GPIOF_BASE = AHB1PERIPH_BASE + $1400;
  819. GPIOG_BASE = AHB1PERIPH_BASE + $1800;
  820. GPIOH_BASE = AHB1PERIPH_BASE + $1C00;
  821. GPIOI_BASE = AHB1PERIPH_BASE + $2000;
  822. GPIOJ_BASE = AHB1PERIPH_BASE + $2400;
  823. GPIOK_BASE = AHB1PERIPH_BASE + $2800;
  824. CRC_BASE = AHB1PERIPH_BASE + $3000;
  825. RCC_BASE = AHB1PERIPH_BASE + $3800;
  826. FLASH_R_BASE = AHB1PERIPH_BASE + $3C00;
  827. DMA1_BASE = AHB1PERIPH_BASE + $6000;
  828. DMA1_Stream0_BASE = DMA1_BASE + $010;
  829. DMA1_Stream1_BASE = DMA1_BASE + $028;
  830. DMA1_Stream2_BASE = DMA1_BASE + $040;
  831. DMA1_Stream3_BASE = DMA1_BASE + $058;
  832. DMA1_Stream4_BASE = DMA1_BASE + $070;
  833. DMA1_Stream5_BASE = DMA1_BASE + $088;
  834. DMA1_Stream6_BASE = DMA1_BASE + $0A0;
  835. DMA1_Stream7_BASE = DMA1_BASE + $0B8;
  836. DMA2_BASE = AHB1PERIPH_BASE + $6400;
  837. DMA2_Stream0_BASE = DMA2_BASE + $010;
  838. DMA2_Stream1_BASE = DMA2_BASE + $028;
  839. DMA2_Stream2_BASE = DMA2_BASE + $040;
  840. DMA2_Stream3_BASE = DMA2_BASE + $058;
  841. DMA2_Stream4_BASE = DMA2_BASE + $070;
  842. DMA2_Stream5_BASE = DMA2_BASE + $088;
  843. DMA2_Stream6_BASE = DMA2_BASE + $0A0;
  844. DMA2_Stream7_BASE = DMA2_BASE + $0B8;
  845. ETH_BASE = AHB1PERIPH_BASE + $8000;
  846. ETH_MAC_BASE = AHB1PERIPH_BASE + $8000;
  847. ETH_MMC_BASE = ETH_BASE + $0100;
  848. ETH_PTP_BASE = ETH_BASE + $0700;
  849. ETH_DMA_BASE = ETH_BASE + $1000;
  850. DMA2D_BASE = AHB1PERIPH_BASE + $B000;
  851. DCMI_BASE = AHB2PERIPH_BASE + $50000;
  852. RNG_BASE = AHB2PERIPH_BASE + $60800;
  853. FMC_Bank1_R_BASE = FMC_R_BASE + $0000;
  854. FMC_Bank1E_R_BASE = FMC_R_BASE + $0104;
  855. FMC_Bank2_3_R_BASE = FMC_R_BASE + $0060;
  856. FMC_Bank4_R_BASE = FMC_R_BASE + $00A0;
  857. FMC_Bank5_6_R_BASE = FMC_R_BASE + $0140;
  858. DBGMCU_BASE = $E0042000;
  859. USB_OTG_HS_PERIPH_BASE = $40040000;
  860. USB_OTG_FS_PERIPH_BASE = $50000000;
  861. USB_OTG_GLOBAL_BASE = $000;
  862. USB_OTG_DEVICE_BASE = $800;
  863. USB_OTG_IN_ENDPOINT_BASE = $900;
  864. USB_OTG_OUT_ENDPOINT_BASE = $B00;
  865. USB_OTG_HOST_BASE = $400;
  866. USB_OTG_HOST_PORT_BASE = $440;
  867. USB_OTG_HOST_CHANNEL_BASE = $500;
  868. USB_OTG_PCGCCTL_BASE = $E00;
  869. USB_OTG_FIFO_BASE = $1000;
  870. var
  871. TIM2 : TTIM_Registers absolute TIM2_BASE;
  872. TIM3 : TTIM_Registers absolute TIM3_BASE;
  873. TIM4 : TTIM_Registers absolute TIM4_BASE;
  874. TIM5 : TTIM_Registers absolute TIM5_BASE;
  875. TIM6 : TTIM_Registers absolute TIM6_BASE;
  876. TIM7 : TTIM_Registers absolute TIM7_BASE;
  877. TIM12 : TTIM_Registers absolute TIM12_BASE;
  878. TIM13 : TTIM_Registers absolute TIM13_BASE;
  879. TIM14 : TTIM_Registers absolute TIM14_BASE;
  880. RTC : TRTC_Registers absolute RTC_BASE;
  881. WWDG : TWWDG_Registers absolute WWDG_BASE;
  882. IWDG : TIWDG_Registers absolute IWDG_BASE;
  883. I2S2ext : TSPI_Registers absolute I2S2ext_BASE;
  884. SPI2 : TSPI_Registers absolute SPI2_BASE;
  885. SPI3 : TSPI_Registers absolute SPI3_BASE;
  886. I2S3ext : TSPI_Registers absolute I2S3ext_BASE;
  887. USART2 : TUSART_Registers absolute USART2_BASE;
  888. USART3 : TUSART_Registers absolute USART3_BASE;
  889. UART4 : TUSART_Registers absolute UART4_BASE;
  890. UART5 : TUSART_Registers absolute UART5_BASE;
  891. I2C1 : TI2C_Registers absolute I2C1_BASE;
  892. I2C2 : TI2C_Registers absolute I2C2_BASE;
  893. I2C3 : TI2C_Registers absolute I2C3_BASE;
  894. CAN1 : TCAN_Registers absolute CAN1_BASE;
  895. CAN2 : TCAN_Registers absolute CAN2_BASE;
  896. PWR : TPWR_Registers absolute PWR_BASE;
  897. DAC : TDAC_Registers absolute DAC_BASE;
  898. UART7 : TUSART_Registers absolute UART7_BASE;
  899. UART8 : TUSART_Registers absolute UART8_BASE;
  900. TIM1 : TTIM_Registers absolute TIM1_BASE;
  901. TIM8 : TTIM_Registers absolute TIM8_BASE;
  902. USART1 : TUSART_Registers absolute USART1_BASE;
  903. USART6 : TUSART_Registers absolute USART6_BASE;
  904. ADC : TADC_Common_Registers absolute ADC_BASE;
  905. ADC1 : TADC_Registers absolute ADC1_BASE;
  906. ADC2 : TADC_Registers absolute ADC2_BASE;
  907. ADC3 : TADC_Registers absolute ADC3_BASE;
  908. SDIO : TSDIO_Registers absolute SDIO_BASE;
  909. SPI1 : TSPI_Registers absolute SPI1_BASE;
  910. SPI4 : TSPI_Registers absolute SPI4_BASE;
  911. SYSCFG : TSYSCFG_Registers absolute SYSCFG_BASE;
  912. EXTI : TEXTI_Registers absolute EXTI_BASE;
  913. TIM9 : TTIM_Registers absolute TIM9_BASE;
  914. TIM10 : TTIM_Registers absolute TIM10_BASE;
  915. TIM11 : TTIM_Registers absolute TIM11_BASE;
  916. SPI5 : TSPI_Registers absolute SPI5_BASE;
  917. SPI6 : TSPI_Registers absolute SPI6_BASE;
  918. SAI1 : TSAI_Registers absolute SAI1_BASE;
  919. SAI1_Block_A : TSAI_Block_Registers absolute SAI1_Block_A_BASE;
  920. SAI1_Block_B : TSAI_Block_Registers absolute SAI1_Block_B_BASE;
  921. LTDC : TLTDC_Registers absolute LTDC_BASE;
  922. LTDC_Layer1 : TLTDC_Layer_Registers absolute LTDC_Layer1_BASE;
  923. LTDC_Layer2 : TLTDC_Layer_Registers absolute LTDC_Layer2_BASE;
  924. GPIOA : TGPIO_Registers absolute GPIOA_BASE;
  925. GPIOB : TGPIO_Registers absolute GPIOB_BASE;
  926. GPIOC : TGPIO_Registers absolute GPIOC_BASE;
  927. GPIOD : TGPIO_Registers absolute GPIOD_BASE;
  928. GPIOE : TGPIO_Registers absolute GPIOE_BASE;
  929. GPIOF : TGPIO_Registers absolute GPIOF_BASE;
  930. GPIOG : TGPIO_Registers absolute GPIOG_BASE;
  931. GPIOH : TGPIO_Registers absolute GPIOH_BASE;
  932. GPIOI : TGPIO_Registers absolute GPIOI_BASE;
  933. GPIOJ : TGPIO_Registers absolute GPIOJ_BASE;
  934. GPIOK : TGPIO_Registers absolute GPIOK_BASE;
  935. CRC : TCRC_Registers absolute CRC_BASE;
  936. RCC : TRCC_Registers absolute RCC_BASE;
  937. FLASH : TFLASH_Registers absolute FLASH_R_BASE;
  938. DMA1 : TDMA_Registers absolute DMA1_BASE;
  939. DMA1_Stream0 : TDMA_Stream_Registers absolute DMA1_Stream0_BASE;
  940. DMA1_Stream1 : TDMA_Stream_Registers absolute DMA1_Stream1_BASE;
  941. DMA1_Stream2 : TDMA_Stream_Registers absolute DMA1_Stream2_BASE;
  942. DMA1_Stream3 : TDMA_Stream_Registers absolute DMA1_Stream3_BASE;
  943. DMA1_Stream4 : TDMA_Stream_Registers absolute DMA1_Stream4_BASE;
  944. DMA1_Stream5 : TDMA_Stream_Registers absolute DMA1_Stream5_BASE;
  945. DMA1_Stream6 : TDMA_Stream_Registers absolute DMA1_Stream6_BASE;
  946. DMA1_Stream7 : TDMA_Stream_Registers absolute DMA1_Stream7_BASE;
  947. DMA2 : TDMA_Registers absolute DMA2_BASE;
  948. DMA2_Stream0 : TDMA_Stream_Registers absolute DMA2_Stream0_BASE;
  949. DMA2_Stream1 : TDMA_Stream_Registers absolute DMA2_Stream1_BASE;
  950. DMA2_Stream2 : TDMA_Stream_Registers absolute DMA2_Stream2_BASE;
  951. DMA2_Stream3 : TDMA_Stream_Registers absolute DMA2_Stream3_BASE;
  952. DMA2_Stream4 : TDMA_Stream_Registers absolute DMA2_Stream4_BASE;
  953. DMA2_Stream5 : TDMA_Stream_Registers absolute DMA2_Stream5_BASE;
  954. DMA2_Stream6 : TDMA_Stream_Registers absolute DMA2_Stream6_BASE;
  955. DMA2_Stream7 : TDMA_Stream_Registers absolute DMA2_Stream7_BASE;
  956. ETH : TETH_Registers absolute ETH_BASE;
  957. DMA2D : TDMA2D_Registers absolute DMA2D_BASE;
  958. DCMI : TDCMI_Registers absolute DCMI_BASE;
  959. RNG : TRNG_Registers absolute RNG_BASE;
  960. FMC_Bank1 : TFMC_Bank1_Registers absolute FMC_Bank1_R_BASE;
  961. FMC_Bank1E : TFMC_Bank1E_Registers absolute FMC_Bank1E_R_BASE;
  962. FMC_Bank2_3 : TFMC_Bank2_3_Registers absolute FMC_Bank2_3_R_BASE;
  963. FMC_Bank4 : TFMC_Bank4_Registers absolute FMC_Bank4_R_BASE;
  964. FMC_Bank5_6 : TFMC_Bank5_6_Registers absolute FMC_Bank5_6_R_BASE;
  965. DBGMCU : TDBGMCU_Registers absolute DBGMCU_BASE;
  966. implementation
  967. procedure NonMaskableInt_interrupt; external name 'NonMaskableInt_interrupt';
  968. procedure MemoryManagement_interrupt; external name 'MemoryManagement_interrupt';
  969. procedure BusFault_interrupt; external name 'BusFault_interrupt';
  970. procedure UsageFault_interrupt; external name 'UsageFault_interrupt';
  971. procedure SVCall_interrupt; external name 'SVCall_interrupt';
  972. procedure DebugMonitor_interrupt; external name 'DebugMonitor_interrupt';
  973. procedure PendSV_interrupt; external name 'PendSV_interrupt';
  974. procedure SysTick_interrupt; external name 'SysTick_interrupt';
  975. procedure WWDG_interrupt; external name 'WWDG_interrupt';
  976. procedure PVD_interrupt; external name 'PVD_interrupt';
  977. procedure TAMP_STAMP_interrupt; external name 'TAMP_STAMP_interrupt';
  978. procedure RTC_WKUP_interrupt; external name 'RTC_WKUP_interrupt';
  979. procedure FLASH_interrupt; external name 'FLASH_interrupt';
  980. procedure RCC_interrupt; external name 'RCC_interrupt';
  981. procedure EXTI0_interrupt; external name 'EXTI0_interrupt';
  982. procedure EXTI1_interrupt; external name 'EXTI1_interrupt';
  983. procedure EXTI2_interrupt; external name 'EXTI2_interrupt';
  984. procedure EXTI3_interrupt; external name 'EXTI3_interrupt';
  985. procedure EXTI4_interrupt; external name 'EXTI4_interrupt';
  986. procedure DMA1_Stream0_interrupt; external name 'DMA1_Stream0_interrupt';
  987. procedure DMA1_Stream1_interrupt; external name 'DMA1_Stream1_interrupt';
  988. procedure DMA1_Stream2_interrupt; external name 'DMA1_Stream2_interrupt';
  989. procedure DMA1_Stream3_interrupt; external name 'DMA1_Stream3_interrupt';
  990. procedure DMA1_Stream4_interrupt; external name 'DMA1_Stream4_interrupt';
  991. procedure DMA1_Stream5_interrupt; external name 'DMA1_Stream5_interrupt';
  992. procedure DMA1_Stream6_interrupt; external name 'DMA1_Stream6_interrupt';
  993. procedure ADC_interrupt; external name 'ADC_interrupt';
  994. procedure CAN1_TX_interrupt; external name 'CAN1_TX_interrupt';
  995. procedure CAN1_RX0_interrupt; external name 'CAN1_RX0_interrupt';
  996. procedure CAN1_RX1_interrupt; external name 'CAN1_RX1_interrupt';
  997. procedure CAN1_SCE_interrupt; external name 'CAN1_SCE_interrupt';
  998. procedure EXTI9_5_interrupt; external name 'EXTI9_5_interrupt';
  999. procedure TIM1_BRK_TIM9_interrupt; external name 'TIM1_BRK_TIM9_interrupt';
  1000. procedure TIM1_UP_TIM10_interrupt; external name 'TIM1_UP_TIM10_interrupt';
  1001. procedure TIM1_TRG_COM_TIM11_interrupt; external name 'TIM1_TRG_COM_TIM11_interrupt';
  1002. procedure TIM1_CC_interrupt; external name 'TIM1_CC_interrupt';
  1003. procedure TIM2_interrupt; external name 'TIM2_interrupt';
  1004. procedure TIM3_interrupt; external name 'TIM3_interrupt';
  1005. procedure TIM4_interrupt; external name 'TIM4_interrupt';
  1006. procedure I2C1_EV_interrupt; external name 'I2C1_EV_interrupt';
  1007. procedure I2C1_ER_interrupt; external name 'I2C1_ER_interrupt';
  1008. procedure I2C2_EV_interrupt; external name 'I2C2_EV_interrupt';
  1009. procedure I2C2_ER_interrupt; external name 'I2C2_ER_interrupt';
  1010. procedure SPI1_interrupt; external name 'SPI1_interrupt';
  1011. procedure SPI2_interrupt; external name 'SPI2_interrupt';
  1012. procedure USART1_interrupt; external name 'USART1_interrupt';
  1013. procedure USART2_interrupt; external name 'USART2_interrupt';
  1014. procedure USART3_interrupt; external name 'USART3_interrupt';
  1015. procedure EXTI15_10_interrupt; external name 'EXTI15_10_interrupt';
  1016. procedure RTC_Alarm_interrupt; external name 'RTC_Alarm_interrupt';
  1017. procedure OTG_FS_WKUP_interrupt; external name 'OTG_FS_WKUP_interrupt';
  1018. procedure TIM8_BRK_TIM12_interrupt; external name 'TIM8_BRK_TIM12_interrupt';
  1019. procedure TIM8_UP_TIM13_interrupt; external name 'TIM8_UP_TIM13_interrupt';
  1020. procedure TIM8_TRG_COM_TIM14_interrupt; external name 'TIM8_TRG_COM_TIM14_interrupt';
  1021. procedure TIM8_CC_interrupt; external name 'TIM8_CC_interrupt';
  1022. procedure DMA1_Stream7_interrupt; external name 'DMA1_Stream7_interrupt';
  1023. procedure FMC_interrupt; external name 'FMC_interrupt';
  1024. procedure SDIO_interrupt; external name 'SDIO_interrupt';
  1025. procedure TIM5_interrupt; external name 'TIM5_interrupt';
  1026. procedure SPI3_interrupt; external name 'SPI3_interrupt';
  1027. procedure UART4_interrupt; external name 'UART4_interrupt';
  1028. procedure UART5_interrupt; external name 'UART5_interrupt';
  1029. procedure TIM6_DAC_interrupt; external name 'TIM6_DAC_interrupt';
  1030. procedure TIM7_interrupt; external name 'TIM7_interrupt';
  1031. procedure DMA2_Stream0_interrupt; external name 'DMA2_Stream0_interrupt';
  1032. procedure DMA2_Stream1_interrupt; external name 'DMA2_Stream1_interrupt';
  1033. procedure DMA2_Stream2_interrupt; external name 'DMA2_Stream2_interrupt';
  1034. procedure DMA2_Stream3_interrupt; external name 'DMA2_Stream3_interrupt';
  1035. procedure DMA2_Stream4_interrupt; external name 'DMA2_Stream4_interrupt';
  1036. procedure ETH_interrupt; external name 'ETH_interrupt';
  1037. procedure ETH_WKUP_interrupt; external name 'ETH_WKUP_interrupt';
  1038. procedure CAN2_TX_interrupt; external name 'CAN2_TX_interrupt';
  1039. procedure CAN2_RX0_interrupt; external name 'CAN2_RX0_interrupt';
  1040. procedure CAN2_RX1_interrupt; external name 'CAN2_RX1_interrupt';
  1041. procedure CAN2_SCE_interrupt; external name 'CAN2_SCE_interrupt';
  1042. procedure OTG_FS_interrupt; external name 'OTG_FS_interrupt';
  1043. procedure DMA2_Stream5_interrupt; external name 'DMA2_Stream5_interrupt';
  1044. procedure DMA2_Stream6_interrupt; external name 'DMA2_Stream6_interrupt';
  1045. procedure DMA2_Stream7_interrupt; external name 'DMA2_Stream7_interrupt';
  1046. procedure USART6_interrupt; external name 'USART6_interrupt';
  1047. procedure I2C3_EV_interrupt; external name 'I2C3_EV_interrupt';
  1048. procedure I2C3_ER_interrupt; external name 'I2C3_ER_interrupt';
  1049. procedure OTG_HS_EP1_OUT_interrupt; external name 'OTG_HS_EP1_OUT_interrupt';
  1050. procedure OTG_HS_EP1_IN_interrupt; external name 'OTG_HS_EP1_IN_interrupt';
  1051. procedure OTG_HS_WKUP_interrupt; external name 'OTG_HS_WKUP_interrupt';
  1052. procedure OTG_HS_interrupt; external name 'OTG_HS_interrupt';
  1053. procedure DCMI_interrupt; external name 'DCMI_interrupt';
  1054. procedure HASH_RNG_interrupt; external name 'HASH_RNG_interrupt';
  1055. procedure FPU_interrupt; external name 'FPU_interrupt';
  1056. procedure UART7_interrupt; external name 'UART7_interrupt';
  1057. procedure UART8_interrupt; external name 'UART8_interrupt';
  1058. procedure SPI4_interrupt; external name 'SPI4_interrupt';
  1059. procedure SPI5_interrupt; external name 'SPI5_interrupt';
  1060. procedure SPI6_interrupt; external name 'SPI6_interrupt';
  1061. procedure SAI1_interrupt; external name 'SAI1_interrupt';
  1062. procedure LTDC_interrupt; external name 'LTDC_interrupt';
  1063. procedure LTDC_ER_interrupt; external name 'LTDC_ER_interrupt';
  1064. procedure DMA2D_interrupt; external name 'DMA2D_interrupt';
  1065. {$i cortexm4f_start.inc}
  1066. procedure Vectors; assembler; nostackframe;
  1067. label interrupt_vectors;
  1068. asm
  1069. .section ".init.interrupt_vectors"
  1070. interrupt_vectors:
  1071. .long _stack_top
  1072. .long Startup
  1073. .long NonMaskableInt_interrupt
  1074. .long 0
  1075. .long MemoryManagement_interrupt
  1076. .long BusFault_interrupt
  1077. .long UsageFault_interrupt
  1078. .long 0
  1079. .long 0
  1080. .long 0
  1081. .long 0
  1082. .long SVCall_interrupt
  1083. .long DebugMonitor_interrupt
  1084. .long 0
  1085. .long PendSV_interrupt
  1086. .long SysTick_interrupt
  1087. .long WWDG_interrupt
  1088. .long PVD_interrupt
  1089. .long TAMP_STAMP_interrupt
  1090. .long RTC_WKUP_interrupt
  1091. .long FLASH_interrupt
  1092. .long RCC_interrupt
  1093. .long EXTI0_interrupt
  1094. .long EXTI1_interrupt
  1095. .long EXTI2_interrupt
  1096. .long EXTI3_interrupt
  1097. .long EXTI4_interrupt
  1098. .long DMA1_Stream0_interrupt
  1099. .long DMA1_Stream1_interrupt
  1100. .long DMA1_Stream2_interrupt
  1101. .long DMA1_Stream3_interrupt
  1102. .long DMA1_Stream4_interrupt
  1103. .long DMA1_Stream5_interrupt
  1104. .long DMA1_Stream6_interrupt
  1105. .long ADC_interrupt
  1106. .long CAN1_TX_interrupt
  1107. .long CAN1_RX0_interrupt
  1108. .long CAN1_RX1_interrupt
  1109. .long CAN1_SCE_interrupt
  1110. .long EXTI9_5_interrupt
  1111. .long TIM1_BRK_TIM9_interrupt
  1112. .long TIM1_UP_TIM10_interrupt
  1113. .long TIM1_TRG_COM_TIM11_interrupt
  1114. .long TIM1_CC_interrupt
  1115. .long TIM2_interrupt
  1116. .long TIM3_interrupt
  1117. .long TIM4_interrupt
  1118. .long I2C1_EV_interrupt
  1119. .long I2C1_ER_interrupt
  1120. .long I2C2_EV_interrupt
  1121. .long I2C2_ER_interrupt
  1122. .long SPI1_interrupt
  1123. .long SPI2_interrupt
  1124. .long USART1_interrupt
  1125. .long USART2_interrupt
  1126. .long USART3_interrupt
  1127. .long EXTI15_10_interrupt
  1128. .long RTC_Alarm_interrupt
  1129. .long OTG_FS_WKUP_interrupt
  1130. .long TIM8_BRK_TIM12_interrupt
  1131. .long TIM8_UP_TIM13_interrupt
  1132. .long TIM8_TRG_COM_TIM14_interrupt
  1133. .long TIM8_CC_interrupt
  1134. .long DMA1_Stream7_interrupt
  1135. .long FMC_interrupt
  1136. .long SDIO_interrupt
  1137. .long TIM5_interrupt
  1138. .long SPI3_interrupt
  1139. .long UART4_interrupt
  1140. .long UART5_interrupt
  1141. .long TIM6_DAC_interrupt
  1142. .long TIM7_interrupt
  1143. .long DMA2_Stream0_interrupt
  1144. .long DMA2_Stream1_interrupt
  1145. .long DMA2_Stream2_interrupt
  1146. .long DMA2_Stream3_interrupt
  1147. .long DMA2_Stream4_interrupt
  1148. .long ETH_interrupt
  1149. .long ETH_WKUP_interrupt
  1150. .long CAN2_TX_interrupt
  1151. .long CAN2_RX0_interrupt
  1152. .long CAN2_RX1_interrupt
  1153. .long CAN2_SCE_interrupt
  1154. .long OTG_FS_interrupt
  1155. .long DMA2_Stream5_interrupt
  1156. .long DMA2_Stream6_interrupt
  1157. .long DMA2_Stream7_interrupt
  1158. .long USART6_interrupt
  1159. .long I2C3_EV_interrupt
  1160. .long I2C3_ER_interrupt
  1161. .long OTG_HS_EP1_OUT_interrupt
  1162. .long OTG_HS_EP1_IN_interrupt
  1163. .long OTG_HS_WKUP_interrupt
  1164. .long OTG_HS_interrupt
  1165. .long DCMI_interrupt
  1166. .long 0
  1167. .long HASH_RNG_interrupt
  1168. .long FPU_interrupt
  1169. .long UART7_interrupt
  1170. .long UART8_interrupt
  1171. .long SPI4_interrupt
  1172. .long SPI5_interrupt
  1173. .long SPI6_interrupt
  1174. .long SAI1_interrupt
  1175. .long LTDC_interrupt
  1176. .long LTDC_ER_interrupt
  1177. .long DMA2D_interrupt
  1178. .weak NonMaskableInt_interrupt
  1179. .weak MemoryManagement_interrupt
  1180. .weak BusFault_interrupt
  1181. .weak UsageFault_interrupt
  1182. .weak SVCall_interrupt
  1183. .weak DebugMonitor_interrupt
  1184. .weak PendSV_interrupt
  1185. .weak SysTick_interrupt
  1186. .weak WWDG_interrupt
  1187. .weak PVD_interrupt
  1188. .weak TAMP_STAMP_interrupt
  1189. .weak RTC_WKUP_interrupt
  1190. .weak FLASH_interrupt
  1191. .weak RCC_interrupt
  1192. .weak EXTI0_interrupt
  1193. .weak EXTI1_interrupt
  1194. .weak EXTI2_interrupt
  1195. .weak EXTI3_interrupt
  1196. .weak EXTI4_interrupt
  1197. .weak DMA1_Stream0_interrupt
  1198. .weak DMA1_Stream1_interrupt
  1199. .weak DMA1_Stream2_interrupt
  1200. .weak DMA1_Stream3_interrupt
  1201. .weak DMA1_Stream4_interrupt
  1202. .weak DMA1_Stream5_interrupt
  1203. .weak DMA1_Stream6_interrupt
  1204. .weak ADC_interrupt
  1205. .weak CAN1_TX_interrupt
  1206. .weak CAN1_RX0_interrupt
  1207. .weak CAN1_RX1_interrupt
  1208. .weak CAN1_SCE_interrupt
  1209. .weak EXTI9_5_interrupt
  1210. .weak TIM1_BRK_TIM9_interrupt
  1211. .weak TIM1_UP_TIM10_interrupt
  1212. .weak TIM1_TRG_COM_TIM11_interrupt
  1213. .weak TIM1_CC_interrupt
  1214. .weak TIM2_interrupt
  1215. .weak TIM3_interrupt
  1216. .weak TIM4_interrupt
  1217. .weak I2C1_EV_interrupt
  1218. .weak I2C1_ER_interrupt
  1219. .weak I2C2_EV_interrupt
  1220. .weak I2C2_ER_interrupt
  1221. .weak SPI1_interrupt
  1222. .weak SPI2_interrupt
  1223. .weak USART1_interrupt
  1224. .weak USART2_interrupt
  1225. .weak USART3_interrupt
  1226. .weak EXTI15_10_interrupt
  1227. .weak RTC_Alarm_interrupt
  1228. .weak OTG_FS_WKUP_interrupt
  1229. .weak TIM8_BRK_TIM12_interrupt
  1230. .weak TIM8_UP_TIM13_interrupt
  1231. .weak TIM8_TRG_COM_TIM14_interrupt
  1232. .weak TIM8_CC_interrupt
  1233. .weak DMA1_Stream7_interrupt
  1234. .weak FMC_interrupt
  1235. .weak SDIO_interrupt
  1236. .weak TIM5_interrupt
  1237. .weak SPI3_interrupt
  1238. .weak UART4_interrupt
  1239. .weak UART5_interrupt
  1240. .weak TIM6_DAC_interrupt
  1241. .weak TIM7_interrupt
  1242. .weak DMA2_Stream0_interrupt
  1243. .weak DMA2_Stream1_interrupt
  1244. .weak DMA2_Stream2_interrupt
  1245. .weak DMA2_Stream3_interrupt
  1246. .weak DMA2_Stream4_interrupt
  1247. .weak ETH_interrupt
  1248. .weak ETH_WKUP_interrupt
  1249. .weak CAN2_TX_interrupt
  1250. .weak CAN2_RX0_interrupt
  1251. .weak CAN2_RX1_interrupt
  1252. .weak CAN2_SCE_interrupt
  1253. .weak OTG_FS_interrupt
  1254. .weak DMA2_Stream5_interrupt
  1255. .weak DMA2_Stream6_interrupt
  1256. .weak DMA2_Stream7_interrupt
  1257. .weak USART6_interrupt
  1258. .weak I2C3_EV_interrupt
  1259. .weak I2C3_ER_interrupt
  1260. .weak OTG_HS_EP1_OUT_interrupt
  1261. .weak OTG_HS_EP1_IN_interrupt
  1262. .weak OTG_HS_WKUP_interrupt
  1263. .weak OTG_HS_interrupt
  1264. .weak DCMI_interrupt
  1265. .weak HASH_RNG_interrupt
  1266. .weak FPU_interrupt
  1267. .weak UART7_interrupt
  1268. .weak UART8_interrupt
  1269. .weak SPI4_interrupt
  1270. .weak SPI5_interrupt
  1271. .weak SPI6_interrupt
  1272. .weak SAI1_interrupt
  1273. .weak LTDC_interrupt
  1274. .weak LTDC_ER_interrupt
  1275. .weak DMA2D_interrupt
  1276. .set NonMaskableInt_interrupt, HaltProc
  1277. .set MemoryManagement_interrupt, HaltProc
  1278. .set BusFault_interrupt, HaltProc
  1279. .set UsageFault_interrupt, HaltProc
  1280. .set SVCall_interrupt, HaltProc
  1281. .set DebugMonitor_interrupt, HaltProc
  1282. .set PendSV_interrupt, HaltProc
  1283. .set SysTick_interrupt, HaltProc
  1284. .set WWDG_interrupt, HaltProc
  1285. .set PVD_interrupt, HaltProc
  1286. .set TAMP_STAMP_interrupt, HaltProc
  1287. .set RTC_WKUP_interrupt, HaltProc
  1288. .set FLASH_interrupt, HaltProc
  1289. .set RCC_interrupt, HaltProc
  1290. .set EXTI0_interrupt, HaltProc
  1291. .set EXTI1_interrupt, HaltProc
  1292. .set EXTI2_interrupt, HaltProc
  1293. .set EXTI3_interrupt, HaltProc
  1294. .set EXTI4_interrupt, HaltProc
  1295. .set DMA1_Stream0_interrupt, HaltProc
  1296. .set DMA1_Stream1_interrupt, HaltProc
  1297. .set DMA1_Stream2_interrupt, HaltProc
  1298. .set DMA1_Stream3_interrupt, HaltProc
  1299. .set DMA1_Stream4_interrupt, HaltProc
  1300. .set DMA1_Stream5_interrupt, HaltProc
  1301. .set DMA1_Stream6_interrupt, HaltProc
  1302. .set ADC_interrupt, HaltProc
  1303. .set CAN1_TX_interrupt, HaltProc
  1304. .set CAN1_RX0_interrupt, HaltProc
  1305. .set CAN1_RX1_interrupt, HaltProc
  1306. .set CAN1_SCE_interrupt, HaltProc
  1307. .set EXTI9_5_interrupt, HaltProc
  1308. .set TIM1_BRK_TIM9_interrupt, HaltProc
  1309. .set TIM1_UP_TIM10_interrupt, HaltProc
  1310. .set TIM1_TRG_COM_TIM11_interrupt, HaltProc
  1311. .set TIM1_CC_interrupt, HaltProc
  1312. .set TIM2_interrupt, HaltProc
  1313. .set TIM3_interrupt, HaltProc
  1314. .set TIM4_interrupt, HaltProc
  1315. .set I2C1_EV_interrupt, HaltProc
  1316. .set I2C1_ER_interrupt, HaltProc
  1317. .set I2C2_EV_interrupt, HaltProc
  1318. .set I2C2_ER_interrupt, HaltProc
  1319. .set SPI1_interrupt, HaltProc
  1320. .set SPI2_interrupt, HaltProc
  1321. .set USART1_interrupt, HaltProc
  1322. .set USART2_interrupt, HaltProc
  1323. .set USART3_interrupt, HaltProc
  1324. .set EXTI15_10_interrupt, HaltProc
  1325. .set RTC_Alarm_interrupt, HaltProc
  1326. .set OTG_FS_WKUP_interrupt, HaltProc
  1327. .set TIM8_BRK_TIM12_interrupt, HaltProc
  1328. .set TIM8_UP_TIM13_interrupt, HaltProc
  1329. .set TIM8_TRG_COM_TIM14_interrupt, HaltProc
  1330. .set TIM8_CC_interrupt, HaltProc
  1331. .set DMA1_Stream7_interrupt, HaltProc
  1332. .set FMC_interrupt, HaltProc
  1333. .set SDIO_interrupt, HaltProc
  1334. .set TIM5_interrupt, HaltProc
  1335. .set SPI3_interrupt, HaltProc
  1336. .set UART4_interrupt, HaltProc
  1337. .set UART5_interrupt, HaltProc
  1338. .set TIM6_DAC_interrupt, HaltProc
  1339. .set TIM7_interrupt, HaltProc
  1340. .set DMA2_Stream0_interrupt, HaltProc
  1341. .set DMA2_Stream1_interrupt, HaltProc
  1342. .set DMA2_Stream2_interrupt, HaltProc
  1343. .set DMA2_Stream3_interrupt, HaltProc
  1344. .set DMA2_Stream4_interrupt, HaltProc
  1345. .set ETH_interrupt, HaltProc
  1346. .set ETH_WKUP_interrupt, HaltProc
  1347. .set CAN2_TX_interrupt, HaltProc
  1348. .set CAN2_RX0_interrupt, HaltProc
  1349. .set CAN2_RX1_interrupt, HaltProc
  1350. .set CAN2_SCE_interrupt, HaltProc
  1351. .set OTG_FS_interrupt, HaltProc
  1352. .set DMA2_Stream5_interrupt, HaltProc
  1353. .set DMA2_Stream6_interrupt, HaltProc
  1354. .set DMA2_Stream7_interrupt, HaltProc
  1355. .set USART6_interrupt, HaltProc
  1356. .set I2C3_EV_interrupt, HaltProc
  1357. .set I2C3_ER_interrupt, HaltProc
  1358. .set OTG_HS_EP1_OUT_interrupt, HaltProc
  1359. .set OTG_HS_EP1_IN_interrupt, HaltProc
  1360. .set OTG_HS_WKUP_interrupt, HaltProc
  1361. .set OTG_HS_interrupt, HaltProc
  1362. .set DCMI_interrupt, HaltProc
  1363. .set HASH_RNG_interrupt, HaltProc
  1364. .set FPU_interrupt, HaltProc
  1365. .set UART7_interrupt, HaltProc
  1366. .set UART8_interrupt, HaltProc
  1367. .set SPI4_interrupt, HaltProc
  1368. .set SPI5_interrupt, HaltProc
  1369. .set SPI6_interrupt, HaltProc
  1370. .set SAI1_interrupt, HaltProc
  1371. .set LTDC_interrupt, HaltProc
  1372. .set LTDC_ER_interrupt, HaltProc
  1373. .set DMA2D_interrupt, HaltProc
  1374. .text
  1375. end;
  1376. end.