stm32f429xx.pp 70 KB

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