stm32f103xe.pp 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952
  1. {$IFNDEF FPC_DOTTEDUNITS}
  2. unit stm32f103xe;
  3. {$ENDIF FPC_DOTTEDUNITS}
  4. (**
  5. ******************************************************************************
  6. * @file stm32f103xe.h
  7. * @author MCD Application Team
  8. * @brief CMSIS Cortex-M3 Device Peripheral Access Layer Header File.
  9. * This file contains all the peripheral register's definitions, bits
  10. * definitions and memory mapping for STM32F1xx devices.
  11. *
  12. * This file contains:
  13. * - Data structures and the address mapping for all peripherals
  14. * - Peripheral's registers declarations and bits definition
  15. * - Macros to access peripheral<92>s registers hardware
  16. *
  17. ******************************************************************************
  18. * @attention
  19. *
  20. * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
  21. * All rights reserved.</center></h2>
  22. *
  23. * This software component is licensed by ST under BSD 3-Clause license,
  24. * the "License"; You may not use this file except in compliance with the
  25. * License. You may obtain a copy of the License at:
  26. * opensource.org/licenses/BSD-3-Clause
  27. *
  28. ******************************************************************************
  29. *)
  30. interface
  31. {$PACKRECORDS C}
  32. {$GOTO ON}
  33. {$SCOPEDENUMS ON}
  34. type
  35. TIRQn_Enum = (
  36. NonMaskableInt_IRQn = -14,
  37. HardFault_IRQn = -13,
  38. MemoryManagement_IRQn = -12,
  39. BusFault_IRQn = -11,
  40. UsageFault_IRQn = -10,
  41. SVCall_IRQn = -5,
  42. DebugMonitor_IRQn = -4,
  43. PendSV_IRQn = -2,
  44. SysTick_IRQn = -1,
  45. WWDG_IRQn = 0,
  46. PVD_IRQn = 1,
  47. TAMPER_IRQn = 2,
  48. RTC_IRQn = 3,
  49. FLASH_IRQn = 4,
  50. RCC_IRQn = 5,
  51. EXTI0_IRQn = 6,
  52. EXTI1_IRQn = 7,
  53. EXTI2_IRQn = 8,
  54. EXTI3_IRQn = 9,
  55. EXTI4_IRQn = 10,
  56. DMA1_Channel1_IRQn = 11,
  57. DMA1_Channel2_IRQn = 12,
  58. DMA1_Channel3_IRQn = 13,
  59. DMA1_Channel4_IRQn = 14,
  60. DMA1_Channel5_IRQn = 15,
  61. DMA1_Channel6_IRQn = 16,
  62. DMA1_Channel7_IRQn = 17,
  63. ADC1_2_IRQn = 18,
  64. USB_HP_CAN1_TX_IRQn = 19,
  65. USB_LP_CAN1_RX0_IRQn = 20,
  66. CAN1_RX1_IRQn = 21,
  67. CAN1_SCE_IRQn = 22,
  68. EXTI9_5_IRQn = 23,
  69. TIM1_BRK_IRQn = 24,
  70. TIM1_UP_IRQn = 25,
  71. TIM1_TRG_COM_IRQn = 26,
  72. TIM1_CC_IRQn = 27,
  73. TIM2_IRQn = 28,
  74. TIM3_IRQn = 29,
  75. TIM4_IRQn = 30,
  76. I2C1_EV_IRQn = 31,
  77. I2C1_ER_IRQn = 32,
  78. I2C2_EV_IRQn = 33,
  79. I2C2_ER_IRQn = 34,
  80. SPI1_IRQn = 35,
  81. SPI2_IRQn = 36,
  82. USART1_IRQn = 37,
  83. USART2_IRQn = 38,
  84. USART3_IRQn = 39,
  85. EXTI15_10_IRQn = 40,
  86. RTC_Alarm_IRQn = 41,
  87. USBWakeUp_IRQn = 42,
  88. TIM8_BRK_IRQn = 43,
  89. TIM8_UP_IRQn = 44,
  90. TIM8_TRG_COM_IRQn = 45,
  91. TIM8_CC_IRQn = 46,
  92. ADC3_IRQn = 47,
  93. FSMC_IRQn = 48,
  94. SDIO_IRQn = 49,
  95. TIM5_IRQn = 50,
  96. SPI3_IRQn = 51,
  97. UART4_IRQn = 52,
  98. UART5_IRQn = 53,
  99. TIM6_IRQn = 54,
  100. TIM7_IRQn = 55,
  101. DMA2_Channel1_IRQn = 56,
  102. DMA2_Channel2_IRQn = 57,
  103. DMA2_Channel3_IRQn = 58,
  104. DMA2_Channel4_5_IRQn = 59
  105. );
  106. TADC_Registers = record
  107. SR : longword;
  108. CR1 : longword;
  109. CR2 : longword;
  110. SMPR1 : longword;
  111. SMPR2 : longword;
  112. JOFR1 : longword;
  113. JOFR2 : longword;
  114. JOFR3 : longword;
  115. JOFR4 : longword;
  116. HTR : longword;
  117. LTR : longword;
  118. SQR1 : longword;
  119. SQR2 : longword;
  120. SQR3 : longword;
  121. JSQR : longword;
  122. JDR1 : longword;
  123. JDR2 : longword;
  124. JDR3 : longword;
  125. JDR4 : longword;
  126. DR : longword;
  127. end;
  128. TADC_Common_Registers = record
  129. SR : longword;
  130. CR1 : longword;
  131. CR2 : longword;
  132. RESERVED : array[0..15] of longword;
  133. DR : longword;
  134. end;
  135. TBKP_Registers = record
  136. RESERVED0 : longword;
  137. DR1 : longword;
  138. DR2 : longword;
  139. DR3 : longword;
  140. DR4 : longword;
  141. DR5 : longword;
  142. DR6 : longword;
  143. DR7 : longword;
  144. DR8 : longword;
  145. DR9 : longword;
  146. DR10 : longword;
  147. RTCCR : longword;
  148. CR : longword;
  149. CSR : longword;
  150. RESERVED13 : array[0..1] of longword;
  151. DR11 : longword;
  152. DR12 : longword;
  153. DR13 : longword;
  154. DR14 : longword;
  155. DR15 : longword;
  156. DR16 : longword;
  157. DR17 : longword;
  158. DR18 : longword;
  159. DR19 : longword;
  160. DR20 : longword;
  161. DR21 : longword;
  162. DR22 : longword;
  163. DR23 : longword;
  164. DR24 : longword;
  165. DR25 : longword;
  166. DR26 : longword;
  167. DR27 : longword;
  168. DR28 : longword;
  169. DR29 : longword;
  170. DR30 : longword;
  171. DR31 : longword;
  172. DR32 : longword;
  173. DR33 : longword;
  174. DR34 : longword;
  175. DR35 : longword;
  176. DR36 : longword;
  177. DR37 : longword;
  178. DR38 : longword;
  179. DR39 : longword;
  180. DR40 : longword;
  181. DR41 : longword;
  182. DR42 : longword;
  183. end;
  184. TCAN_TxMailBox_Registers = record
  185. TIR : longword;
  186. TDTR : longword;
  187. TDLR : longword;
  188. TDHR : longword;
  189. end;
  190. TCAN_FIFOMailBox_Registers = record
  191. RIR : longword;
  192. RDTR : longword;
  193. RDLR : longword;
  194. RDHR : longword;
  195. end;
  196. TCAN_FilterRegister_Registers = record
  197. FR1 : longword;
  198. FR2 : longword;
  199. end;
  200. TCAN_Registers = record
  201. MCR : longword;
  202. MSR : longword;
  203. TSR : longword;
  204. RF0R : longword;
  205. RF1R : longword;
  206. IER : longword;
  207. ESR : longword;
  208. BTR : longword;
  209. RESERVED0 : array[0..87] of longword;
  210. sTxMailBox : array[0..2] of TCAN_TxMailBox_Registers;
  211. sFIFOMailBox : array[0..1] of TCAN_FIFOMailBox_Registers;
  212. RESERVED1 : array[0..11] of longword;
  213. FMR : longword;
  214. FM1R : longword;
  215. RESERVED2 : longword;
  216. FS1R : longword;
  217. RESERVED3 : longword;
  218. FFA1R : longword;
  219. RESERVED4 : longword;
  220. FA1R : longword;
  221. RESERVED5 : array[0..7] of longword;
  222. sFilterRegister : array[0..13] of TCAN_FilterRegister_Registers;
  223. end;
  224. TCRC_Registers = record
  225. DR : longword;
  226. IDR : byte;
  227. RESERVED0 : byte;
  228. RESERVED1 : word;
  229. CR : longword;
  230. end;
  231. TDAC_Registers = record
  232. CR : longword;
  233. SWTRIGR : longword;
  234. DHR12R1 : longword;
  235. DHR12L1 : longword;
  236. DHR8R1 : longword;
  237. DHR12R2 : longword;
  238. DHR12L2 : longword;
  239. DHR8R2 : longword;
  240. DHR12RD : longword;
  241. DHR12LD : longword;
  242. DHR8RD : longword;
  243. DOR1 : longword;
  244. DOR2 : longword;
  245. end;
  246. TDBGMCU_Registers = record
  247. IDCODE : longword;
  248. CR : longword;
  249. end;
  250. TDMA_Channel_Registers = record
  251. CCR : longword;
  252. CNDTR : longword;
  253. CPAR : longword;
  254. CMAR : longword;
  255. end;
  256. TDMA_Registers = record
  257. ISR : longword;
  258. IFCR : longword;
  259. end;
  260. TEXTI_Registers = record
  261. IMR : longword;
  262. EMR : longword;
  263. RTSR : longword;
  264. FTSR : longword;
  265. SWIER : longword;
  266. PR : longword;
  267. end;
  268. TFLASH_Registers = record
  269. ACR : longword;
  270. KEYR : longword;
  271. OPTKEYR : longword;
  272. SR : longword;
  273. CR : longword;
  274. AR : longword;
  275. RESERVED : longword;
  276. OBR : longword;
  277. WRPR : longword;
  278. end;
  279. TOB_Registers = record
  280. RDP : word;
  281. USER : word;
  282. Data0 : word;
  283. Data1 : word;
  284. WRP0 : word;
  285. WRP1 : word;
  286. WRP2 : word;
  287. WRP3 : word;
  288. end;
  289. TFSMC_Bank1_Registers = record
  290. BTCR : array[0..7] of longword;
  291. end;
  292. TFSMC_Bank1E_Registers = record
  293. BWTR : array[0..6] of longword;
  294. end;
  295. TFSMC_Bank2_3_Registers = record
  296. PCR2 : longword;
  297. SR2 : longword;
  298. PMEM2 : longword;
  299. PATT2 : longword;
  300. RESERVED0 : longword;
  301. ECCR2 : longword;
  302. RESERVED1 : longword;
  303. RESERVED2 : longword;
  304. PCR3 : longword;
  305. SR3 : longword;
  306. PMEM3 : longword;
  307. PATT3 : longword;
  308. RESERVED3 : longword;
  309. ECCR3 : longword;
  310. end;
  311. TFSMC_Bank4_Registers = record
  312. PCR4 : longword;
  313. SR4 : longword;
  314. PMEM4 : longword;
  315. PATT4 : longword;
  316. PIO4 : longword;
  317. end;
  318. TGPIO_Registers = record
  319. CRL : longword;
  320. CRH : longword;
  321. IDR : longword;
  322. ODR : longword;
  323. BSRR : longword;
  324. BRR : longword;
  325. LCKR : longword;
  326. end;
  327. TAFIO_Registers = record
  328. EVCR : longword;
  329. MAPR : longword;
  330. EXTICR : array[0..3] of longword;
  331. RESERVED0 : longword;
  332. MAPR2 : longword;
  333. end;
  334. TI2C_Registers = record
  335. CR1 : longword;
  336. CR2 : longword;
  337. OAR1 : longword;
  338. OAR2 : longword;
  339. DR : longword;
  340. SR1 : longword;
  341. SR2 : longword;
  342. CCR : longword;
  343. TRISE : longword;
  344. end;
  345. TIWDG_Registers = record
  346. KR : longword;
  347. PR : longword;
  348. RLR : longword;
  349. SR : longword;
  350. end;
  351. TPWR_Registers = record
  352. CR : longword;
  353. CSR : longword;
  354. end;
  355. TRCC_Registers = record
  356. CR : longword;
  357. CFGR : longword;
  358. CIR : longword;
  359. APB2RSTR : longword;
  360. APB1RSTR : longword;
  361. AHBENR : longword;
  362. APB2ENR : longword;
  363. APB1ENR : longword;
  364. BDCR : longword;
  365. CSR : longword;
  366. end;
  367. TRTC_Registers = record
  368. CRH : longword;
  369. CRL : longword;
  370. PRLH : longword;
  371. PRLL : longword;
  372. DIVH : longword;
  373. DIVL : longword;
  374. CNTH : longword;
  375. CNTL : longword;
  376. ALRH : longword;
  377. ALRL : longword;
  378. end;
  379. TSDIO_Registers = record
  380. POWER : longword;
  381. CLKCR : longword;
  382. ARG : longword;
  383. CMD : longword;
  384. RESPCMD : longword;
  385. RESP1 : longword;
  386. RESP2 : longword;
  387. RESP3 : longword;
  388. RESP4 : longword;
  389. DTIMER : longword;
  390. DLEN : longword;
  391. DCTRL : longword;
  392. DCOUNT : longword;
  393. STA : longword;
  394. ICR : longword;
  395. MASK : longword;
  396. RESERVED0 : array[0..1] of longword;
  397. FIFOCNT : longword;
  398. RESERVED1 : array[0..12] of longword;
  399. FIFO : longword;
  400. end;
  401. TSPI_Registers = record
  402. CR1 : longword;
  403. CR2 : longword;
  404. SR : longword;
  405. DR : longword;
  406. CRCPR : longword;
  407. RXCRCR : longword;
  408. TXCRCR : longword;
  409. I2SCFGR : longword;
  410. I2SPR : longword;
  411. end;
  412. TTIM_Registers = record
  413. CR1 : longword;
  414. CR2 : longword;
  415. SMCR : longword;
  416. DIER : longword;
  417. SR : longword;
  418. EGR : longword;
  419. CCMR1 : longword;
  420. CCMR2 : longword;
  421. CCER : longword;
  422. CNT : longword;
  423. PSC : longword;
  424. ARR : longword;
  425. RCR : longword;
  426. CCR1 : longword;
  427. CCR2 : longword;
  428. CCR3 : longword;
  429. CCR4 : longword;
  430. BDTR : longword;
  431. DCR : longword;
  432. DMAR : longword;
  433. &OR : longword;
  434. end;
  435. TUSART_Registers = record
  436. SR : longword;
  437. DR : longword;
  438. BRR : longword;
  439. CR1 : longword;
  440. CR2 : longword;
  441. CR3 : longword;
  442. GTPR : longword;
  443. end;
  444. TUSB_Registers = record
  445. EP0R : word;
  446. RESERVED0 : word;
  447. EP1R : word;
  448. RESERVED1 : word;
  449. EP2R : word;
  450. RESERVED2 : word;
  451. EP3R : word;
  452. RESERVED3 : word;
  453. EP4R : word;
  454. RESERVED4 : word;
  455. EP5R : word;
  456. RESERVED5 : word;
  457. EP6R : word;
  458. RESERVED6 : word;
  459. EP7R : word;
  460. RESERVED7 : array[0..16] of word;
  461. CNTR : word;
  462. RESERVED8 : word;
  463. ISTR : word;
  464. RESERVED9 : word;
  465. FNR : word;
  466. RESERVEDA : word;
  467. DADDR : word;
  468. RESERVEDB : word;
  469. BTABLE : word;
  470. RESERVEDC : word;
  471. end;
  472. TWWDG_Registers = record
  473. CR : longword;
  474. CFR : longword;
  475. SR : longword;
  476. end;
  477. const
  478. FLASH_BASE = $08000000;
  479. SRAM_BASE = $20000000;
  480. PERIPH_BASE = $40000000;
  481. SRAM_BB_BASE = $22000000;
  482. PERIPH_BB_BASE= $42000000;
  483. FSMC_BASE = $60000000;
  484. FSMC_R_BASE = $A0000000;
  485. APB1PERIPH_BASE= PERIPH_BASE;
  486. APB2PERIPH_BASE= PERIPH_BASE + $00010000;
  487. AHBPERIPH_BASE= PERIPH_BASE + $00020000;
  488. TIM2_BASE = APB1PERIPH_BASE + $00000000;
  489. TIM3_BASE = APB1PERIPH_BASE + $00000400;
  490. TIM4_BASE = APB1PERIPH_BASE + $00000800;
  491. TIM5_BASE = APB1PERIPH_BASE + $00000C00;
  492. TIM6_BASE = APB1PERIPH_BASE + $00001000;
  493. TIM7_BASE = APB1PERIPH_BASE + $00001400;
  494. RTC_BASE = APB1PERIPH_BASE + $00002800;
  495. WWDG_BASE = APB1PERIPH_BASE + $00002C00;
  496. IWDG_BASE = APB1PERIPH_BASE + $00003000;
  497. SPI2_BASE = APB1PERIPH_BASE + $00003800;
  498. SPI3_BASE = APB1PERIPH_BASE + $00003C00;
  499. USART2_BASE = APB1PERIPH_BASE + $00004400;
  500. USART3_BASE = APB1PERIPH_BASE + $00004800;
  501. UART4_BASE = APB1PERIPH_BASE + $00004C00;
  502. UART5_BASE = APB1PERIPH_BASE + $00005000;
  503. I2C1_BASE = APB1PERIPH_BASE + $00005400;
  504. I2C2_BASE = APB1PERIPH_BASE + $00005800;
  505. CAN1_BASE = APB1PERIPH_BASE + $00006400;
  506. BKP_BASE = APB1PERIPH_BASE + $00006C00;
  507. PWR_BASE = APB1PERIPH_BASE + $00007000;
  508. DAC_BASE = APB1PERIPH_BASE + $00007400;
  509. AFIO_BASE = APB2PERIPH_BASE + $00000000;
  510. EXTI_BASE = APB2PERIPH_BASE + $00000400;
  511. GPIOA_BASE = APB2PERIPH_BASE + $00000800;
  512. GPIOB_BASE = APB2PERIPH_BASE + $00000C00;
  513. GPIOC_BASE = APB2PERIPH_BASE + $00001000;
  514. GPIOD_BASE = APB2PERIPH_BASE + $00001400;
  515. GPIOE_BASE = APB2PERIPH_BASE + $00001800;
  516. GPIOF_BASE = APB2PERIPH_BASE + $00001C00;
  517. GPIOG_BASE = APB2PERIPH_BASE + $00002000;
  518. ADC1_BASE = APB2PERIPH_BASE + $00002400;
  519. ADC2_BASE = APB2PERIPH_BASE + $00002800;
  520. TIM1_BASE = APB2PERIPH_BASE + $00002C00;
  521. SPI1_BASE = APB2PERIPH_BASE + $00003000;
  522. TIM8_BASE = APB2PERIPH_BASE + $00003400;
  523. USART1_BASE = APB2PERIPH_BASE + $00003800;
  524. ADC3_BASE = APB2PERIPH_BASE + $00003C00;
  525. SDIO_BASE = PERIPH_BASE + $00018000;
  526. DMA1_BASE = AHBPERIPH_BASE + $00000000;
  527. DMA1_Channel1_BASE= AHBPERIPH_BASE + $00000008;
  528. DMA1_Channel2_BASE= AHBPERIPH_BASE + $0000001C;
  529. DMA1_Channel3_BASE= AHBPERIPH_BASE + $00000030;
  530. DMA1_Channel4_BASE= AHBPERIPH_BASE + $00000044;
  531. DMA1_Channel5_BASE= AHBPERIPH_BASE + $00000058;
  532. DMA1_Channel6_BASE= AHBPERIPH_BASE + $0000006C;
  533. DMA1_Channel7_BASE= AHBPERIPH_BASE + $00000080;
  534. DMA2_BASE = AHBPERIPH_BASE + $00000400;
  535. DMA2_Channel1_BASE= AHBPERIPH_BASE + $00000408;
  536. DMA2_Channel2_BASE= AHBPERIPH_BASE + $0000041C;
  537. DMA2_Channel3_BASE= AHBPERIPH_BASE + $00000430;
  538. DMA2_Channel4_BASE= AHBPERIPH_BASE + $00000444;
  539. DMA2_Channel5_BASE= AHBPERIPH_BASE + $00000458;
  540. RCC_BASE = AHBPERIPH_BASE + $00001000;
  541. CRC_BASE = AHBPERIPH_BASE + $00003000;
  542. FLASH_R_BASE = AHBPERIPH_BASE + $00002000;
  543. FLASHSIZE_BASE= $1FFFF7E0;
  544. UID_BASE = $1FFFF7E8;
  545. OB_BASE = $1FFFF800;
  546. FSMC_BANK1_R_BASE= FSMC_R_BASE + $00000000;
  547. FSMC_BANK1E_R_BASE= FSMC_R_BASE + $00000104;
  548. FSMC_BANK2_3_R_BASE= FSMC_R_BASE + $00000060;
  549. FSMC_BANK4_R_BASE= FSMC_R_BASE + $000000A0;
  550. DBGMCU_BASE = $E0042000;
  551. USB_BASE = APB1PERIPH_BASE + $00005C00;
  552. var
  553. TIM2 : TTIM_Registers absolute TIM2_BASE;
  554. TIM3 : TTIM_Registers absolute TIM3_BASE;
  555. TIM4 : TTIM_Registers absolute TIM4_BASE;
  556. TIM5 : TTIM_Registers absolute TIM5_BASE;
  557. TIM6 : TTIM_Registers absolute TIM6_BASE;
  558. TIM7 : TTIM_Registers absolute TIM7_BASE;
  559. RTC : TRTC_Registers absolute RTC_BASE;
  560. WWDG : TWWDG_Registers absolute WWDG_BASE;
  561. IWDG : TIWDG_Registers absolute IWDG_BASE;
  562. SPI2 : TSPI_Registers absolute SPI2_BASE;
  563. SPI3 : TSPI_Registers absolute SPI3_BASE;
  564. USART2 : TUSART_Registers absolute USART2_BASE;
  565. USART3 : TUSART_Registers absolute USART3_BASE;
  566. UART4 : TUSART_Registers absolute UART4_BASE;
  567. UART5 : TUSART_Registers absolute UART5_BASE;
  568. I2C1 : TI2C_Registers absolute I2C1_BASE;
  569. I2C2 : TI2C_Registers absolute I2C2_BASE;
  570. USB : TUSB_Registers absolute USB_BASE;
  571. CAN1 : TCAN_Registers absolute CAN1_BASE;
  572. BKP : TBKP_Registers absolute BKP_BASE;
  573. PWR : TPWR_Registers absolute PWR_BASE;
  574. DAC1 : TDAC_Registers absolute DAC_BASE;
  575. DAC : TDAC_Registers absolute DAC_BASE;
  576. AFIO : TAFIO_Registers absolute AFIO_BASE;
  577. EXTI : TEXTI_Registers absolute EXTI_BASE;
  578. GPIOA : TGPIO_Registers absolute GPIOA_BASE;
  579. GPIOB : TGPIO_Registers absolute GPIOB_BASE;
  580. GPIOC : TGPIO_Registers absolute GPIOC_BASE;
  581. GPIOD : TGPIO_Registers absolute GPIOD_BASE;
  582. GPIOE : TGPIO_Registers absolute GPIOE_BASE;
  583. GPIOF : TGPIO_Registers absolute GPIOF_BASE;
  584. GPIOG : TGPIO_Registers absolute GPIOG_BASE;
  585. ADC1 : TADC_Registers absolute ADC1_BASE;
  586. ADC2 : TADC_Registers absolute ADC2_BASE;
  587. ADC3 : TADC_Registers absolute ADC3_BASE;
  588. ADC12_COMMON : TADC_Common_Registers absolute ADC1_BASE;
  589. TIM1 : TTIM_Registers absolute TIM1_BASE;
  590. SPI1 : TSPI_Registers absolute SPI1_BASE;
  591. TIM8 : TTIM_Registers absolute TIM8_BASE;
  592. USART1 : TUSART_Registers absolute USART1_BASE;
  593. SDIO : TSDIO_Registers absolute SDIO_BASE;
  594. DMA1 : TDMA_Registers absolute DMA1_BASE;
  595. DMA2 : TDMA_Registers absolute DMA2_BASE;
  596. DMA1_Channel1 : TDMA_Channel_Registers absolute DMA1_Channel1_BASE;
  597. DMA1_Channel2 : TDMA_Channel_Registers absolute DMA1_Channel2_BASE;
  598. DMA1_Channel3 : TDMA_Channel_Registers absolute DMA1_Channel3_BASE;
  599. DMA1_Channel4 : TDMA_Channel_Registers absolute DMA1_Channel4_BASE;
  600. DMA1_Channel5 : TDMA_Channel_Registers absolute DMA1_Channel5_BASE;
  601. DMA1_Channel6 : TDMA_Channel_Registers absolute DMA1_Channel6_BASE;
  602. DMA1_Channel7 : TDMA_Channel_Registers absolute DMA1_Channel7_BASE;
  603. DMA2_Channel1 : TDMA_Channel_Registers absolute DMA2_Channel1_BASE;
  604. DMA2_Channel2 : TDMA_Channel_Registers absolute DMA2_Channel2_BASE;
  605. DMA2_Channel3 : TDMA_Channel_Registers absolute DMA2_Channel3_BASE;
  606. DMA2_Channel4 : TDMA_Channel_Registers absolute DMA2_Channel4_BASE;
  607. DMA2_Channel5 : TDMA_Channel_Registers absolute DMA2_Channel5_BASE;
  608. RCC : TRCC_Registers absolute RCC_BASE;
  609. CRC : TCRC_Registers absolute CRC_BASE;
  610. FLASH : TFLASH_Registers absolute FLASH_R_BASE;
  611. OB : TOB_Registers absolute OB_BASE;
  612. FSMC_Bank1 : TFSMC_Bank1_Registers absolute FSMC_BANK1_R_BASE;
  613. FSMC_Bank1E : TFSMC_Bank1E_Registers absolute FSMC_BANK1E_R_BASE;
  614. FSMC_Bank2_3 : TFSMC_Bank2_3_Registers absolute FSMC_BANK2_3_R_BASE;
  615. FSMC_Bank4 : TFSMC_Bank4_Registers absolute FSMC_BANK4_R_BASE;
  616. DBGMCU : TDBGMCU_Registers absolute DBGMCU_BASE;
  617. implementation
  618. procedure NonMaskableInt_Handler; external name 'NonMaskableInt_Handler';
  619. procedure HardFault_Handler; external name 'HardFault_Handler';
  620. procedure MemoryManagement_Handler; external name 'MemoryManagement_Handler';
  621. procedure BusFault_Handler; external name 'BusFault_Handler';
  622. procedure UsageFault_Handler; external name 'UsageFault_Handler';
  623. procedure SVCall_Handler; external name 'SVCall_Handler';
  624. procedure DebugMonitor_Handler; external name 'DebugMonitor_Handler';
  625. procedure PendSV_Handler; external name 'PendSV_Handler';
  626. procedure SysTick_Handler; external name 'SysTick_Handler';
  627. procedure WWDG_Handler; external name 'WWDG_Handler';
  628. procedure PVD_Handler; external name 'PVD_Handler';
  629. procedure TAMPER_Handler; external name 'TAMPER_Handler';
  630. procedure RTC_Handler; external name 'RTC_Handler';
  631. procedure FLASH_Handler; external name 'FLASH_Handler';
  632. procedure RCC_Handler; external name 'RCC_Handler';
  633. procedure EXTI0_Handler; external name 'EXTI0_Handler';
  634. procedure EXTI1_Handler; external name 'EXTI1_Handler';
  635. procedure EXTI2_Handler; external name 'EXTI2_Handler';
  636. procedure EXTI3_Handler; external name 'EXTI3_Handler';
  637. procedure EXTI4_Handler; external name 'EXTI4_Handler';
  638. procedure DMA1_Channel1_Handler; external name 'DMA1_Channel1_Handler';
  639. procedure DMA1_Channel2_Handler; external name 'DMA1_Channel2_Handler';
  640. procedure DMA1_Channel3_Handler; external name 'DMA1_Channel3_Handler';
  641. procedure DMA1_Channel4_Handler; external name 'DMA1_Channel4_Handler';
  642. procedure DMA1_Channel5_Handler; external name 'DMA1_Channel5_Handler';
  643. procedure DMA1_Channel6_Handler; external name 'DMA1_Channel6_Handler';
  644. procedure DMA1_Channel7_Handler; external name 'DMA1_Channel7_Handler';
  645. procedure ADC1_2_Handler; external name 'ADC1_2_Handler';
  646. procedure USB_HP_CAN1_TX_Handler; external name 'USB_HP_CAN1_TX_Handler';
  647. procedure USB_LP_CAN1_RX0_Handler; external name 'USB_LP_CAN1_RX0_Handler';
  648. procedure CAN1_RX1_Handler; external name 'CAN1_RX1_Handler';
  649. procedure CAN1_SCE_Handler; external name 'CAN1_SCE_Handler';
  650. procedure EXTI9_5_Handler; external name 'EXTI9_5_Handler';
  651. procedure TIM1_BRK_Handler; external name 'TIM1_BRK_Handler';
  652. procedure TIM1_UP_Handler; external name 'TIM1_UP_Handler';
  653. procedure TIM1_TRG_COM_Handler; external name 'TIM1_TRG_COM_Handler';
  654. procedure TIM1_CC_Handler; external name 'TIM1_CC_Handler';
  655. procedure TIM2_Handler; external name 'TIM2_Handler';
  656. procedure TIM3_Handler; external name 'TIM3_Handler';
  657. procedure TIM4_Handler; external name 'TIM4_Handler';
  658. procedure I2C1_EV_Handler; external name 'I2C1_EV_Handler';
  659. procedure I2C1_ER_Handler; external name 'I2C1_ER_Handler';
  660. procedure I2C2_EV_Handler; external name 'I2C2_EV_Handler';
  661. procedure I2C2_ER_Handler; external name 'I2C2_ER_Handler';
  662. procedure SPI1_Handler; external name 'SPI1_Handler';
  663. procedure SPI2_Handler; external name 'SPI2_Handler';
  664. procedure USART1_Handler; external name 'USART1_Handler';
  665. procedure USART2_Handler; external name 'USART2_Handler';
  666. procedure USART3_Handler; external name 'USART3_Handler';
  667. procedure EXTI15_10_Handler; external name 'EXTI15_10_Handler';
  668. procedure RTC_Alarm_Handler; external name 'RTC_Alarm_Handler';
  669. procedure USBWakeUp_Handler; external name 'USBWakeUp_Handler';
  670. procedure TIM8_BRK_Handler; external name 'TIM8_BRK_Handler';
  671. procedure TIM8_UP_Handler; external name 'TIM8_UP_Handler';
  672. procedure TIM8_TRG_COM_Handler; external name 'TIM8_TRG_COM_Handler';
  673. procedure TIM8_CC_Handler; external name 'TIM8_CC_Handler';
  674. procedure ADC3_Handler; external name 'ADC3_Handler';
  675. procedure FSMC_Handler; external name 'FSMC_Handler';
  676. procedure SDIO_Handler; external name 'SDIO_Handler';
  677. procedure TIM5_Handler; external name 'TIM5_Handler';
  678. procedure SPI3_Handler; external name 'SPI3_Handler';
  679. procedure UART4_Handler; external name 'UART4_Handler';
  680. procedure UART5_Handler; external name 'UART5_Handler';
  681. procedure TIM6_Handler; external name 'TIM6_Handler';
  682. procedure TIM7_Handler; external name 'TIM7_Handler';
  683. procedure DMA2_Channel1_Handler; external name 'DMA2_Channel1_Handler';
  684. procedure DMA2_Channel2_Handler; external name 'DMA2_Channel2_Handler';
  685. procedure DMA2_Channel3_Handler; external name 'DMA2_Channel3_Handler';
  686. procedure DMA2_Channel4_5_Handler; external name 'DMA2_Channel4_5_Handler';
  687. {$i cortexm3_start.inc}
  688. procedure Vectors; assembler; nostackframe;
  689. label interrupt_vectors;
  690. asm
  691. .section ".init.interrupt_vectors"
  692. interrupt_vectors:
  693. .long _stack_top
  694. .long Startup
  695. .long NonMaskableInt_Handler
  696. .long HardFault_Handler
  697. .long MemoryManagement_Handler
  698. .long BusFault_Handler
  699. .long UsageFault_Handler
  700. .long 0
  701. .long 0
  702. .long 0
  703. .long 0
  704. .long SVCall_Handler
  705. .long DebugMonitor_Handler
  706. .long 0
  707. .long PendSV_Handler
  708. .long SysTick_Handler
  709. .long WWDG_Handler
  710. .long PVD_Handler
  711. .long TAMPER_Handler
  712. .long RTC_Handler
  713. .long FLASH_Handler
  714. .long RCC_Handler
  715. .long EXTI0_Handler
  716. .long EXTI1_Handler
  717. .long EXTI2_Handler
  718. .long EXTI3_Handler
  719. .long EXTI4_Handler
  720. .long DMA1_Channel1_Handler
  721. .long DMA1_Channel2_Handler
  722. .long DMA1_Channel3_Handler
  723. .long DMA1_Channel4_Handler
  724. .long DMA1_Channel5_Handler
  725. .long DMA1_Channel6_Handler
  726. .long DMA1_Channel7_Handler
  727. .long ADC1_2_Handler
  728. .long USB_HP_CAN1_TX_Handler
  729. .long USB_LP_CAN1_RX0_Handler
  730. .long CAN1_RX1_Handler
  731. .long CAN1_SCE_Handler
  732. .long EXTI9_5_Handler
  733. .long TIM1_BRK_Handler
  734. .long TIM1_UP_Handler
  735. .long TIM1_TRG_COM_Handler
  736. .long TIM1_CC_Handler
  737. .long TIM2_Handler
  738. .long TIM3_Handler
  739. .long TIM4_Handler
  740. .long I2C1_EV_Handler
  741. .long I2C1_ER_Handler
  742. .long I2C2_EV_Handler
  743. .long I2C2_ER_Handler
  744. .long SPI1_Handler
  745. .long SPI2_Handler
  746. .long USART1_Handler
  747. .long USART2_Handler
  748. .long USART3_Handler
  749. .long EXTI15_10_Handler
  750. .long RTC_Alarm_Handler
  751. .long USBWakeUp_Handler
  752. .long TIM8_BRK_Handler
  753. .long TIM8_UP_Handler
  754. .long TIM8_TRG_COM_Handler
  755. .long TIM8_CC_Handler
  756. .long ADC3_Handler
  757. .long FSMC_Handler
  758. .long SDIO_Handler
  759. .long TIM5_Handler
  760. .long SPI3_Handler
  761. .long UART4_Handler
  762. .long UART5_Handler
  763. .long TIM6_Handler
  764. .long TIM7_Handler
  765. .long DMA2_Channel1_Handler
  766. .long DMA2_Channel2_Handler
  767. .long DMA2_Channel3_Handler
  768. .long DMA2_Channel4_5_Handler
  769. .weak NonMaskableInt_Handler
  770. .weak HardFault_Handler
  771. .weak MemoryManagement_Handler
  772. .weak BusFault_Handler
  773. .weak UsageFault_Handler
  774. .weak SVCall_Handler
  775. .weak DebugMonitor_Handler
  776. .weak PendSV_Handler
  777. .weak SysTick_Handler
  778. .weak WWDG_Handler
  779. .weak PVD_Handler
  780. .weak TAMPER_Handler
  781. .weak RTC_Handler
  782. .weak FLASH_Handler
  783. .weak RCC_Handler
  784. .weak EXTI0_Handler
  785. .weak EXTI1_Handler
  786. .weak EXTI2_Handler
  787. .weak EXTI3_Handler
  788. .weak EXTI4_Handler
  789. .weak DMA1_Channel1_Handler
  790. .weak DMA1_Channel2_Handler
  791. .weak DMA1_Channel3_Handler
  792. .weak DMA1_Channel4_Handler
  793. .weak DMA1_Channel5_Handler
  794. .weak DMA1_Channel6_Handler
  795. .weak DMA1_Channel7_Handler
  796. .weak ADC1_2_Handler
  797. .weak USB_HP_CAN1_TX_Handler
  798. .weak USB_LP_CAN1_RX0_Handler
  799. .weak CAN1_RX1_Handler
  800. .weak CAN1_SCE_Handler
  801. .weak EXTI9_5_Handler
  802. .weak TIM1_BRK_Handler
  803. .weak TIM1_UP_Handler
  804. .weak TIM1_TRG_COM_Handler
  805. .weak TIM1_CC_Handler
  806. .weak TIM2_Handler
  807. .weak TIM3_Handler
  808. .weak TIM4_Handler
  809. .weak I2C1_EV_Handler
  810. .weak I2C1_ER_Handler
  811. .weak I2C2_EV_Handler
  812. .weak I2C2_ER_Handler
  813. .weak SPI1_Handler
  814. .weak SPI2_Handler
  815. .weak USART1_Handler
  816. .weak USART2_Handler
  817. .weak USART3_Handler
  818. .weak EXTI15_10_Handler
  819. .weak RTC_Alarm_Handler
  820. .weak USBWakeUp_Handler
  821. .weak TIM8_BRK_Handler
  822. .weak TIM8_UP_Handler
  823. .weak TIM8_TRG_COM_Handler
  824. .weak TIM8_CC_Handler
  825. .weak ADC3_Handler
  826. .weak FSMC_Handler
  827. .weak SDIO_Handler
  828. .weak TIM5_Handler
  829. .weak SPI3_Handler
  830. .weak UART4_Handler
  831. .weak UART5_Handler
  832. .weak TIM6_Handler
  833. .weak TIM7_Handler
  834. .weak DMA2_Channel1_Handler
  835. .weak DMA2_Channel2_Handler
  836. .weak DMA2_Channel3_Handler
  837. .weak DMA2_Channel4_5_Handler
  838. .set NonMaskableInt_Handler, Haltproc
  839. .set HardFault_Handler, Haltproc
  840. .set MemoryManagement_Handler, Haltproc
  841. .set BusFault_Handler, Haltproc
  842. .set UsageFault_Handler, Haltproc
  843. .set SVCall_Handler, Haltproc
  844. .set DebugMonitor_Handler, Haltproc
  845. .set PendSV_Handler, Haltproc
  846. .set SysTick_Handler, Haltproc
  847. .set WWDG_Handler, Haltproc
  848. .set PVD_Handler, Haltproc
  849. .set TAMPER_Handler, Haltproc
  850. .set RTC_Handler, Haltproc
  851. .set FLASH_Handler, Haltproc
  852. .set RCC_Handler, Haltproc
  853. .set EXTI0_Handler, Haltproc
  854. .set EXTI1_Handler, Haltproc
  855. .set EXTI2_Handler, Haltproc
  856. .set EXTI3_Handler, Haltproc
  857. .set EXTI4_Handler, Haltproc
  858. .set DMA1_Channel1_Handler, Haltproc
  859. .set DMA1_Channel2_Handler, Haltproc
  860. .set DMA1_Channel3_Handler, Haltproc
  861. .set DMA1_Channel4_Handler, Haltproc
  862. .set DMA1_Channel5_Handler, Haltproc
  863. .set DMA1_Channel6_Handler, Haltproc
  864. .set DMA1_Channel7_Handler, Haltproc
  865. .set ADC1_2_Handler, Haltproc
  866. .set USB_HP_CAN1_TX_Handler, Haltproc
  867. .set USB_LP_CAN1_RX0_Handler, Haltproc
  868. .set CAN1_RX1_Handler, Haltproc
  869. .set CAN1_SCE_Handler, Haltproc
  870. .set EXTI9_5_Handler, Haltproc
  871. .set TIM1_BRK_Handler, Haltproc
  872. .set TIM1_UP_Handler, Haltproc
  873. .set TIM1_TRG_COM_Handler, Haltproc
  874. .set TIM1_CC_Handler, Haltproc
  875. .set TIM2_Handler, Haltproc
  876. .set TIM3_Handler, Haltproc
  877. .set TIM4_Handler, Haltproc
  878. .set I2C1_EV_Handler, Haltproc
  879. .set I2C1_ER_Handler, Haltproc
  880. .set I2C2_EV_Handler, Haltproc
  881. .set I2C2_ER_Handler, Haltproc
  882. .set SPI1_Handler, Haltproc
  883. .set SPI2_Handler, Haltproc
  884. .set USART1_Handler, Haltproc
  885. .set USART2_Handler, Haltproc
  886. .set USART3_Handler, Haltproc
  887. .set EXTI15_10_Handler, Haltproc
  888. .set RTC_Alarm_Handler, Haltproc
  889. .set USBWakeUp_Handler, Haltproc
  890. .set TIM8_BRK_Handler, Haltproc
  891. .set TIM8_UP_Handler, Haltproc
  892. .set TIM8_TRG_COM_Handler, Haltproc
  893. .set TIM8_CC_Handler, Haltproc
  894. .set ADC3_Handler, Haltproc
  895. .set FSMC_Handler, Haltproc
  896. .set SDIO_Handler, Haltproc
  897. .set TIM5_Handler, Haltproc
  898. .set SPI3_Handler, Haltproc
  899. .set UART4_Handler, Haltproc
  900. .set UART5_Handler, Haltproc
  901. .set TIM6_Handler, Haltproc
  902. .set TIM7_Handler, Haltproc
  903. .set DMA2_Channel1_Handler, Haltproc
  904. .set DMA2_Channel2_Handler, Haltproc
  905. .set DMA2_Channel3_Handler, Haltproc
  906. .set DMA2_Channel4_5_Handler, Haltproc
  907. .text
  908. end;
  909. end.