stm32f401xx.pp 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932
  1. {$IFNDEF FPC_DOTTEDUNITS}
  2. unit stm32f401xx;
  3. {$ENDIF FPC_DOTTEDUNITS}
  4. interface
  5. {$PACKRECORDS 2}
  6. {$GOTO ON}
  7. {$MODESWITCH ADVANCEDRECORDS}
  8. // *
  9. // ******************************************************************************
  10. // * @file stm32f401xx.h
  11. // * @author MCD Application Team
  12. // * @version V2.4.0
  13. // * @date 14-August-2015
  14. // CMSIS STM32F401xCxx 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. EXTI9_5_IRQn = 23, // External Line[9:5] Interrupts
  82. TIM1_BRK_TIM9_IRQn = 24, // TIM1 Break interrupt and TIM9 global interrupt
  83. TIM1_UP_TIM10_IRQn = 25, // TIM1 Update Interrupt and TIM10 global interrupt
  84. TIM1_TRG_COM_TIM11_IRQn = 26, // TIM1 Trigger and Commutation Interrupt and TIM11 global interrupt
  85. TIM1_CC_IRQn = 27, // TIM1 Capture Compare Interrupt
  86. TIM2_IRQn = 28, // TIM2 global Interrupt
  87. TIM3_IRQn = 29, // TIM3 global Interrupt
  88. TIM4_IRQn = 30, // TIM4 global Interrupt
  89. I2C1_EV_IRQn = 31, // I2C1 Event Interrupt
  90. I2C1_ER_IRQn = 32, // I2C1 Error Interrupt
  91. I2C2_EV_IRQn = 33, // I2C2 Event Interrupt
  92. I2C2_ER_IRQn = 34, // I2C2 Error Interrupt
  93. SPI1_IRQn = 35, // SPI1 global Interrupt
  94. SPI2_IRQn = 36, // SPI2 global Interrupt
  95. USART1_IRQn = 37, // USART1 global Interrupt
  96. USART2_IRQn = 38, // USART2 global Interrupt
  97. EXTI15_10_IRQn = 40, // External Line[15:10] Interrupts
  98. RTC_Alarm_IRQn = 41, // RTC Alarm (A and B) through EXTI Line Interrupt
  99. OTG_FS_WKUP_IRQn = 42, // USB OTG FS Wakeup through EXTI line interrupt
  100. DMA1_Stream7_IRQn = 47, // DMA1 Stream7 Interrupt
  101. SDIO_IRQn = 49, // SDIO global Interrupt
  102. TIM5_IRQn = 50, // TIM5 global Interrupt
  103. SPI3_IRQn = 51, // SPI3 global Interrupt
  104. DMA2_Stream0_IRQn = 56, // DMA2 Stream 0 global Interrupt
  105. DMA2_Stream1_IRQn = 57, // DMA2 Stream 1 global Interrupt
  106. DMA2_Stream2_IRQn = 58, // DMA2 Stream 2 global Interrupt
  107. DMA2_Stream3_IRQn = 59, // DMA2 Stream 3 global Interrupt
  108. DMA2_Stream4_IRQn = 60, // DMA2 Stream 4 global Interrupt
  109. OTG_FS_IRQn = 67, // USB OTG FS global Interrupt
  110. DMA2_Stream5_IRQn = 68, // DMA2 Stream 5 global interrupt
  111. DMA2_Stream6_IRQn = 69, // DMA2 Stream 6 global interrupt
  112. DMA2_Stream7_IRQn = 70, // DMA2 Stream 7 global interrupt
  113. USART6_IRQn = 71, // USART6 global interrupt
  114. I2C3_EV_IRQn = 72, // I2C3 event interrupt
  115. I2C3_ER_IRQn = 73, // I2C3 error interrupt
  116. FPU_IRQn = 81, // FPU global interrupt
  117. SPI4_IRQn = 84 // SPI4 global Interrupt
  118. );
  119. TADC_Registers = record
  120. SR : longword; // ADC status register
  121. CR1 : longword; // ADC control register 1
  122. CR2 : longword; // ADC control register 2
  123. SMPR1 : longword; // ADC sample time register 1
  124. SMPR2 : longword; // ADC sample time register 2
  125. JOFR1 : longword; // ADC injected channel data offset register 1
  126. JOFR2 : longword; // ADC injected channel data offset register 2
  127. JOFR3 : longword; // ADC injected channel data offset register 3
  128. JOFR4 : longword; // ADC injected channel data offset register 4
  129. HTR : longword; // ADC watchdog higher threshold register
  130. LTR : longword; // ADC watchdog lower threshold register
  131. SQR1 : longword; // ADC regular sequence register 1
  132. SQR2 : longword; // ADC regular sequence register 2
  133. SQR3 : longword; // ADC regular sequence register 3
  134. JSQR : longword; // ADC injected sequence register
  135. JDR1 : longword; // ADC injected data register 1
  136. JDR2 : longword; // ADC injected data register 2
  137. JDR3 : longword; // ADC injected data register 3
  138. JDR4 : longword; // ADC injected data register 4
  139. DR : longword; // ADC regular data register
  140. end;
  141. TADC_COMMON_Registers = record
  142. CSR : longword; // ADC Common status register
  143. CCR : longword; // ADC common control register
  144. CDR : longword; // ADC common regular data register for dual
  145. end;
  146. TCRC_Registers = record
  147. DR : longword; // CRC Data register
  148. IDR : byte; // CRC Independent data register
  149. RESERVED0 : byte; // Reserved, 0x05
  150. RESERVED1 : word; // Reserved, 0x06
  151. CR : longword; // CRC Control register
  152. end;
  153. TDBGMCU_Registers = record
  154. IDCODE : longword; // MCU device ID code
  155. CR : longword; // Debug MCU configuration register
  156. APB1FZ : longword; // Debug MCU APB1 freeze register
  157. APB2FZ : longword; // Debug MCU APB2 freeze register
  158. end;
  159. TDMA_STREAM_Registers = record
  160. CR : longword; // DMA stream x configuration register
  161. NDTR : longword; // DMA stream x number of data register
  162. PAR : longword; // DMA stream x peripheral address register
  163. M0AR : longword; // DMA stream x memory 0 address register
  164. M1AR : longword; // DMA stream x memory 1 address register
  165. FCR : longword; // DMA stream x FIFO control register
  166. end;
  167. TDMA_Registers = record
  168. LISR : longword; // DMA low interrupt status register
  169. HISR : longword; // DMA high interrupt status register
  170. LIFCR : longword; // DMA low interrupt flag clear register
  171. HIFCR : longword; // DMA high interrupt flag clear register
  172. end;
  173. TEXTI_Registers = record
  174. IMR : longword; // EXTI Interrupt mask register
  175. EMR : longword; // EXTI Event mask register
  176. RTSR : longword; // EXTI Rising trigger selection register
  177. FTSR : longword; // EXTI Falling trigger selection register
  178. SWIER : longword; // EXTI Software interrupt event register
  179. PR : longword; // EXTI Pending register
  180. end;
  181. TFLASH_Registers = record
  182. ACR : longword; // FLASH access control register
  183. KEYR : longword; // FLASH key register
  184. OPTKEYR : longword; // FLASH option key register
  185. SR : longword; // FLASH status register
  186. CR : longword; // FLASH control register
  187. OPTCR : longword; // FLASH option control register
  188. OPTCR1 : longword; // FLASH option control register 1
  189. end;
  190. TGPIO_Registers = record
  191. MODER : longword; // GPIO port mode register
  192. OTYPER : longword; // GPIO port output type register
  193. OSPEEDR : longword; // GPIO port output speed register
  194. PUPDR : longword; // GPIO port pull-up/pull-down register
  195. IDR : longword; // GPIO port input data register
  196. ODR : longword; // GPIO port output data register
  197. BSRR : longword; // GPIO port bit set/reset register
  198. LCKR : longword; // GPIO port configuration lock register
  199. AFR : array[0..1] of longword; // GPIO alternate function registers
  200. end;
  201. TSYSCFG_Registers = record
  202. MEMRMP : longword; // SYSCFG memory remap register
  203. PMC : longword; // SYSCFG peripheral mode configuration register
  204. EXTICR : array[0..3] of longword; // SYSCFG external interrupt configuration registers
  205. RESERVED : array[0..1] of longword; // Reserved, 0x18-0x1C
  206. CMPCR : longword; // SYSCFG Compensation cell control register
  207. end;
  208. TI2C_Registers = record
  209. CR1 : longword; // I2C Control register 1
  210. CR2 : longword; // I2C Control register 2
  211. OAR1 : longword; // I2C Own address register 1
  212. OAR2 : longword; // I2C Own address register 2
  213. DR : longword; // I2C Data register
  214. SR1 : longword; // I2C Status register 1
  215. SR2 : longword; // I2C Status register 2
  216. CCR : longword; // I2C Clock control register
  217. TRISE : longword; // I2C TRISE register
  218. FLTR : longword; // I2C FLTR register
  219. end;
  220. TIWDG_Registers = record
  221. KR : longword; // IWDG Key register
  222. PR : longword; // IWDG Prescaler register
  223. RLR : longword; // IWDG Reload register
  224. SR : longword; // IWDG Status register
  225. end;
  226. TPWR_Registers = record
  227. CR : longword; // PWR power control register
  228. CSR : longword; // PWR power control/status register
  229. end;
  230. TRCC_Registers = record
  231. CR : longword; // RCC clock control register
  232. PLLCFGR : longword; // RCC PLL configuration register
  233. CFGR : longword; // RCC clock configuration register
  234. CIR : longword; // RCC clock interrupt register
  235. AHB1RSTR : longword; // RCC AHB1 peripheral reset register
  236. AHB2RSTR : longword; // RCC AHB2 peripheral reset register
  237. AHB3RSTR : longword; // RCC AHB3 peripheral reset register
  238. RESERVED0 : longword; // Reserved, 0x1C
  239. APB1RSTR : longword; // RCC APB1 peripheral reset register
  240. APB2RSTR : longword; // RCC APB2 peripheral reset register
  241. RESERVED1 : array[0..1] of longword; // Reserved, 0x28-0x2C
  242. AHB1ENR : longword; // RCC AHB1 peripheral clock register
  243. AHB2ENR : longword; // RCC AHB2 peripheral clock register
  244. AHB3ENR : longword; // RCC AHB3 peripheral clock register
  245. RESERVED2 : longword; // Reserved, 0x3C
  246. APB1ENR : longword; // RCC APB1 peripheral clock enable register
  247. APB2ENR : longword; // RCC APB2 peripheral clock enable register
  248. RESERVED3 : array[0..1] of longword; // Reserved, 0x48-0x4C
  249. AHB1LPENR : longword; // RCC AHB1 peripheral clock enable in low power mode register
  250. AHB2LPENR : longword; // RCC AHB2 peripheral clock enable in low power mode register
  251. AHB3LPENR : longword; // RCC AHB3 peripheral clock enable in low power mode register
  252. RESERVED4 : longword; // Reserved, 0x5C
  253. APB1LPENR : longword; // RCC APB1 peripheral clock enable in low power mode register
  254. APB2LPENR : longword; // RCC APB2 peripheral clock enable in low power mode register
  255. RESERVED5 : array[0..1] of longword; // Reserved, 0x68-0x6C
  256. BDCR : longword; // RCC Backup domain control register
  257. CSR : longword; // RCC clock control & status register
  258. RESERVED6 : array[0..1] of longword; // Reserved, 0x78-0x7C
  259. SSCGR : longword; // RCC spread spectrum clock generation register
  260. PLLI2SCFGR : longword; // RCC PLLI2S configuration register
  261. RESERVED7 : longword; // Reserved, 0x88
  262. DCKCFGR : longWord; // RCC Dedicated Clocks Configuration Register
  263. end;
  264. TRTC_Registers = record
  265. TR : longword; // RTC time register
  266. DR : longword; // RTC date register
  267. CR : longword; // RTC control register
  268. ISR : longword; // RTC initialization and status register
  269. PRER : longword; // RTC prescaler register
  270. WUTR : longword; // RTC wakeup timer register
  271. CALIBR : longword; // RTC calibration register
  272. ALRMAR : longword; // RTC alarm A register
  273. ALRMBR : longword; // RTC alarm B register
  274. WPR : longword; // RTC write protection register
  275. SSR : longword; // RTC sub second register
  276. SHIFTR : longword; // RTC shift control register
  277. TSTR : longword; // RTC time stamp time register
  278. TSDR : longword; // RTC time stamp date register
  279. TSSSR : longword; // RTC time-stamp sub second register
  280. CALR : longword; // RTC calibration register
  281. TAFCR : longword; // RTC tamper and alternate function configuration register
  282. ALRMASSR : longword; // RTC alarm A sub second register
  283. ALRMBSSR : longword; // RTC alarm B sub second register
  284. RESERVED7 : longword; // Reserved, 0x4C
  285. BKP0R : longword; // RTC backup register 1
  286. BKP1R : longword; // RTC backup register 1
  287. BKP2R : longword; // RTC backup register 2
  288. BKP3R : longword; // RTC backup register 3
  289. BKP4R : longword; // RTC backup register 4
  290. BKP5R : longword; // RTC backup register 5
  291. BKP6R : longword; // RTC backup register 6
  292. BKP7R : longword; // RTC backup register 7
  293. BKP8R : longword; // RTC backup register 8
  294. BKP9R : longword; // RTC backup register 9
  295. BKP10R : longword; // RTC backup register 10
  296. BKP11R : longword; // RTC backup register 11
  297. BKP12R : longword; // RTC backup register 12
  298. BKP13R : longword; // RTC backup register 13
  299. BKP14R : longword; // RTC backup register 14
  300. BKP15R : longword; // RTC backup register 15
  301. BKP16R : longword; // RTC backup register 16
  302. BKP17R : longword; // RTC backup register 17
  303. BKP18R : longword; // RTC backup register 18
  304. BKP19R : longword; // RTC backup register 19
  305. end;
  306. TSDIO_Registers = record
  307. POWER : longword; // SDIO power control register
  308. CLKCR : longword; // SDI clock control register
  309. ARG : longword; // SDIO argument register
  310. CMD : longword; // SDIO command register
  311. RESPCMD : longword; // SDIO command response register
  312. RESP1 : longword; // SDIO response 1 register
  313. RESP2 : longword; // SDIO response 2 register
  314. RESP3 : longword; // SDIO response 3 register
  315. RESP4 : longword; // SDIO response 4 register
  316. DTIMER : longword; // SDIO data timer register
  317. DLEN : longword; // SDIO data length register
  318. DCTRL : longword; // SDIO data control register
  319. DCOUNT : longword; // SDIO data counter register
  320. STA : longword; // SDIO status register
  321. ICR : longword; // SDIO interrupt clear register
  322. MASK : longword; // SDIO mask register
  323. RESERVED0 : array[0..1] of longword; // Reserved, 0x40-0x44
  324. FIFOCNT : longword; // SDIO FIFO counter register
  325. RESERVED1 : array[0..12] of longword; // Reserved, 0x4C-0x7C
  326. FIFO : longword; // SDIO data FIFO register
  327. end;
  328. TSPI_Registers = record
  329. CR1 : longword; // SPI control register 1 (not used in I2S mode)
  330. CR2 : longword; // SPI control register 2
  331. SR : longword; // SPI status register
  332. DR : longword; // SPI data register
  333. CRCPR : longword; // SPI CRC polynomial register (not used in I2S mode)
  334. RXCRCR : longword; // SPI RX CRC register (not used in I2S mode)
  335. TXCRCR : longword; // SPI TX CRC register (not used in I2S mode)
  336. I2SCFGR : longword; // SPI_I2S configuration register
  337. I2SPR : longword; // SPI_I2S prescaler register
  338. end;
  339. TTIM_Registers = record
  340. CR1 : longword; // TIM control register 1
  341. CR2 : longword; // TIM control register 2
  342. SMCR : longword; // TIM slave mode control register
  343. DIER : longword; // TIM DMA/interrupt enable register
  344. SR : longword; // TIM status register
  345. EGR : longword; // TIM event generation register
  346. CCMR1 : longword; // TIM capture/compare mode register 1
  347. CCMR2 : longword; // TIM capture/compare mode register 2
  348. CCER : longword; // TIM capture/compare enable register
  349. CNT : longword; // TIM counter register
  350. PSC : longword; // TIM prescaler
  351. ARR : longword; // TIM auto-reload register
  352. RCR : longword; // TIM repetition counter register
  353. CCR1 : longword; // TIM capture/compare register 1
  354. CCR2 : longword; // TIM capture/compare register 2
  355. CCR3 : longword; // TIM capture/compare register 3
  356. CCR4 : longword; // TIM capture/compare register 4
  357. BDTR : longword; // TIM break and dead-time register
  358. DCR : longword; // TIM DMA control register
  359. DMAR : longword; // TIM DMA address for full transfer
  360. &OR : longword; // TIM option register
  361. end;
  362. TUSART_Registers = record
  363. SR : longword; // USART Status register
  364. DR : longword; // USART Data register
  365. BRR : longword; // USART Baud rate register
  366. CR1 : longword; // USART Control register 1
  367. CR2 : longword; // USART Control register 2
  368. CR3 : longword; // USART Control register 3
  369. GTPR : longword; // USART Guard time and prescaler register
  370. end;
  371. TWWDG_Registers = record
  372. CR : longword; // WWDG Control register
  373. CFR : longword; // WWDG Configuration register
  374. SR : longword; // WWDG Status register
  375. end;
  376. TUSB_OTG_GLOBAL_Registers = record
  377. GOTGCTL : longword; // USB_OTG Control and Status Register
  378. GOTGINT : longword; // USB_OTG Interrupt Register
  379. GAHBCFG : longword; // Core AHB Configuration Register
  380. GUSBCFG : longword; // Core USB Configuration Register
  381. GRSTCTL : longword; // Core Reset Register
  382. GINTSTS : longword; // Core Interrupt Register
  383. GINTMSK : longword; // Core Interrupt Mask Register
  384. GRXSTSR : longword; // Receive Sts Q Read Register
  385. GRXSTSP : longword; // Receive Sts Q Read & POP Register
  386. GRXFSIZ : longword; // Receive FIFO Size Register
  387. DIEPTXF0_HNPTXFSIZ : longword; // EP0 / Non Periodic Tx FIFO Size Register
  388. HNPTXSTS : longword; // Non Periodic Tx FIFO/Queue Sts reg
  389. RESERVED30 : array[0..1] of longword; // Reserved
  390. GCCFG : longword; // General Purpose IO Register
  391. CID : longword; // User ID Register
  392. RESERVED40 : array[0..47] of longword; // Reserved
  393. HPTXFSIZ : longword; // Host Periodic Tx FIFO Size Reg
  394. DIEPTXF : array[0..14] of longword; // dev Periodic Transmit FIFO
  395. end;
  396. TUSB_OTG_DEVICE_Registers = record
  397. DCFG : longword; // dev Configuration Register
  398. DCTL : longword; // dev Control Register
  399. DSTS : longword; // dev Status Register (RO)
  400. RESERVED0C : longword; // Reserved
  401. DIEPMSK : longword; // dev IN Endpoint Mask
  402. DOEPMSK : longword; // dev OUT Endpoint Mask
  403. DAINT : longword; // dev All Endpoints Itr Reg
  404. DAINTMSK : longword; // dev All Endpoints Itr Mask
  405. RESERVED20 : longword; // Reserved
  406. RESERVED9 : longword; // Reserved
  407. DVBUSDIS : longword; // dev VBUS discharge Register
  408. DVBUSPULSE : longword; // dev VBUS Pulse Register
  409. DTHRCTL : longword; // dev thr
  410. DIEPEMPMSK : longword; // dev empty msk
  411. DEACHINT : longword; // dedicated EP interrupt
  412. DEACHMSK : longword; // dedicated EP msk
  413. RESERVED40 : longword; // dedicated EP mask
  414. DINEP1MSK : longword; // dedicated EP mask
  415. RESERVED44 : array[0..14] of longword; // Reserved
  416. DOUTEP1MSK : longword; // dedicated EP msk
  417. end;
  418. TUSB_OTG_INENDPOINT_Registers = record
  419. DIEPCTL : longword; // dev IN Endpoint Control Reg 900h + (ep_num * 20h) + 00h
  420. RESERVED04 : longword; // Reserved 900h + (ep_num * 20h) + 04h
  421. DIEPINT : longword; // dev IN Endpoint Itr Reg 900h + (ep_num * 20h) + 08h
  422. RESERVED0C : longword; // Reserved 900h + (ep_num * 20h) + 0Ch
  423. DIEPTSIZ : longword; // IN Endpoint Txfer Size 900h + (ep_num * 20h) + 10h
  424. DIEPDMA : longword; // IN Endpoint DMA Address Reg 900h + (ep_num * 20h) + 14h
  425. DTXFSTS : longword; // IN Endpoint Tx FIFO Status Reg 900h + (ep_num * 20h) + 18h
  426. RESERVED18 : longword; // Reserved 900h+(ep_num*20h)+1Ch-900h+ (ep_num * 20h) + 1Ch
  427. end;
  428. TUSB_OTG_OUTENDPOINT_Registers = record
  429. DOEPCTL : longword; // dev OUT Endpoint Control Reg B00h + (ep_num * 20h) + 00h
  430. RESERVED04 : longword; // Reserved B00h + (ep_num * 20h) + 04h
  431. DOEPINT : longword; // dev OUT Endpoint Itr Reg B00h + (ep_num * 20h) + 08h
  432. RESERVED0C : longword; // Reserved B00h + (ep_num * 20h) + 0Ch
  433. DOEPTSIZ : longword; // dev OUT Endpoint Txfer Size B00h + (ep_num * 20h) + 10h
  434. DOEPDMA : longword; // dev OUT Endpoint DMA Address B00h + (ep_num * 20h) + 14h
  435. RESERVED18 : array[0..1] of longword; // Reserved B00h + (ep_num * 20h) + 18h - B00h + (ep_num * 20h) + 1Ch
  436. end;
  437. TUSB_OTG_HOST_Registers = record
  438. HCFG : longword; // Host Configuration Register 400h
  439. HFIR : longword; // Host Frame Interval Register 404h
  440. HFNUM : longword; // Host Frame Nbr/Frame Remaining 408h
  441. RESERVED40C : longword; // Reserved 40Ch
  442. HPTXSTS : longword; // Host Periodic Tx FIFO/ Queue Status 410h
  443. HAINT : longword; // Host All Channels Interrupt Register 414h
  444. HAINTMSK : longword; // Host All Channels Interrupt Mask 418h
  445. end;
  446. TUSB_OTG_HOSTCHANNEL_Registers = record
  447. HCCHAR : longword;
  448. HCSPLT : longword;
  449. HCINT : longword;
  450. HCINTMSK : longword;
  451. HCTSIZ : longword;
  452. HCDMA : longword;
  453. RESERVED : array[0..1] of longword;
  454. end;
  455. const
  456. FLASH_BASE = $08000000; // FLASH(up to 1 MB) base address in the alias region
  457. CCMDATARAM_BASE = $10000000; // CCM(core coupled memory) data RAM(64 KB) base address in the alias region
  458. SRAM1_BASE = $20000000; // SRAM1(112 KB) base address in the alias region
  459. SRAM2_BASE = $2001C000; // SRAM2(16 KB) base address in the alias region
  460. PERIPH_BASE = $40000000; // Peripheral base address in the alias region
  461. BKPSRAM_BASE = $40024000; // Backup SRAM(4 KB) base address in the alias region
  462. SRAM1_BB_BASE = $22000000; // SRAM1(112 KB) base address in the bit-band region
  463. SRAM2_BB_BASE = $22380000; // SRAM2(16 KB) base address in the bit-band region
  464. PERIPH_BB_BASE = $42000000; // Peripheral base address in the bit-band region
  465. BKPSRAM_BB_BASE = $42480000; // Backup SRAM(4 KB) base address in the bit-band region
  466. SRAM_BASE = $20000000;
  467. SRAM_BB_BASE = $22000000;
  468. APB1PERIPH_BASE = $40000000;
  469. APB2PERIPH_BASE = PERIPH_BASE + $00010000;
  470. AHB1PERIPH_BASE = PERIPH_BASE + $00020000;
  471. AHB2PERIPH_BASE = PERIPH_BASE + $10000000;
  472. TIM2_BASE = APB1PERIPH_BASE + $0000;
  473. TIM3_BASE = APB1PERIPH_BASE + $0400;
  474. TIM4_BASE = APB1PERIPH_BASE + $0800;
  475. TIM5_BASE = APB1PERIPH_BASE + $0C00;
  476. RTC_BASE = APB1PERIPH_BASE + $2800;
  477. WWDG_BASE = APB1PERIPH_BASE + $2C00;
  478. IWDG_BASE = APB1PERIPH_BASE + $3000;
  479. I2S2ext_BASE = APB1PERIPH_BASE + $3400;
  480. SPI2_BASE = APB1PERIPH_BASE + $3800;
  481. SPI3_BASE = APB1PERIPH_BASE + $3C00;
  482. I2S3ext_BASE = APB1PERIPH_BASE + $4000;
  483. USART2_BASE = APB1PERIPH_BASE + $4400;
  484. I2C1_BASE = APB1PERIPH_BASE + $5400;
  485. I2C2_BASE = APB1PERIPH_BASE + $5800;
  486. I2C3_BASE = APB1PERIPH_BASE + $5C00;
  487. PWR_BASE = APB1PERIPH_BASE + $7000;
  488. TIM1_BASE = APB2PERIPH_BASE + $0000;
  489. USART1_BASE = APB2PERIPH_BASE + $1000;
  490. USART6_BASE = APB2PERIPH_BASE + $1400;
  491. ADC1_BASE = APB2PERIPH_BASE + $2000;
  492. ADC_BASE = APB2PERIPH_BASE + $2300;
  493. SDIO_BASE = APB2PERIPH_BASE + $2C00;
  494. SPI1_BASE = APB2PERIPH_BASE + $3000;
  495. SPI4_BASE = APB2PERIPH_BASE + $3400;
  496. SYSCFG_BASE = APB2PERIPH_BASE + $3800;
  497. EXTI_BASE = APB2PERIPH_BASE + $3C00;
  498. TIM9_BASE = APB2PERIPH_BASE + $4000;
  499. TIM10_BASE = APB2PERIPH_BASE + $4400;
  500. TIM11_BASE = APB2PERIPH_BASE + $4800;
  501. GPIOA_BASE = AHB1PERIPH_BASE + $0000;
  502. GPIOB_BASE = AHB1PERIPH_BASE + $0400;
  503. GPIOC_BASE = AHB1PERIPH_BASE + $0800;
  504. GPIOD_BASE = AHB1PERIPH_BASE + $0C00;
  505. GPIOE_BASE = AHB1PERIPH_BASE + $1000;
  506. GPIOH_BASE = AHB1PERIPH_BASE + $1C00;
  507. CRC_BASE = AHB1PERIPH_BASE + $3000;
  508. RCC_BASE = AHB1PERIPH_BASE + $3800;
  509. FLASH_R_BASE = AHB1PERIPH_BASE + $3C00;
  510. DMA1_BASE = AHB1PERIPH_BASE + $6000;
  511. DMA1_Stream0_BASE = DMA1_BASE + $010;
  512. DMA1_Stream1_BASE = DMA1_BASE + $028;
  513. DMA1_Stream2_BASE = DMA1_BASE + $040;
  514. DMA1_Stream3_BASE = DMA1_BASE + $058;
  515. DMA1_Stream4_BASE = DMA1_BASE + $070;
  516. DMA1_Stream5_BASE = DMA1_BASE + $088;
  517. DMA1_Stream6_BASE = DMA1_BASE + $0A0;
  518. DMA1_Stream7_BASE = DMA1_BASE + $0B8;
  519. DMA2_BASE = AHB1PERIPH_BASE + $6400;
  520. DMA2_Stream0_BASE = DMA2_BASE + $010;
  521. DMA2_Stream1_BASE = DMA2_BASE + $028;
  522. DMA2_Stream2_BASE = DMA2_BASE + $040;
  523. DMA2_Stream3_BASE = DMA2_BASE + $058;
  524. DMA2_Stream4_BASE = DMA2_BASE + $070;
  525. DMA2_Stream5_BASE = DMA2_BASE + $088;
  526. DMA2_Stream6_BASE = DMA2_BASE + $0A0;
  527. DMA2_Stream7_BASE = DMA2_BASE + $0B8;
  528. DBGMCU_BASE = $E0042000;
  529. USB_OTG_FS_PERIPH_BASE = $50000000;
  530. USB_OTG_GLOBAL_BASE = $000;
  531. USB_OTG_DEVICE_BASE = $800;
  532. USB_OTG_IN_ENDPOINT_BASE = $900;
  533. USB_OTG_OUT_ENDPOINT_BASE = $B00;
  534. USB_OTG_HOST_BASE = $400;
  535. USB_OTG_HOST_PORT_BASE = $440;
  536. USB_OTG_HOST_CHANNEL_BASE = $500;
  537. USB_OTG_PCGCCTL_BASE = $E00;
  538. USB_OTG_FIFO_BASE = $1000;
  539. var
  540. TIM2 : TTIM_Registers absolute TIM2_BASE;
  541. TIM3 : TTIM_Registers absolute TIM3_BASE;
  542. TIM4 : TTIM_Registers absolute TIM4_BASE;
  543. TIM5 : TTIM_Registers absolute TIM5_BASE;
  544. RTC : TRTC_Registers absolute RTC_BASE;
  545. WWDG : TWWDG_Registers absolute WWDG_BASE;
  546. IWDG : TIWDG_Registers absolute IWDG_BASE;
  547. I2S2ext : TSPI_Registers absolute I2S2ext_BASE;
  548. SPI2 : TSPI_Registers absolute SPI2_BASE;
  549. SPI3 : TSPI_Registers absolute SPI3_BASE;
  550. I2S3ext : TSPI_Registers absolute I2S3ext_BASE;
  551. USART2 : TUSART_Registers absolute USART2_BASE;
  552. I2C1 : TI2C_Registers absolute I2C1_BASE;
  553. I2C2 : TI2C_Registers absolute I2C2_BASE;
  554. I2C3 : TI2C_Registers absolute I2C3_BASE;
  555. PWR : TPWR_Registers absolute PWR_BASE;
  556. TIM1 : TTIM_Registers absolute TIM1_BASE;
  557. USART1 : TUSART_Registers absolute USART1_BASE;
  558. USART6 : TUSART_Registers absolute USART6_BASE;
  559. ADC : TADC_Common_Registers absolute ADC_BASE;
  560. ADC1 : TADC_Registers absolute ADC1_BASE;
  561. SDIO : TSDIO_Registers absolute SDIO_BASE;
  562. SPI1 : TSPI_Registers absolute SPI1_BASE;
  563. SPI4 : TSPI_Registers absolute SPI4_BASE;
  564. SYSCFG : TSYSCFG_Registers absolute SYSCFG_BASE;
  565. EXTI : TEXTI_Registers absolute EXTI_BASE;
  566. TIM9 : TTIM_Registers absolute TIM9_BASE;
  567. TIM10 : TTIM_Registers absolute TIM10_BASE;
  568. TIM11 : TTIM_Registers absolute TIM11_BASE;
  569. GPIOA : TGPIO_Registers absolute GPIOA_BASE;
  570. GPIOB : TGPIO_Registers absolute GPIOB_BASE;
  571. GPIOC : TGPIO_Registers absolute GPIOC_BASE;
  572. GPIOD : TGPIO_Registers absolute GPIOD_BASE;
  573. GPIOE : TGPIO_Registers absolute GPIOE_BASE;
  574. GPIOH : TGPIO_Registers absolute GPIOH_BASE;
  575. CRC : TCRC_Registers absolute CRC_BASE;
  576. RCC : TRCC_Registers absolute RCC_BASE;
  577. FLASH : TFLASH_Registers absolute FLASH_R_BASE;
  578. DMA1 : TDMA_Registers absolute DMA1_BASE;
  579. DMA1_Stream0 : TDMA_Stream_Registers absolute DMA1_Stream0_BASE;
  580. DMA1_Stream1 : TDMA_Stream_Registers absolute DMA1_Stream1_BASE;
  581. DMA1_Stream2 : TDMA_Stream_Registers absolute DMA1_Stream2_BASE;
  582. DMA1_Stream3 : TDMA_Stream_Registers absolute DMA1_Stream3_BASE;
  583. DMA1_Stream4 : TDMA_Stream_Registers absolute DMA1_Stream4_BASE;
  584. DMA1_Stream5 : TDMA_Stream_Registers absolute DMA1_Stream5_BASE;
  585. DMA1_Stream6 : TDMA_Stream_Registers absolute DMA1_Stream6_BASE;
  586. DMA1_Stream7 : TDMA_Stream_Registers absolute DMA1_Stream7_BASE;
  587. DMA2 : TDMA_Registers absolute DMA2_BASE;
  588. DMA2_Stream0 : TDMA_Stream_Registers absolute DMA2_Stream0_BASE;
  589. DMA2_Stream1 : TDMA_Stream_Registers absolute DMA2_Stream1_BASE;
  590. DMA2_Stream2 : TDMA_Stream_Registers absolute DMA2_Stream2_BASE;
  591. DMA2_Stream3 : TDMA_Stream_Registers absolute DMA2_Stream3_BASE;
  592. DMA2_Stream4 : TDMA_Stream_Registers absolute DMA2_Stream4_BASE;
  593. DMA2_Stream5 : TDMA_Stream_Registers absolute DMA2_Stream5_BASE;
  594. DMA2_Stream6 : TDMA_Stream_Registers absolute DMA2_Stream6_BASE;
  595. DMA2_Stream7 : TDMA_Stream_Registers absolute DMA2_Stream7_BASE;
  596. DBGMCU : TDBGMCU_Registers absolute DBGMCU_BASE;
  597. implementation
  598. procedure NonMaskableInt_interrupt; external name 'NonMaskableInt_interrupt';
  599. procedure MemoryManagement_interrupt; external name 'MemoryManagement_interrupt';
  600. procedure BusFault_interrupt; external name 'BusFault_interrupt';
  601. procedure UsageFault_interrupt; external name 'UsageFault_interrupt';
  602. procedure SVCall_interrupt; external name 'SVCall_interrupt';
  603. procedure DebugMonitor_interrupt; external name 'DebugMonitor_interrupt';
  604. procedure PendSV_interrupt; external name 'PendSV_interrupt';
  605. procedure SysTick_interrupt; external name 'SysTick_interrupt';
  606. procedure WWDG_interrupt; external name 'WWDG_interrupt';
  607. procedure PVD_interrupt; external name 'PVD_interrupt';
  608. procedure TAMP_STAMP_interrupt; external name 'TAMP_STAMP_interrupt';
  609. procedure RTC_WKUP_interrupt; external name 'RTC_WKUP_interrupt';
  610. procedure FLASH_interrupt; external name 'FLASH_interrupt';
  611. procedure RCC_interrupt; external name 'RCC_interrupt';
  612. procedure EXTI0_interrupt; external name 'EXTI0_interrupt';
  613. procedure EXTI1_interrupt; external name 'EXTI1_interrupt';
  614. procedure EXTI2_interrupt; external name 'EXTI2_interrupt';
  615. procedure EXTI3_interrupt; external name 'EXTI3_interrupt';
  616. procedure EXTI4_interrupt; external name 'EXTI4_interrupt';
  617. procedure DMA1_Stream0_interrupt; external name 'DMA1_Stream0_interrupt';
  618. procedure DMA1_Stream1_interrupt; external name 'DMA1_Stream1_interrupt';
  619. procedure DMA1_Stream2_interrupt; external name 'DMA1_Stream2_interrupt';
  620. procedure DMA1_Stream3_interrupt; external name 'DMA1_Stream3_interrupt';
  621. procedure DMA1_Stream4_interrupt; external name 'DMA1_Stream4_interrupt';
  622. procedure DMA1_Stream5_interrupt; external name 'DMA1_Stream5_interrupt';
  623. procedure DMA1_Stream6_interrupt; external name 'DMA1_Stream6_interrupt';
  624. procedure ADC_interrupt; external name 'ADC_interrupt';
  625. procedure EXTI9_5_interrupt; external name 'EXTI9_5_interrupt';
  626. procedure TIM1_BRK_TIM9_interrupt; external name 'TIM1_BRK_TIM9_interrupt';
  627. procedure TIM1_UP_TIM10_interrupt; external name 'TIM1_UP_TIM10_interrupt';
  628. procedure TIM1_TRG_COM_TIM11_interrupt; external name 'TIM1_TRG_COM_TIM11_interrupt';
  629. procedure TIM1_CC_interrupt; external name 'TIM1_CC_interrupt';
  630. procedure TIM2_interrupt; external name 'TIM2_interrupt';
  631. procedure TIM3_interrupt; external name 'TIM3_interrupt';
  632. procedure TIM4_interrupt; external name 'TIM4_interrupt';
  633. procedure I2C1_EV_interrupt; external name 'I2C1_EV_interrupt';
  634. procedure I2C1_ER_interrupt; external name 'I2C1_ER_interrupt';
  635. procedure I2C2_EV_interrupt; external name 'I2C2_EV_interrupt';
  636. procedure I2C2_ER_interrupt; external name 'I2C2_ER_interrupt';
  637. procedure SPI1_interrupt; external name 'SPI1_interrupt';
  638. procedure SPI2_interrupt; external name 'SPI2_interrupt';
  639. procedure USART1_interrupt; external name 'USART1_interrupt';
  640. procedure USART2_interrupt; external name 'USART2_interrupt';
  641. procedure EXTI15_10_interrupt; external name 'EXTI15_10_interrupt';
  642. procedure RTC_Alarm_interrupt; external name 'RTC_Alarm_interrupt';
  643. procedure OTG_FS_WKUP_interrupt; external name 'OTG_FS_WKUP_interrupt';
  644. procedure DMA1_Stream7_interrupt; external name 'DMA1_Stream7_interrupt';
  645. procedure SDIO_interrupt; external name 'SDIO_interrupt';
  646. procedure TIM5_interrupt; external name 'TIM5_interrupt';
  647. procedure SPI3_interrupt; external name 'SPI3_interrupt';
  648. procedure DMA2_Stream0_interrupt; external name 'DMA2_Stream0_interrupt';
  649. procedure DMA2_Stream1_interrupt; external name 'DMA2_Stream1_interrupt';
  650. procedure DMA2_Stream2_interrupt; external name 'DMA2_Stream2_interrupt';
  651. procedure DMA2_Stream3_interrupt; external name 'DMA2_Stream3_interrupt';
  652. procedure DMA2_Stream4_interrupt; external name 'DMA2_Stream4_interrupt';
  653. procedure OTG_FS_interrupt; external name 'OTG_FS_interrupt';
  654. procedure DMA2_Stream5_interrupt; external name 'DMA2_Stream5_interrupt';
  655. procedure DMA2_Stream6_interrupt; external name 'DMA2_Stream6_interrupt';
  656. procedure DMA2_Stream7_interrupt; external name 'DMA2_Stream7_interrupt';
  657. procedure USART6_interrupt; external name 'USART6_interrupt';
  658. procedure I2C3_EV_interrupt; external name 'I2C3_EV_interrupt';
  659. procedure I2C3_ER_interrupt; external name 'I2C3_ER_interrupt';
  660. procedure FPU_interrupt; external name 'FPU_interrupt';
  661. procedure SPI4_interrupt; external name 'SPI4_interrupt';
  662. {$i cortexm4f_start.inc}
  663. procedure Vectors; assembler; nostackframe;
  664. label interrupt_vectors;
  665. asm
  666. .section ".init.interrupt_vectors"
  667. interrupt_vectors:
  668. .long _stack_top
  669. .long Startup
  670. .long NonMaskableInt_interrupt
  671. .long 0
  672. .long MemoryManagement_interrupt
  673. .long BusFault_interrupt
  674. .long UsageFault_interrupt
  675. .long 0
  676. .long 0
  677. .long 0
  678. .long 0
  679. .long SVCall_interrupt
  680. .long DebugMonitor_interrupt
  681. .long 0
  682. .long PendSV_interrupt
  683. .long SysTick_interrupt
  684. .long WWDG_interrupt
  685. .long PVD_interrupt
  686. .long TAMP_STAMP_interrupt
  687. .long RTC_WKUP_interrupt
  688. .long FLASH_interrupt
  689. .long RCC_interrupt
  690. .long EXTI0_interrupt
  691. .long EXTI1_interrupt
  692. .long EXTI2_interrupt
  693. .long EXTI3_interrupt
  694. .long EXTI4_interrupt
  695. .long DMA1_Stream0_interrupt
  696. .long DMA1_Stream1_interrupt
  697. .long DMA1_Stream2_interrupt
  698. .long DMA1_Stream3_interrupt
  699. .long DMA1_Stream4_interrupt
  700. .long DMA1_Stream5_interrupt
  701. .long DMA1_Stream6_interrupt
  702. .long ADC_interrupt
  703. .long 0
  704. .long 0
  705. .long 0
  706. .long 0
  707. .long EXTI9_5_interrupt
  708. .long TIM1_BRK_TIM9_interrupt
  709. .long TIM1_UP_TIM10_interrupt
  710. .long TIM1_TRG_COM_TIM11_interrupt
  711. .long TIM1_CC_interrupt
  712. .long TIM2_interrupt
  713. .long TIM3_interrupt
  714. .long TIM4_interrupt
  715. .long I2C1_EV_interrupt
  716. .long I2C1_ER_interrupt
  717. .long I2C2_EV_interrupt
  718. .long I2C2_ER_interrupt
  719. .long SPI1_interrupt
  720. .long SPI2_interrupt
  721. .long USART1_interrupt
  722. .long USART2_interrupt
  723. .long 0
  724. .long EXTI15_10_interrupt
  725. .long RTC_Alarm_interrupt
  726. .long OTG_FS_WKUP_interrupt
  727. .long 0
  728. .long 0
  729. .long 0
  730. .long 0
  731. .long DMA1_Stream7_interrupt
  732. .long 0
  733. .long SDIO_interrupt
  734. .long TIM5_interrupt
  735. .long SPI3_interrupt
  736. .long 0
  737. .long 0
  738. .long 0
  739. .long 0
  740. .long DMA2_Stream0_interrupt
  741. .long DMA2_Stream1_interrupt
  742. .long DMA2_Stream2_interrupt
  743. .long DMA2_Stream3_interrupt
  744. .long DMA2_Stream4_interrupt
  745. .long 0
  746. .long 0
  747. .long 0
  748. .long 0
  749. .long 0
  750. .long 0
  751. .long OTG_FS_interrupt
  752. .long DMA2_Stream5_interrupt
  753. .long DMA2_Stream6_interrupt
  754. .long DMA2_Stream7_interrupt
  755. .long USART6_interrupt
  756. .long I2C3_EV_interrupt
  757. .long I2C3_ER_interrupt
  758. .long 0
  759. .long 0
  760. .long 0
  761. .long 0
  762. .long 0
  763. .long 0
  764. .long 0
  765. .long FPU_interrupt
  766. .long 0
  767. .long 0
  768. .long SPI4_interrupt
  769. .weak NonMaskableInt_interrupt
  770. .weak MemoryManagement_interrupt
  771. .weak BusFault_interrupt
  772. .weak UsageFault_interrupt
  773. .weak SVCall_interrupt
  774. .weak DebugMonitor_interrupt
  775. .weak PendSV_interrupt
  776. .weak SysTick_interrupt
  777. .weak WWDG_interrupt
  778. .weak PVD_interrupt
  779. .weak TAMP_STAMP_interrupt
  780. .weak RTC_WKUP_interrupt
  781. .weak FLASH_interrupt
  782. .weak RCC_interrupt
  783. .weak EXTI0_interrupt
  784. .weak EXTI1_interrupt
  785. .weak EXTI2_interrupt
  786. .weak EXTI3_interrupt
  787. .weak EXTI4_interrupt
  788. .weak DMA1_Stream0_interrupt
  789. .weak DMA1_Stream1_interrupt
  790. .weak DMA1_Stream2_interrupt
  791. .weak DMA1_Stream3_interrupt
  792. .weak DMA1_Stream4_interrupt
  793. .weak DMA1_Stream5_interrupt
  794. .weak DMA1_Stream6_interrupt
  795. .weak ADC_interrupt
  796. .weak EXTI9_5_interrupt
  797. .weak TIM1_BRK_TIM9_interrupt
  798. .weak TIM1_UP_TIM10_interrupt
  799. .weak TIM1_TRG_COM_TIM11_interrupt
  800. .weak TIM1_CC_interrupt
  801. .weak TIM2_interrupt
  802. .weak TIM3_interrupt
  803. .weak TIM4_interrupt
  804. .weak I2C1_EV_interrupt
  805. .weak I2C1_ER_interrupt
  806. .weak I2C2_EV_interrupt
  807. .weak I2C2_ER_interrupt
  808. .weak SPI1_interrupt
  809. .weak SPI2_interrupt
  810. .weak USART1_interrupt
  811. .weak USART2_interrupt
  812. .weak EXTI15_10_interrupt
  813. .weak RTC_Alarm_interrupt
  814. .weak OTG_FS_WKUP_interrupt
  815. .weak DMA1_Stream7_interrupt
  816. .weak SDIO_interrupt
  817. .weak TIM5_interrupt
  818. .weak SPI3_interrupt
  819. .weak DMA2_Stream0_interrupt
  820. .weak DMA2_Stream1_interrupt
  821. .weak DMA2_Stream2_interrupt
  822. .weak DMA2_Stream3_interrupt
  823. .weak DMA2_Stream4_interrupt
  824. .weak OTG_FS_interrupt
  825. .weak DMA2_Stream5_interrupt
  826. .weak DMA2_Stream6_interrupt
  827. .weak DMA2_Stream7_interrupt
  828. .weak USART6_interrupt
  829. .weak I2C3_EV_interrupt
  830. .weak I2C3_ER_interrupt
  831. .weak FPU_interrupt
  832. .weak SPI4_interrupt
  833. .set NonMaskableInt_interrupt, HaltProc
  834. .set MemoryManagement_interrupt, HaltProc
  835. .set BusFault_interrupt, HaltProc
  836. .set UsageFault_interrupt, HaltProc
  837. .set SVCall_interrupt, HaltProc
  838. .set DebugMonitor_interrupt, HaltProc
  839. .set PendSV_interrupt, HaltProc
  840. .set SysTick_interrupt, HaltProc
  841. .set WWDG_interrupt, HaltProc
  842. .set PVD_interrupt, HaltProc
  843. .set TAMP_STAMP_interrupt, HaltProc
  844. .set RTC_WKUP_interrupt, HaltProc
  845. .set FLASH_interrupt, HaltProc
  846. .set RCC_interrupt, HaltProc
  847. .set EXTI0_interrupt, HaltProc
  848. .set EXTI1_interrupt, HaltProc
  849. .set EXTI2_interrupt, HaltProc
  850. .set EXTI3_interrupt, HaltProc
  851. .set EXTI4_interrupt, HaltProc
  852. .set DMA1_Stream0_interrupt, HaltProc
  853. .set DMA1_Stream1_interrupt, HaltProc
  854. .set DMA1_Stream2_interrupt, HaltProc
  855. .set DMA1_Stream3_interrupt, HaltProc
  856. .set DMA1_Stream4_interrupt, HaltProc
  857. .set DMA1_Stream5_interrupt, HaltProc
  858. .set DMA1_Stream6_interrupt, HaltProc
  859. .set ADC_interrupt, HaltProc
  860. .set EXTI9_5_interrupt, HaltProc
  861. .set TIM1_BRK_TIM9_interrupt, HaltProc
  862. .set TIM1_UP_TIM10_interrupt, HaltProc
  863. .set TIM1_TRG_COM_TIM11_interrupt, HaltProc
  864. .set TIM1_CC_interrupt, HaltProc
  865. .set TIM2_interrupt, HaltProc
  866. .set TIM3_interrupt, HaltProc
  867. .set TIM4_interrupt, HaltProc
  868. .set I2C1_EV_interrupt, HaltProc
  869. .set I2C1_ER_interrupt, HaltProc
  870. .set I2C2_EV_interrupt, HaltProc
  871. .set I2C2_ER_interrupt, HaltProc
  872. .set SPI1_interrupt, HaltProc
  873. .set SPI2_interrupt, HaltProc
  874. .set USART1_interrupt, HaltProc
  875. .set USART2_interrupt, HaltProc
  876. .set EXTI15_10_interrupt, HaltProc
  877. .set RTC_Alarm_interrupt, HaltProc
  878. .set OTG_FS_WKUP_interrupt, HaltProc
  879. .set DMA1_Stream7_interrupt, HaltProc
  880. .set SDIO_interrupt, HaltProc
  881. .set TIM5_interrupt, HaltProc
  882. .set SPI3_interrupt, HaltProc
  883. .set DMA2_Stream0_interrupt, HaltProc
  884. .set DMA2_Stream1_interrupt, HaltProc
  885. .set DMA2_Stream2_interrupt, HaltProc
  886. .set DMA2_Stream3_interrupt, HaltProc
  887. .set DMA2_Stream4_interrupt, HaltProc
  888. .set OTG_FS_interrupt, HaltProc
  889. .set DMA2_Stream5_interrupt, HaltProc
  890. .set DMA2_Stream6_interrupt, HaltProc
  891. .set DMA2_Stream7_interrupt, HaltProc
  892. .set USART6_interrupt, HaltProc
  893. .set I2C3_EV_interrupt, HaltProc
  894. .set I2C3_ER_interrupt, HaltProc
  895. .set FPU_interrupt, HaltProc
  896. .set SPI4_interrupt, HaltProc
  897. .text
  898. end;
  899. end.