stm32f401xe.pp 29 KB

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