stm32f401xe.pp 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915
  1. unit stm32f401xe;
  2. (**
  3. ******************************************************************************
  4. * @file stm32f401xe.h
  5. * @author MCD Application Team
  6. * @brief CMSIS STM32F401xE Device Peripheral Access Layer Header File.
  7. *
  8. * This file contains:
  9. * - Data structures and the address mapping for all peripherals
  10. * - peripherals registers declarations and bits definition
  11. * - Macros to access peripheral’s registers hardware
  12. *
  13. ******************************************************************************
  14. * @attention
  15. *
  16. * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
  17. * All rights reserved.</center></h2>
  18. *
  19. * This software component is licensed by ST under BSD 3-Clause license,
  20. * the "License"; You may not use this file except in compliance with the
  21. * License. You may obtain a copy of the License at:
  22. * opensource.org/licenses/BSD-3-Clause
  23. *
  24. ******************************************************************************
  25. *)
  26. interface
  27. {$PACKRECORDS C}
  28. {$GOTO ON}
  29. {$SCOPEDENUMS ON}
  30. type
  31. TIRQn_Enum = (
  32. NonMaskableInt_IRQn = -14,
  33. MemoryManagement_IRQn = -12,
  34. BusFault_IRQn = -11,
  35. UsageFault_IRQn = -10,
  36. SVCall_IRQn = -5,
  37. DebugMonitor_IRQn = -4,
  38. PendSV_IRQn = -2,
  39. SysTick_IRQn = -1,
  40. WWDG_IRQn = 0,
  41. PVD_IRQn = 1,
  42. TAMP_STAMP_IRQn = 2,
  43. RTC_WKUP_IRQn = 3,
  44. FLASH_IRQn = 4,
  45. RCC_IRQn = 5,
  46. EXTI0_IRQn = 6,
  47. EXTI1_IRQn = 7,
  48. EXTI2_IRQn = 8,
  49. EXTI3_IRQn = 9,
  50. EXTI4_IRQn = 10,
  51. DMA1_Stream0_IRQn = 11,
  52. DMA1_Stream1_IRQn = 12,
  53. DMA1_Stream2_IRQn = 13,
  54. DMA1_Stream3_IRQn = 14,
  55. DMA1_Stream4_IRQn = 15,
  56. DMA1_Stream5_IRQn = 16,
  57. DMA1_Stream6_IRQn = 17,
  58. ADC_IRQn = 18,
  59. EXTI9_5_IRQn = 23,
  60. TIM1_BRK_TIM9_IRQn = 24,
  61. TIM1_UP_TIM10_IRQn = 25,
  62. TIM1_TRG_COM_TIM11_IRQn = 26,
  63. TIM1_CC_IRQn = 27,
  64. TIM2_IRQn = 28,
  65. TIM3_IRQn = 29,
  66. TIM4_IRQn = 30,
  67. I2C1_EV_IRQn = 31,
  68. I2C1_ER_IRQn = 32,
  69. I2C2_EV_IRQn = 33,
  70. I2C2_ER_IRQn = 34,
  71. SPI1_IRQn = 35,
  72. SPI2_IRQn = 36,
  73. USART1_IRQn = 37,
  74. USART2_IRQn = 38,
  75. EXTI15_10_IRQn = 40,
  76. RTC_Alarm_IRQn = 41,
  77. OTG_FS_WKUP_IRQn = 42,
  78. DMA1_Stream7_IRQn = 47,
  79. SDIO_IRQn = 49,
  80. TIM5_IRQn = 50,
  81. SPI3_IRQn = 51,
  82. DMA2_Stream0_IRQn = 56,
  83. DMA2_Stream1_IRQn = 57,
  84. DMA2_Stream2_IRQn = 58,
  85. DMA2_Stream3_IRQn = 59,
  86. DMA2_Stream4_IRQn = 60,
  87. OTG_FS_IRQn = 67,
  88. DMA2_Stream5_IRQn = 68,
  89. DMA2_Stream6_IRQn = 69,
  90. DMA2_Stream7_IRQn = 70,
  91. USART6_IRQn = 71,
  92. I2C3_EV_IRQn = 72,
  93. I2C3_ER_IRQn = 73,
  94. FPU_IRQn = 81,
  95. SPI4_IRQn = 84
  96. );
  97. TADC_Registers = record
  98. SR : longword;
  99. CR1 : longword;
  100. CR2 : longword;
  101. SMPR1 : longword;
  102. SMPR2 : longword;
  103. JOFR1 : longword;
  104. JOFR2 : longword;
  105. JOFR3 : longword;
  106. JOFR4 : longword;
  107. HTR : longword;
  108. LTR : longword;
  109. SQR1 : longword;
  110. SQR2 : longword;
  111. SQR3 : longword;
  112. JSQR : longword;
  113. JDR1 : longword;
  114. JDR2 : longword;
  115. JDR3 : longword;
  116. JDR4 : longword;
  117. DR : longword;
  118. end;
  119. TADC_Common_Registers = record
  120. CSR : longword;
  121. CCR : longword;
  122. CDR : longword;
  123. end;
  124. TCRC_Registers = record
  125. DR : longword;
  126. IDR : byte;
  127. RESERVED0 : byte;
  128. RESERVED1 : word;
  129. CR : longword;
  130. end;
  131. TDBGMCU_Registers = record
  132. IDCODE : longword;
  133. CR : longword;
  134. APB1FZ : longword;
  135. APB2FZ : longword;
  136. end;
  137. TDMA_Stream_Registers = record
  138. CR : longword;
  139. NDTR : longword;
  140. PAR : longword;
  141. M0AR : longword;
  142. M1AR : longword;
  143. FCR : longword;
  144. end;
  145. TDMA_Registers = record
  146. LISR : longword;
  147. HISR : longword;
  148. LIFCR : longword;
  149. HIFCR : longword;
  150. end;
  151. TEXTI_Registers = record
  152. IMR : longword;
  153. EMR : longword;
  154. RTSR : longword;
  155. FTSR : longword;
  156. SWIER : longword;
  157. PR : longword;
  158. end;
  159. TFLASH_Registers = record
  160. ACR : longword;
  161. KEYR : longword;
  162. OPTKEYR : longword;
  163. SR : longword;
  164. CR : longword;
  165. OPTCR : longword;
  166. OPTCR1 : longword;
  167. end;
  168. TGPIO_Registers = record
  169. MODER : longword;
  170. OTYPER : longword;
  171. OSPEEDR : longword;
  172. PUPDR : longword;
  173. IDR : longword;
  174. ODR : longword;
  175. BSRR : longword;
  176. LCKR : longword;
  177. AFR : array[0..1] of longword;
  178. end;
  179. TSYSCFG_Registers = record
  180. MEMRMP : longword;
  181. PMC : longword;
  182. EXTICR : array[0..3] of longword;
  183. RESERVED : array[0..1] of longword;
  184. CMPCR : longword;
  185. end;
  186. TI2C_Registers = record
  187. CR1 : longword;
  188. CR2 : longword;
  189. OAR1 : longword;
  190. OAR2 : longword;
  191. DR : longword;
  192. SR1 : longword;
  193. SR2 : longword;
  194. CCR : longword;
  195. TRISE : longword;
  196. FLTR : longword;
  197. end;
  198. TIWDG_Registers = record
  199. KR : longword;
  200. PR : longword;
  201. RLR : longword;
  202. SR : longword;
  203. end;
  204. TPWR_Registers = record
  205. CR : longword;
  206. CSR : longword;
  207. end;
  208. TRCC_Registers = record
  209. CR : longword;
  210. PLLCFGR : longword;
  211. CFGR : longword;
  212. CIR : longword;
  213. AHB1RSTR : longword;
  214. AHB2RSTR : longword;
  215. AHB3RSTR : longword;
  216. RESERVED0 : longword;
  217. APB1RSTR : longword;
  218. APB2RSTR : longword;
  219. RESERVED1 : array[0..1] of longword;
  220. AHB1ENR : longword;
  221. AHB2ENR : longword;
  222. AHB3ENR : longword;
  223. RESERVED2 : longword;
  224. APB1ENR : longword;
  225. APB2ENR : longword;
  226. RESERVED3 : array[0..1] of longword;
  227. AHB1LPENR : longword;
  228. AHB2LPENR : longword;
  229. AHB3LPENR : longword;
  230. RESERVED4 : longword;
  231. APB1LPENR : longword;
  232. APB2LPENR : longword;
  233. RESERVED5 : array[0..1] of longword;
  234. BDCR : longword;
  235. CSR : longword;
  236. RESERVED6 : array[0..1] of longword;
  237. SSCGR : longword;
  238. PLLI2SCFGR : longword;
  239. RESERVED7 : longword;
  240. DCKCFGR : longword;
  241. end;
  242. TRTC_Registers = record
  243. TR : longword;
  244. DR : longword;
  245. CR : longword;
  246. ISR : longword;
  247. PRER : longword;
  248. WUTR : longword;
  249. CALIBR : longword;
  250. ALRMAR : longword;
  251. ALRMBR : longword;
  252. WPR : longword;
  253. SSR : longword;
  254. SHIFTR : longword;
  255. TSTR : longword;
  256. TSDR : longword;
  257. TSSSR : longword;
  258. CALR : longword;
  259. TAFCR : longword;
  260. ALRMASSR : longword;
  261. ALRMBSSR : longword;
  262. RESERVED7 : longword;
  263. BKP0R : longword;
  264. BKP1R : longword;
  265. BKP2R : longword;
  266. BKP3R : longword;
  267. BKP4R : longword;
  268. BKP5R : longword;
  269. BKP6R : longword;
  270. BKP7R : longword;
  271. BKP8R : longword;
  272. BKP9R : longword;
  273. BKP10R : longword;
  274. BKP11R : longword;
  275. BKP12R : longword;
  276. BKP13R : longword;
  277. BKP14R : longword;
  278. BKP15R : longword;
  279. BKP16R : longword;
  280. BKP17R : longword;
  281. BKP18R : longword;
  282. BKP19R : longword;
  283. end;
  284. TSDIO_Registers = record
  285. POWER : longword;
  286. CLKCR : longword;
  287. ARG : longword;
  288. CMD : longword;
  289. RESPCMD : longword;
  290. RESP1 : longword;
  291. RESP2 : longword;
  292. RESP3 : longword;
  293. RESP4 : longword;
  294. DTIMER : longword;
  295. DLEN : longword;
  296. DCTRL : longword;
  297. DCOUNT : longword;
  298. STA : longword;
  299. ICR : longword;
  300. MASK : longword;
  301. RESERVED0 : array[0..1] of longword;
  302. FIFOCNT : longword;
  303. RESERVED1 : array[0..12] of longword;
  304. FIFO : longword;
  305. end;
  306. TSPI_Registers = record
  307. CR1 : longword;
  308. CR2 : longword;
  309. SR : longword;
  310. DR : longword;
  311. CRCPR : longword;
  312. RXCRCR : longword;
  313. TXCRCR : longword;
  314. I2SCFGR : longword;
  315. I2SPR : longword;
  316. end;
  317. TTIM_Registers = record
  318. CR1 : longword;
  319. CR2 : longword;
  320. SMCR : longword;
  321. DIER : longword;
  322. SR : longword;
  323. EGR : longword;
  324. CCMR1 : longword;
  325. CCMR2 : longword;
  326. CCER : longword;
  327. CNT : longword;
  328. PSC : longword;
  329. ARR : longword;
  330. RCR : longword;
  331. CCR1 : longword;
  332. CCR2 : longword;
  333. CCR3 : longword;
  334. CCR4 : longword;
  335. BDTR : longword;
  336. DCR : longword;
  337. DMAR : longword;
  338. &OR : longword;
  339. end;
  340. TUSART_Registers = record
  341. SR : longword;
  342. DR : longword;
  343. BRR : longword;
  344. CR1 : longword;
  345. CR2 : longword;
  346. CR3 : longword;
  347. GTPR : longword;
  348. end;
  349. TWWDG_Registers = record
  350. CR : longword;
  351. CFR : longword;
  352. SR : longword;
  353. end;
  354. TUSB_OTG_Global_Registers = record
  355. GOTGCTL : longword;
  356. GOTGINT : longword;
  357. GAHBCFG : longword;
  358. GUSBCFG : longword;
  359. GRSTCTL : longword;
  360. GINTSTS : longword;
  361. GINTMSK : longword;
  362. GRXSTSR : longword;
  363. GRXSTSP : longword;
  364. GRXFSIZ : longword;
  365. DIEPTXF0_HNPTXFSIZ : longword;
  366. HNPTXSTS : longword;
  367. Reserved30 : array[0..1] of longword;
  368. GCCFG : longword;
  369. CID : longword;
  370. Reserved40 : array[0..47] of longword;
  371. HPTXFSIZ : longword;
  372. DIEPTXF : array[0..14] of longword;
  373. end;
  374. TUSB_OTG_Device_Registers = record
  375. DCFG : longword;
  376. DCTL : longword;
  377. DSTS : longword;
  378. Reserved0C : longword;
  379. DIEPMSK : longword;
  380. DOEPMSK : longword;
  381. DAINT : longword;
  382. DAINTMSK : longword;
  383. Reserved20 : longword;
  384. Reserved9 : longword;
  385. DVBUSDIS : longword;
  386. DVBUSPULSE : longword;
  387. DTHRCTL : longword;
  388. DIEPEMPMSK : longword;
  389. DEACHINT : longword;
  390. DEACHMSK : longword;
  391. Reserved40 : longword;
  392. DINEP1MSK : longword;
  393. Reserved44 : array[0..14] of longword;
  394. DOUTEP1MSK : longword;
  395. end;
  396. TUSB_OTG_INEndpoint_Registers = record
  397. DIEPCTL : longword;
  398. Reserved04 : longword;
  399. DIEPINT : longword;
  400. Reserved0C : longword;
  401. DIEPTSIZ : longword;
  402. DIEPDMA : longword;
  403. DTXFSTS : longword;
  404. Reserved18 : longword;
  405. end;
  406. TUSB_OTG_OUTEndpoint_Registers = record
  407. DOEPCTL : longword;
  408. Reserved04 : longword;
  409. DOEPINT : longword;
  410. Reserved0C : longword;
  411. DOEPTSIZ : longword;
  412. DOEPDMA : longword;
  413. Reserved18 : array[0..1] of longword;
  414. end;
  415. TUSB_OTG_Host_Registers = record
  416. HCFG : longword;
  417. HFIR : longword;
  418. HFNUM : longword;
  419. Reserved40C : longword;
  420. HPTXSTS : longword;
  421. HAINT : longword;
  422. HAINTMSK : longword;
  423. end;
  424. TUSB_OTG_HostChannel_Registers = record
  425. HCCHAR : longword;
  426. HCSPLT : longword;
  427. HCINT : longword;
  428. HCINTMSK : longword;
  429. HCTSIZ : longword;
  430. HCDMA : longword;
  431. Reserved : array[0..1] of longword;
  432. end;
  433. const
  434. FLASH_BASE = $08000000;
  435. SRAM1_BASE = $20000000;
  436. PERIPH_BASE = $40000000;
  437. SRAM1_BB_BASE = $22000000;
  438. PERIPH_BB_BASE= $42000000;
  439. BKPSRAM_BB_BASE= $42480000;
  440. FLASH_OTP_BASE= $1FFF7800;
  441. SRAM_BASE = SRAM1_BASE;
  442. SRAM_BB_BASE = SRAM1_BB_BASE;
  443. APB1PERIPH_BASE= PERIPH_BASE;
  444. APB2PERIPH_BASE= PERIPH_BASE + $00010000;
  445. AHB1PERIPH_BASE= PERIPH_BASE + $00020000;
  446. AHB2PERIPH_BASE= PERIPH_BASE + $10000000;
  447. TIM2_BASE = APB1PERIPH_BASE + $0000;
  448. TIM3_BASE = APB1PERIPH_BASE + $0400;
  449. TIM4_BASE = APB1PERIPH_BASE + $0800;
  450. TIM5_BASE = APB1PERIPH_BASE + $0C00;
  451. RTC_BASE = APB1PERIPH_BASE + $2800;
  452. WWDG_BASE = APB1PERIPH_BASE + $2C00;
  453. IWDG_BASE = APB1PERIPH_BASE + $3000;
  454. I2S2ext_BASE = APB1PERIPH_BASE + $3400;
  455. SPI2_BASE = APB1PERIPH_BASE + $3800;
  456. SPI3_BASE = APB1PERIPH_BASE + $3C00;
  457. I2S3ext_BASE = APB1PERIPH_BASE + $4000;
  458. USART2_BASE = APB1PERIPH_BASE + $4400;
  459. I2C1_BASE = APB1PERIPH_BASE + $5400;
  460. I2C2_BASE = APB1PERIPH_BASE + $5800;
  461. I2C3_BASE = APB1PERIPH_BASE + $5C00;
  462. PWR_BASE = APB1PERIPH_BASE + $7000;
  463. TIM1_BASE = APB2PERIPH_BASE + $0000;
  464. USART1_BASE = APB2PERIPH_BASE + $1000;
  465. USART6_BASE = APB2PERIPH_BASE + $1400;
  466. ADC1_BASE = APB2PERIPH_BASE + $2000;
  467. ADC1_COMMON_BASE= APB2PERIPH_BASE + $2300;
  468. ADC_BASE = ADC1_COMMON_BASE;
  469. SDIO_BASE = APB2PERIPH_BASE + $2C00;
  470. SPI1_BASE = APB2PERIPH_BASE + $3000;
  471. SPI4_BASE = APB2PERIPH_BASE + $3400;
  472. SYSCFG_BASE = APB2PERIPH_BASE + $3800;
  473. EXTI_BASE = APB2PERIPH_BASE + $3C00;
  474. TIM9_BASE = APB2PERIPH_BASE + $4000;
  475. TIM10_BASE = APB2PERIPH_BASE + $4400;
  476. TIM11_BASE = APB2PERIPH_BASE + $4800;
  477. GPIOA_BASE = AHB1PERIPH_BASE + $0000;
  478. GPIOB_BASE = AHB1PERIPH_BASE + $0400;
  479. GPIOC_BASE = AHB1PERIPH_BASE + $0800;
  480. GPIOD_BASE = AHB1PERIPH_BASE + $0C00;
  481. GPIOE_BASE = AHB1PERIPH_BASE + $1000;
  482. GPIOH_BASE = AHB1PERIPH_BASE + $1C00;
  483. CRC_BASE = AHB1PERIPH_BASE + $3000;
  484. RCC_BASE = AHB1PERIPH_BASE + $3800;
  485. FLASH_R_BASE = AHB1PERIPH_BASE + $3C00;
  486. DMA1_BASE = AHB1PERIPH_BASE + $6000;
  487. DMA1_Stream0_BASE= DMA1_BASE + $010;
  488. DMA1_Stream1_BASE= DMA1_BASE + $028;
  489. DMA1_Stream2_BASE= DMA1_BASE + $040;
  490. DMA1_Stream3_BASE= DMA1_BASE + $058;
  491. DMA1_Stream4_BASE= DMA1_BASE + $070;
  492. DMA1_Stream5_BASE= DMA1_BASE + $088;
  493. DMA1_Stream6_BASE= DMA1_BASE + $0A0;
  494. DMA1_Stream7_BASE= DMA1_BASE + $0B8;
  495. DMA2_BASE = AHB1PERIPH_BASE + $6400;
  496. DMA2_Stream0_BASE= DMA2_BASE + $010;
  497. DMA2_Stream1_BASE= DMA2_BASE + $028;
  498. DMA2_Stream2_BASE= DMA2_BASE + $040;
  499. DMA2_Stream3_BASE= DMA2_BASE + $058;
  500. DMA2_Stream4_BASE= DMA2_BASE + $070;
  501. DMA2_Stream5_BASE= DMA2_BASE + $088;
  502. DMA2_Stream6_BASE= DMA2_BASE + $0A0;
  503. DMA2_Stream7_BASE= DMA2_BASE + $0B8;
  504. DBGMCU_BASE = $E0042000;
  505. USB_OTG_FS_PERIPH_BASE= $50000000;
  506. USB_OTG_GLOBAL_BASE= $000;
  507. USB_OTG_DEVICE_BASE= $800;
  508. USB_OTG_IN_ENDPOINT_BASE= $900;
  509. USB_OTG_OUT_ENDPOINT_BASE= $B00;
  510. USB_OTG_HOST_BASE= $400;
  511. USB_OTG_HOST_PORT_BASE= $440;
  512. USB_OTG_HOST_CHANNEL_BASE= $500;
  513. USB_OTG_PCGCCTL_BASE= $E00;
  514. USB_OTG_FIFO_BASE= $1000;
  515. UID_BASE = $1FFF7A10;
  516. FLASHSIZE_BASE= $1FFF7A22;
  517. PACKAGE_BASE = $1FFF7BF0;
  518. var
  519. TIM2 : TTIM_Registers absolute TIM2_BASE;
  520. TIM3 : TTIM_Registers absolute TIM3_BASE;
  521. TIM4 : TTIM_Registers absolute TIM4_BASE;
  522. TIM5 : TTIM_Registers absolute TIM5_BASE;
  523. RTC : TRTC_Registers absolute RTC_BASE;
  524. WWDG : TWWDG_Registers absolute WWDG_BASE;
  525. IWDG : TIWDG_Registers absolute IWDG_BASE;
  526. I2S2ext : TSPI_Registers absolute I2S2ext_BASE;
  527. SPI2 : TSPI_Registers absolute SPI2_BASE;
  528. SPI3 : TSPI_Registers absolute SPI3_BASE;
  529. I2S3ext : TSPI_Registers absolute I2S3ext_BASE;
  530. USART2 : TUSART_Registers absolute USART2_BASE;
  531. I2C1 : TI2C_Registers absolute I2C1_BASE;
  532. I2C2 : TI2C_Registers absolute I2C2_BASE;
  533. I2C3 : TI2C_Registers absolute I2C3_BASE;
  534. PWR : TPWR_Registers absolute PWR_BASE;
  535. TIM1 : TTIM_Registers absolute TIM1_BASE;
  536. USART1 : TUSART_Registers absolute USART1_BASE;
  537. USART6 : TUSART_Registers absolute USART6_BASE;
  538. ADC1 : TADC_Registers absolute ADC1_BASE;
  539. ADC1_COMMON : TADC_Common_Registers absolute ADC1_COMMON_BASE;
  540. SDIO : TSDIO_Registers absolute SDIO_BASE;
  541. SPI1 : TSPI_Registers absolute SPI1_BASE;
  542. SPI4 : TSPI_Registers absolute SPI4_BASE;
  543. SYSCFG : TSYSCFG_Registers absolute SYSCFG_BASE;
  544. EXTI : TEXTI_Registers absolute EXTI_BASE;
  545. TIM9 : TTIM_Registers absolute TIM9_BASE;
  546. TIM10 : TTIM_Registers absolute TIM10_BASE;
  547. TIM11 : TTIM_Registers absolute TIM11_BASE;
  548. GPIOA : TGPIO_Registers absolute GPIOA_BASE;
  549. GPIOB : TGPIO_Registers absolute GPIOB_BASE;
  550. GPIOC : TGPIO_Registers absolute GPIOC_BASE;
  551. GPIOD : TGPIO_Registers absolute GPIOD_BASE;
  552. GPIOE : TGPIO_Registers absolute GPIOE_BASE;
  553. GPIOH : TGPIO_Registers absolute GPIOH_BASE;
  554. CRC : TCRC_Registers absolute CRC_BASE;
  555. RCC : TRCC_Registers absolute RCC_BASE;
  556. FLASH : TFLASH_Registers absolute FLASH_R_BASE;
  557. DMA1 : TDMA_Registers absolute DMA1_BASE;
  558. DMA1_Stream0 : TDMA_Stream_Registers absolute DMA1_Stream0_BASE;
  559. DMA1_Stream1 : TDMA_Stream_Registers absolute DMA1_Stream1_BASE;
  560. DMA1_Stream2 : TDMA_Stream_Registers absolute DMA1_Stream2_BASE;
  561. DMA1_Stream3 : TDMA_Stream_Registers absolute DMA1_Stream3_BASE;
  562. DMA1_Stream4 : TDMA_Stream_Registers absolute DMA1_Stream4_BASE;
  563. DMA1_Stream5 : TDMA_Stream_Registers absolute DMA1_Stream5_BASE;
  564. DMA1_Stream6 : TDMA_Stream_Registers absolute DMA1_Stream6_BASE;
  565. DMA1_Stream7 : TDMA_Stream_Registers absolute DMA1_Stream7_BASE;
  566. DMA2 : TDMA_Registers absolute DMA2_BASE;
  567. DMA2_Stream0 : TDMA_Stream_Registers absolute DMA2_Stream0_BASE;
  568. DMA2_Stream1 : TDMA_Stream_Registers absolute DMA2_Stream1_BASE;
  569. DMA2_Stream2 : TDMA_Stream_Registers absolute DMA2_Stream2_BASE;
  570. DMA2_Stream3 : TDMA_Stream_Registers absolute DMA2_Stream3_BASE;
  571. DMA2_Stream4 : TDMA_Stream_Registers absolute DMA2_Stream4_BASE;
  572. DMA2_Stream5 : TDMA_Stream_Registers absolute DMA2_Stream5_BASE;
  573. DMA2_Stream6 : TDMA_Stream_Registers absolute DMA2_Stream6_BASE;
  574. DMA2_Stream7 : TDMA_Stream_Registers absolute DMA2_Stream7_BASE;
  575. DBGMCU : TDBGMCU_Registers absolute DBGMCU_BASE;
  576. implementation
  577. procedure NonMaskableInt_Handler; external name 'NonMaskableInt_Handler';
  578. procedure MemoryManagement_Handler; external name 'MemoryManagement_Handler';
  579. procedure BusFault_Handler; external name 'BusFault_Handler';
  580. procedure UsageFault_Handler; external name 'UsageFault_Handler';
  581. procedure SVCall_Handler; external name 'SVCall_Handler';
  582. procedure DebugMonitor_Handler; external name 'DebugMonitor_Handler';
  583. procedure PendSV_Handler; external name 'PendSV_Handler';
  584. procedure SysTick_Handler; external name 'SysTick_Handler';
  585. procedure WWDG_Handler; external name 'WWDG_Handler';
  586. procedure PVD_Handler; external name 'PVD_Handler';
  587. procedure TAMP_STAMP_Handler; external name 'TAMP_STAMP_Handler';
  588. procedure RTC_WKUP_Handler; external name 'RTC_WKUP_Handler';
  589. procedure FLASH_Handler; external name 'FLASH_Handler';
  590. procedure RCC_Handler; external name 'RCC_Handler';
  591. procedure EXTI0_Handler; external name 'EXTI0_Handler';
  592. procedure EXTI1_Handler; external name 'EXTI1_Handler';
  593. procedure EXTI2_Handler; external name 'EXTI2_Handler';
  594. procedure EXTI3_Handler; external name 'EXTI3_Handler';
  595. procedure EXTI4_Handler; external name 'EXTI4_Handler';
  596. procedure DMA1_Stream0_Handler; external name 'DMA1_Stream0_Handler';
  597. procedure DMA1_Stream1_Handler; external name 'DMA1_Stream1_Handler';
  598. procedure DMA1_Stream2_Handler; external name 'DMA1_Stream2_Handler';
  599. procedure DMA1_Stream3_Handler; external name 'DMA1_Stream3_Handler';
  600. procedure DMA1_Stream4_Handler; external name 'DMA1_Stream4_Handler';
  601. procedure DMA1_Stream5_Handler; external name 'DMA1_Stream5_Handler';
  602. procedure DMA1_Stream6_Handler; external name 'DMA1_Stream6_Handler';
  603. procedure ADC_Handler; external name 'ADC_Handler';
  604. procedure EXTI9_5_Handler; external name 'EXTI9_5_Handler';
  605. procedure TIM1_BRK_TIM9_Handler; external name 'TIM1_BRK_TIM9_Handler';
  606. procedure TIM1_UP_TIM10_Handler; external name 'TIM1_UP_TIM10_Handler';
  607. procedure TIM1_TRG_COM_TIM11_Handler; external name 'TIM1_TRG_COM_TIM11_Handler';
  608. procedure TIM1_CC_Handler; external name 'TIM1_CC_Handler';
  609. procedure TIM2_Handler; external name 'TIM2_Handler';
  610. procedure TIM3_Handler; external name 'TIM3_Handler';
  611. procedure TIM4_Handler; external name 'TIM4_Handler';
  612. procedure I2C1_EV_Handler; external name 'I2C1_EV_Handler';
  613. procedure I2C1_ER_Handler; external name 'I2C1_ER_Handler';
  614. procedure I2C2_EV_Handler; external name 'I2C2_EV_Handler';
  615. procedure I2C2_ER_Handler; external name 'I2C2_ER_Handler';
  616. procedure SPI1_Handler; external name 'SPI1_Handler';
  617. procedure SPI2_Handler; external name 'SPI2_Handler';
  618. procedure USART1_Handler; external name 'USART1_Handler';
  619. procedure USART2_Handler; external name 'USART2_Handler';
  620. procedure EXTI15_10_Handler; external name 'EXTI15_10_Handler';
  621. procedure RTC_Alarm_Handler; external name 'RTC_Alarm_Handler';
  622. procedure OTG_FS_WKUP_Handler; external name 'OTG_FS_WKUP_Handler';
  623. procedure DMA1_Stream7_Handler; external name 'DMA1_Stream7_Handler';
  624. procedure SDIO_Handler; external name 'SDIO_Handler';
  625. procedure TIM5_Handler; external name 'TIM5_Handler';
  626. procedure SPI3_Handler; external name 'SPI3_Handler';
  627. procedure DMA2_Stream0_Handler; external name 'DMA2_Stream0_Handler';
  628. procedure DMA2_Stream1_Handler; external name 'DMA2_Stream1_Handler';
  629. procedure DMA2_Stream2_Handler; external name 'DMA2_Stream2_Handler';
  630. procedure DMA2_Stream3_Handler; external name 'DMA2_Stream3_Handler';
  631. procedure DMA2_Stream4_Handler; external name 'DMA2_Stream4_Handler';
  632. procedure OTG_FS_Handler; external name 'OTG_FS_Handler';
  633. procedure DMA2_Stream5_Handler; external name 'DMA2_Stream5_Handler';
  634. procedure DMA2_Stream6_Handler; external name 'DMA2_Stream6_Handler';
  635. procedure DMA2_Stream7_Handler; external name 'DMA2_Stream7_Handler';
  636. procedure USART6_Handler; external name 'USART6_Handler';
  637. procedure I2C3_EV_Handler; external name 'I2C3_EV_Handler';
  638. procedure I2C3_ER_Handler; external name 'I2C3_ER_Handler';
  639. procedure FPU_Handler; external name 'FPU_Handler';
  640. procedure SPI4_Handler; external name 'SPI4_Handler';
  641. {$i cortexm4f_start.inc}
  642. procedure Vectors; assembler; nostackframe;
  643. label interrupt_vectors;
  644. asm
  645. .section ".init.interrupt_vectors"
  646. interrupt_vectors:
  647. .long _stack_top
  648. .long Startup
  649. .long NonMaskableInt_Handler
  650. .long 0
  651. .long MemoryManagement_Handler
  652. .long BusFault_Handler
  653. .long UsageFault_Handler
  654. .long 0
  655. .long 0
  656. .long 0
  657. .long 0
  658. .long SVCall_Handler
  659. .long DebugMonitor_Handler
  660. .long 0
  661. .long PendSV_Handler
  662. .long SysTick_Handler
  663. .long WWDG_Handler
  664. .long PVD_Handler
  665. .long TAMP_STAMP_Handler
  666. .long RTC_WKUP_Handler
  667. .long FLASH_Handler
  668. .long RCC_Handler
  669. .long EXTI0_Handler
  670. .long EXTI1_Handler
  671. .long EXTI2_Handler
  672. .long EXTI3_Handler
  673. .long EXTI4_Handler
  674. .long DMA1_Stream0_Handler
  675. .long DMA1_Stream1_Handler
  676. .long DMA1_Stream2_Handler
  677. .long DMA1_Stream3_Handler
  678. .long DMA1_Stream4_Handler
  679. .long DMA1_Stream5_Handler
  680. .long DMA1_Stream6_Handler
  681. .long ADC_Handler
  682. .long 0
  683. .long 0
  684. .long 0
  685. .long 0
  686. .long EXTI9_5_Handler
  687. .long TIM1_BRK_TIM9_Handler
  688. .long TIM1_UP_TIM10_Handler
  689. .long TIM1_TRG_COM_TIM11_Handler
  690. .long TIM1_CC_Handler
  691. .long TIM2_Handler
  692. .long TIM3_Handler
  693. .long TIM4_Handler
  694. .long I2C1_EV_Handler
  695. .long I2C1_ER_Handler
  696. .long I2C2_EV_Handler
  697. .long I2C2_ER_Handler
  698. .long SPI1_Handler
  699. .long SPI2_Handler
  700. .long USART1_Handler
  701. .long USART2_Handler
  702. .long 0
  703. .long EXTI15_10_Handler
  704. .long RTC_Alarm_Handler
  705. .long OTG_FS_WKUP_Handler
  706. .long 0
  707. .long 0
  708. .long 0
  709. .long 0
  710. .long DMA1_Stream7_Handler
  711. .long 0
  712. .long SDIO_Handler
  713. .long TIM5_Handler
  714. .long SPI3_Handler
  715. .long 0
  716. .long 0
  717. .long 0
  718. .long 0
  719. .long DMA2_Stream0_Handler
  720. .long DMA2_Stream1_Handler
  721. .long DMA2_Stream2_Handler
  722. .long DMA2_Stream3_Handler
  723. .long DMA2_Stream4_Handler
  724. .long 0
  725. .long 0
  726. .long 0
  727. .long 0
  728. .long 0
  729. .long 0
  730. .long OTG_FS_Handler
  731. .long DMA2_Stream5_Handler
  732. .long DMA2_Stream6_Handler
  733. .long DMA2_Stream7_Handler
  734. .long USART6_Handler
  735. .long I2C3_EV_Handler
  736. .long I2C3_ER_Handler
  737. .long 0
  738. .long 0
  739. .long 0
  740. .long 0
  741. .long 0
  742. .long 0
  743. .long 0
  744. .long FPU_Handler
  745. .long 0
  746. .long 0
  747. .long SPI4_Handler
  748. .weak NonMaskableInt_Handler
  749. .weak MemoryManagement_Handler
  750. .weak BusFault_Handler
  751. .weak UsageFault_Handler
  752. .weak SVCall_Handler
  753. .weak DebugMonitor_Handler
  754. .weak PendSV_Handler
  755. .weak SysTick_Handler
  756. .weak WWDG_Handler
  757. .weak PVD_Handler
  758. .weak TAMP_STAMP_Handler
  759. .weak RTC_WKUP_Handler
  760. .weak FLASH_Handler
  761. .weak RCC_Handler
  762. .weak EXTI0_Handler
  763. .weak EXTI1_Handler
  764. .weak EXTI2_Handler
  765. .weak EXTI3_Handler
  766. .weak EXTI4_Handler
  767. .weak DMA1_Stream0_Handler
  768. .weak DMA1_Stream1_Handler
  769. .weak DMA1_Stream2_Handler
  770. .weak DMA1_Stream3_Handler
  771. .weak DMA1_Stream4_Handler
  772. .weak DMA1_Stream5_Handler
  773. .weak DMA1_Stream6_Handler
  774. .weak ADC_Handler
  775. .weak EXTI9_5_Handler
  776. .weak TIM1_BRK_TIM9_Handler
  777. .weak TIM1_UP_TIM10_Handler
  778. .weak TIM1_TRG_COM_TIM11_Handler
  779. .weak TIM1_CC_Handler
  780. .weak TIM2_Handler
  781. .weak TIM3_Handler
  782. .weak TIM4_Handler
  783. .weak I2C1_EV_Handler
  784. .weak I2C1_ER_Handler
  785. .weak I2C2_EV_Handler
  786. .weak I2C2_ER_Handler
  787. .weak SPI1_Handler
  788. .weak SPI2_Handler
  789. .weak USART1_Handler
  790. .weak USART2_Handler
  791. .weak EXTI15_10_Handler
  792. .weak RTC_Alarm_Handler
  793. .weak OTG_FS_WKUP_Handler
  794. .weak DMA1_Stream7_Handler
  795. .weak SDIO_Handler
  796. .weak TIM5_Handler
  797. .weak SPI3_Handler
  798. .weak DMA2_Stream0_Handler
  799. .weak DMA2_Stream1_Handler
  800. .weak DMA2_Stream2_Handler
  801. .weak DMA2_Stream3_Handler
  802. .weak DMA2_Stream4_Handler
  803. .weak OTG_FS_Handler
  804. .weak DMA2_Stream5_Handler
  805. .weak DMA2_Stream6_Handler
  806. .weak DMA2_Stream7_Handler
  807. .weak USART6_Handler
  808. .weak I2C3_EV_Handler
  809. .weak I2C3_ER_Handler
  810. .weak FPU_Handler
  811. .weak SPI4_Handler
  812. .set NonMaskableInt_Handler, Haltproc
  813. .set MemoryManagement_Handler, Haltproc
  814. .set BusFault_Handler, Haltproc
  815. .set UsageFault_Handler, Haltproc
  816. .set SVCall_Handler, Haltproc
  817. .set DebugMonitor_Handler, Haltproc
  818. .set PendSV_Handler, Haltproc
  819. .set SysTick_Handler, Haltproc
  820. .set WWDG_Handler, Haltproc
  821. .set PVD_Handler, Haltproc
  822. .set TAMP_STAMP_Handler, Haltproc
  823. .set RTC_WKUP_Handler, Haltproc
  824. .set FLASH_Handler, Haltproc
  825. .set RCC_Handler, Haltproc
  826. .set EXTI0_Handler, Haltproc
  827. .set EXTI1_Handler, Haltproc
  828. .set EXTI2_Handler, Haltproc
  829. .set EXTI3_Handler, Haltproc
  830. .set EXTI4_Handler, Haltproc
  831. .set DMA1_Stream0_Handler, Haltproc
  832. .set DMA1_Stream1_Handler, Haltproc
  833. .set DMA1_Stream2_Handler, Haltproc
  834. .set DMA1_Stream3_Handler, Haltproc
  835. .set DMA1_Stream4_Handler, Haltproc
  836. .set DMA1_Stream5_Handler, Haltproc
  837. .set DMA1_Stream6_Handler, Haltproc
  838. .set ADC_Handler, Haltproc
  839. .set EXTI9_5_Handler, Haltproc
  840. .set TIM1_BRK_TIM9_Handler, Haltproc
  841. .set TIM1_UP_TIM10_Handler, Haltproc
  842. .set TIM1_TRG_COM_TIM11_Handler, Haltproc
  843. .set TIM1_CC_Handler, Haltproc
  844. .set TIM2_Handler, Haltproc
  845. .set TIM3_Handler, Haltproc
  846. .set TIM4_Handler, Haltproc
  847. .set I2C1_EV_Handler, Haltproc
  848. .set I2C1_ER_Handler, Haltproc
  849. .set I2C2_EV_Handler, Haltproc
  850. .set I2C2_ER_Handler, Haltproc
  851. .set SPI1_Handler, Haltproc
  852. .set SPI2_Handler, Haltproc
  853. .set USART1_Handler, Haltproc
  854. .set USART2_Handler, Haltproc
  855. .set EXTI15_10_Handler, Haltproc
  856. .set RTC_Alarm_Handler, Haltproc
  857. .set OTG_FS_WKUP_Handler, Haltproc
  858. .set DMA1_Stream7_Handler, Haltproc
  859. .set SDIO_Handler, Haltproc
  860. .set TIM5_Handler, Haltproc
  861. .set SPI3_Handler, Haltproc
  862. .set DMA2_Stream0_Handler, Haltproc
  863. .set DMA2_Stream1_Handler, Haltproc
  864. .set DMA2_Stream2_Handler, Haltproc
  865. .set DMA2_Stream3_Handler, Haltproc
  866. .set DMA2_Stream4_Handler, Haltproc
  867. .set OTG_FS_Handler, Haltproc
  868. .set DMA2_Stream5_Handler, Haltproc
  869. .set DMA2_Stream6_Handler, Haltproc
  870. .set DMA2_Stream7_Handler, Haltproc
  871. .set USART6_Handler, Haltproc
  872. .set I2C3_EV_Handler, Haltproc
  873. .set I2C3_ER_Handler, Haltproc
  874. .set FPU_Handler, Haltproc
  875. .set SPI4_Handler, Haltproc
  876. .text
  877. end;
  878. end.