You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

518 lines
18 KiB

  1. ;******************************************************************************
  2. ;* File Name : startup_stm32wb5mxx_cm4.s
  3. ;* Author : MCD Application Team
  4. ;* Description : M4 core vector table of the STM32WB5Mxx devices for the
  5. ;* IAR (EWARM) toolchain.
  6. ;*
  7. ;* This module performs:
  8. ;* - Set the initial SP
  9. ;* - Set the initial PC == _iar_program_start,
  10. ;* - Set the vector table entries with the exceptions ISR
  11. ;* address.
  12. ;* - Branches to main in the C library (which eventually
  13. ;* calls main()).
  14. ;* After Reset the Cortex-M4 processor is in Thread mode,
  15. ;* priority is Privileged, and the Stack is set to Main.
  16. ;******************************************************************************
  17. ;* @attention
  18. ;*
  19. ;* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
  20. ;* All rights reserved.</center></h2>
  21. ;*
  22. ;* This software component is licensed by ST under BSD 3-Clause license,
  23. ;* the "License"; You may not use this file except in compliance with the
  24. ;* License. You may obtain a copy of the License at:
  25. ;* opensource.org/licenses/BSD-3-Clause
  26. ;*
  27. ;******************************************************************************
  28. ;
  29. ;
  30. ; The modules in this file are included in the libraries, and may be replaced
  31. ; by any user-defined modules that define the PUBLIC symbol _program_start or
  32. ; a user defined start symbol.
  33. ; To override the cstartup defined in the library, simply add your modified
  34. ; version to the workbench project.
  35. ;
  36. ; The vector table is normally located at address 0.
  37. ; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
  38. ; The name "__vector_table" has special meaning for C-SPY:
  39. ; it is where the SP start value is found, and the NVIC vector
  40. ; table register (VTOR) is initialized to this address if != 0.
  41. ;
  42. ; Cortex-M version
  43. ;
  44. MODULE ?cstartup
  45. ;; Forward declaration of sections.
  46. SECTION CSTACK:DATA:NOROOT(3)
  47. SECTION .intvec:CODE:NOROOT(2)
  48. EXTERN __iar_program_start
  49. EXTERN SystemInit
  50. PUBLIC __vector_table
  51. DATA
  52. __vector_table
  53. DCD sfe(CSTACK)
  54. DCD Reset_Handler ; Reset Handler
  55. DCD NMI_Handler ; NMI Handler
  56. DCD HardFault_Handler ; Hard Fault Handler
  57. DCD MemManage_Handler ; MPU Fault Handler
  58. DCD BusFault_Handler ; Bus Fault Handler
  59. DCD UsageFault_Handler ; Usage Fault Handler
  60. DCD 0 ; Reserved
  61. DCD 0 ; Reserved
  62. DCD 0 ; Reserved
  63. DCD 0 ; Reserved
  64. DCD SVC_Handler ; SVCall Handler
  65. DCD DebugMon_Handler ; Debug Monitor Handler
  66. DCD 0 ; Reserved
  67. DCD PendSV_Handler ; PendSV Handler
  68. DCD SysTick_Handler ; SysTick Handler
  69. ; External Interrupts
  70. DCD WWDG_IRQHandler ; Window WatchDog
  71. DCD PVD_PVM_IRQHandler ; PVD and PVM Interrupt
  72. DCD TAMP_STAMP_LSECSS_IRQHandler ; RTC Tamper, TimeStamp Interrupts and LSECSS Interrupts
  73. DCD RTC_WKUP_IRQHandler ; RTC Wakeup Interrupt
  74. DCD FLASH_IRQHandler ; FLASH global Interrupt
  75. DCD RCC_IRQHandler ; RCC Interrupt
  76. DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
  77. DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
  78. DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
  79. DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
  80. DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
  81. DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
  82. DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
  83. DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3 Interrupt
  84. DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4 Interrupt
  85. DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5 Interrupt
  86. DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6 Interrupt
  87. DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7 Interrupt
  88. DCD ADC1_IRQHandler ; ADC1 Interrupt
  89. DCD USB_HP_IRQHandler ; USB High Priority Interrupt
  90. DCD USB_LP_IRQHandler ; USB Low Priority Interrupt
  91. DCD C2SEV_PWR_C2H_IRQHandler ; CPU M0+ SEV Interrupt
  92. DCD COMP_IRQHandler ; COMP1 and COMP2 Interrupts
  93. DCD EXTI9_5_IRQHandler ; EXTI Lines [9:5] Interrupt
  94. DCD TIM1_BRK_IRQHandler ; TIM1 Break Interrupt
  95. DCD TIM1_UP_TIM16_IRQHandler ; TIM1 Update and TIM16 global Interrupts
  96. DCD TIM1_TRG_COM_TIM17_IRQHandler ; TIM1 Trigger and Communication and TIM17 global Interrupts
  97. DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare Interrupt
  98. DCD TIM2_IRQHandler ; TIM2 Global Interrupt
  99. DCD PKA_IRQHandler ; PKA Interrupt
  100. DCD I2C1_EV_IRQHandler ; I2C1 Event Interrupt
  101. DCD I2C1_ER_IRQHandler ; I2C1 Error Interrupt
  102. DCD I2C3_EV_IRQHandler ; I2C3 Event Interrupt
  103. DCD I2C3_ER_IRQHandler ; I2C3 Error Interrupt
  104. DCD SPI1_IRQHandler ; SPI1 Interrupt
  105. DCD SPI2_IRQHandler ; SPI2 Interrupt
  106. DCD USART1_IRQHandler ; USART1 Interrupt
  107. DCD LPUART1_IRQHandler ; LPUART1 Interrupt
  108. DCD SAI1_IRQHandler ; SAI Interrupt
  109. DCD TSC_IRQHandler ; TSC Interrupt
  110. DCD EXTI15_10_IRQHandler ; EXTI Lines1[15:10 ]Interrupts
  111. DCD RTC_Alarm_IRQHandler ; RTC Alarms (A and B) Interrupt
  112. DCD CRS_IRQHandler ; CRS interrupt
  113. DCD PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler ; WKUP Interrupt from PWR
  114. DCD IPCC_C1_RX_IRQHandler ; IPCC CPU1 RX occupied interrupt
  115. DCD IPCC_C1_TX_IRQHandler ; IPCC CPU1 RX free interrupt
  116. DCD HSEM_IRQHandler ; HSEM0 Interrupt
  117. DCD LPTIM1_IRQHandler ; LPTIM1 Interrupt
  118. DCD LPTIM2_IRQHandler ; LPTIM2 Interrupt
  119. DCD LCD_IRQHandler ; LCD Interrupt
  120. DCD QUADSPI_IRQHandler ; QUADSPI Interrupt
  121. DCD AES1_IRQHandler ; AES1 Interrupt
  122. DCD AES2_IRQHandler ; AES2 Interrupt
  123. DCD RNG_IRQHandler ; RNG1 Interrupt
  124. DCD FPU_IRQHandler ; FPU Interrupt
  125. DCD DMA2_Channel1_IRQHandler ; DMA2 Channel 1 Interrupt
  126. DCD DMA2_Channel2_IRQHandler ; DMA2 Channel 2 Interrupt
  127. DCD DMA2_Channel3_IRQHandler ; DMA2 Channel 3 Interrupt
  128. DCD DMA2_Channel4_IRQHandler ; DMA2 Channel 4 Interrupt
  129. DCD DMA2_Channel5_IRQHandler ; DMA2 Channel 5 Interrupt
  130. DCD DMA2_Channel6_IRQHandler ; DMA2 Channel 6 Interrupt
  131. DCD DMA2_Channel7_IRQHandler ; DMA2 Channel 7 Interrupt
  132. DCD DMAMUX1_OVR_IRQHandler ; DMAMUX overrun Interrupt
  133. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  134. ;;
  135. ;; Default interrupt handlers.
  136. ;;
  137. THUMB
  138. PUBWEAK Reset_Handler
  139. SECTION .text:CODE:NOROOT:REORDER(2)
  140. Reset_Handler
  141. LDR R0, =SystemInit
  142. BLX R0
  143. LDR R0, =__iar_program_start
  144. BX R0
  145. PUBWEAK NMI_Handler
  146. SECTION .text:CODE:NOROOT:REORDER(1)
  147. NMI_Handler
  148. B NMI_Handler
  149. PUBWEAK HardFault_Handler
  150. SECTION .text:CODE:NOROOT:REORDER(1)
  151. HardFault_Handler
  152. B HardFault_Handler
  153. PUBWEAK MemManage_Handler
  154. SECTION .text:CODE:NOROOT:REORDER(1)
  155. MemManage_Handler
  156. B MemManage_Handler
  157. PUBWEAK BusFault_Handler
  158. SECTION .text:CODE:NOROOT:REORDER(1)
  159. BusFault_Handler
  160. B BusFault_Handler
  161. PUBWEAK UsageFault_Handler
  162. SECTION .text:CODE:NOROOT:REORDER(1)
  163. UsageFault_Handler
  164. B UsageFault_Handler
  165. PUBWEAK SVC_Handler
  166. SECTION .text:CODE:NOROOT:REORDER(1)
  167. SVC_Handler
  168. B SVC_Handler
  169. PUBWEAK DebugMon_Handler
  170. SECTION .text:CODE:NOROOT:REORDER(1)
  171. DebugMon_Handler
  172. B DebugMon_Handler
  173. PUBWEAK PendSV_Handler
  174. SECTION .text:CODE:NOROOT:REORDER(1)
  175. PendSV_Handler
  176. B PendSV_Handler
  177. PUBWEAK SysTick_Handler
  178. SECTION .text:CODE:NOROOT:REORDER(1)
  179. SysTick_Handler
  180. B SysTick_Handler
  181. PUBWEAK WWDG_IRQHandler
  182. SECTION .text:CODE:NOROOT:REORDER(1)
  183. WWDG_IRQHandler
  184. B WWDG_IRQHandler
  185. PUBWEAK PVD_PVM_IRQHandler
  186. SECTION .text:CODE:NOROOT:REORDER(1)
  187. PVD_PVM_IRQHandler
  188. B PVD_PVM_IRQHandler
  189. PUBWEAK TAMP_STAMP_LSECSS_IRQHandler
  190. SECTION .text:CODE:NOROOT:REORDER(1)
  191. TAMP_STAMP_LSECSS_IRQHandler
  192. B TAMP_STAMP_LSECSS_IRQHandler
  193. PUBWEAK RTC_WKUP_IRQHandler
  194. SECTION .text:CODE:NOROOT:REORDER(1)
  195. RTC_WKUP_IRQHandler
  196. B RTC_WKUP_IRQHandler
  197. PUBWEAK FLASH_IRQHandler
  198. SECTION .text:CODE:NOROOT:REORDER(1)
  199. FLASH_IRQHandler
  200. B FLASH_IRQHandler
  201. PUBWEAK RCC_IRQHandler
  202. SECTION .text:CODE:NOROOT:REORDER(1)
  203. RCC_IRQHandler
  204. B RCC_IRQHandler
  205. PUBWEAK EXTI0_IRQHandler
  206. SECTION .text:CODE:NOROOT:REORDER(1)
  207. EXTI0_IRQHandler
  208. B EXTI0_IRQHandler
  209. PUBWEAK EXTI1_IRQHandler
  210. SECTION .text:CODE:NOROOT:REORDER(1)
  211. EXTI1_IRQHandler
  212. B EXTI1_IRQHandler
  213. PUBWEAK EXTI2_IRQHandler
  214. SECTION .text:CODE:NOROOT:REORDER(1)
  215. EXTI2_IRQHandler
  216. B EXTI2_IRQHandler
  217. PUBWEAK EXTI3_IRQHandler
  218. SECTION .text:CODE:NOROOT:REORDER(1)
  219. EXTI3_IRQHandler
  220. B EXTI3_IRQHandler
  221. PUBWEAK EXTI4_IRQHandler
  222. SECTION .text:CODE:NOROOT:REORDER(1)
  223. EXTI4_IRQHandler
  224. B EXTI4_IRQHandler
  225. PUBWEAK DMA1_Channel1_IRQHandler
  226. SECTION .text:CODE:NOROOT:REORDER(1)
  227. DMA1_Channel1_IRQHandler
  228. B DMA1_Channel1_IRQHandler
  229. PUBWEAK DMA1_Channel2_IRQHandler
  230. SECTION .text:CODE:NOROOT:REORDER(1)
  231. DMA1_Channel2_IRQHandler
  232. B DMA1_Channel2_IRQHandler
  233. PUBWEAK DMA1_Channel3_IRQHandler
  234. SECTION .text:CODE:NOROOT:REORDER(1)
  235. DMA1_Channel3_IRQHandler
  236. B DMA1_Channel3_IRQHandler
  237. PUBWEAK DMA1_Channel4_IRQHandler
  238. SECTION .text:CODE:NOROOT:REORDER(1)
  239. DMA1_Channel4_IRQHandler
  240. B DMA1_Channel4_IRQHandler
  241. PUBWEAK DMA1_Channel5_IRQHandler
  242. SECTION .text:CODE:NOROOT:REORDER(1)
  243. DMA1_Channel5_IRQHandler
  244. B DMA1_Channel5_IRQHandler
  245. PUBWEAK DMA1_Channel6_IRQHandler
  246. SECTION .text:CODE:NOROOT:REORDER(1)
  247. DMA1_Channel6_IRQHandler
  248. B DMA1_Channel6_IRQHandler
  249. PUBWEAK DMA1_Channel7_IRQHandler
  250. SECTION .text:CODE:NOROOT:REORDER(1)
  251. DMA1_Channel7_IRQHandler
  252. B DMA1_Channel7_IRQHandler
  253. PUBWEAK ADC1_IRQHandler
  254. SECTION .text:CODE:NOROOT:REORDER(1)
  255. ADC1_IRQHandler
  256. B ADC1_IRQHandler
  257. PUBWEAK USB_HP_IRQHandler
  258. SECTION .text:CODE:NOROOT:REORDER(1)
  259. USB_HP_IRQHandler
  260. B USB_HP_IRQHandler
  261. PUBWEAK USB_LP_IRQHandler
  262. SECTION .text:CODE:NOROOT:REORDER(1)
  263. USB_LP_IRQHandler
  264. B USB_LP_IRQHandler
  265. PUBWEAK C2SEV_PWR_C2H_IRQHandler
  266. SECTION .text:CODE:NOROOT:REORDER(1)
  267. C2SEV_PWR_C2H_IRQHandler
  268. B C2SEV_PWR_C2H_IRQHandler
  269. PUBWEAK COMP_IRQHandler
  270. SECTION .text:CODE:NOROOT:REORDER(1)
  271. COMP_IRQHandler
  272. B COMP_IRQHandler
  273. PUBWEAK EXTI9_5_IRQHandler
  274. SECTION .text:CODE:NOROOT:REORDER(1)
  275. EXTI9_5_IRQHandler
  276. B EXTI9_5_IRQHandler
  277. PUBWEAK TIM1_BRK_IRQHandler
  278. SECTION .text:CODE:NOROOT:REORDER(1)
  279. TIM1_BRK_IRQHandler
  280. B TIM1_BRK_IRQHandler
  281. PUBWEAK TIM1_UP_TIM16_IRQHandler
  282. SECTION .text:CODE:NOROOT:REORDER(1)
  283. TIM1_UP_TIM16_IRQHandler
  284. B TIM1_UP_TIM16_IRQHandler
  285. PUBWEAK TIM1_TRG_COM_TIM17_IRQHandler
  286. SECTION .text:CODE:NOROOT:REORDER(1)
  287. TIM1_TRG_COM_TIM17_IRQHandler
  288. B TIM1_TRG_COM_TIM17_IRQHandler
  289. PUBWEAK TIM1_CC_IRQHandler
  290. SECTION .text:CODE:NOROOT:REORDER(1)
  291. TIM1_CC_IRQHandler
  292. B TIM1_CC_IRQHandler
  293. PUBWEAK TIM2_IRQHandler
  294. SECTION .text:CODE:NOROOT:REORDER(1)
  295. TIM2_IRQHandler
  296. B TIM2_IRQHandler
  297. PUBWEAK PKA_IRQHandler
  298. SECTION .text:CODE:NOROOT:REORDER(1)
  299. PKA_IRQHandler
  300. B PKA_IRQHandler
  301. PUBWEAK I2C1_EV_IRQHandler
  302. SECTION .text:CODE:NOROOT:REORDER(1)
  303. I2C1_EV_IRQHandler
  304. B I2C1_EV_IRQHandler
  305. PUBWEAK I2C1_ER_IRQHandler
  306. SECTION .text:CODE:NOROOT:REORDER(1)
  307. I2C1_ER_IRQHandler
  308. B I2C1_ER_IRQHandler
  309. PUBWEAK I2C3_EV_IRQHandler
  310. SECTION .text:CODE:NOROOT:REORDER(1)
  311. I2C3_EV_IRQHandler
  312. B I2C3_EV_IRQHandler
  313. PUBWEAK I2C3_ER_IRQHandler
  314. SECTION .text:CODE:NOROOT:REORDER(1)
  315. I2C3_ER_IRQHandler
  316. B I2C3_ER_IRQHandler
  317. PUBWEAK SPI1_IRQHandler
  318. SECTION .text:CODE:NOROOT:REORDER(1)
  319. SPI1_IRQHandler
  320. B SPI1_IRQHandler
  321. PUBWEAK SPI2_IRQHandler
  322. SECTION .text:CODE:NOROOT:REORDER(1)
  323. SPI2_IRQHandler
  324. B SPI2_IRQHandler
  325. PUBWEAK USART1_IRQHandler
  326. SECTION .text:CODE:NOROOT:REORDER(1)
  327. USART1_IRQHandler
  328. B USART1_IRQHandler
  329. PUBWEAK LPUART1_IRQHandler
  330. SECTION .text:CODE:NOROOT:REORDER(1)
  331. LPUART1_IRQHandler
  332. B LPUART1_IRQHandler
  333. PUBWEAK SAI1_IRQHandler
  334. SECTION .text:CODE:NOROOT:REORDER(1)
  335. SAI1_IRQHandler
  336. B SAI1_IRQHandler
  337. PUBWEAK TSC_IRQHandler
  338. SECTION .text:CODE:NOROOT:REORDER(1)
  339. TSC_IRQHandler
  340. B TSC_IRQHandler
  341. PUBWEAK EXTI15_10_IRQHandler
  342. SECTION .text:CODE:NOROOT:REORDER(1)
  343. EXTI15_10_IRQHandler
  344. B EXTI15_10_IRQHandler
  345. PUBWEAK RTC_Alarm_IRQHandler
  346. SECTION .text:CODE:NOROOT:REORDER(1)
  347. RTC_Alarm_IRQHandler
  348. B RTC_Alarm_IRQHandler
  349. PUBWEAK CRS_IRQHandler
  350. SECTION .text:CODE:NOROOT:REORDER(1)
  351. CRS_IRQHandler
  352. B CRS_IRQHandler
  353. PUBWEAK PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler
  354. SECTION .text:CODE:NOROOT:REORDER(1)
  355. PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler
  356. B PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler
  357. PUBWEAK IPCC_C1_RX_IRQHandler
  358. SECTION .text:CODE:NOROOT:REORDER(1)
  359. IPCC_C1_RX_IRQHandler
  360. B IPCC_C1_RX_IRQHandler
  361. PUBWEAK IPCC_C1_TX_IRQHandler
  362. SECTION .text:CODE:NOROOT:REORDER(1)
  363. IPCC_C1_TX_IRQHandler
  364. B IPCC_C1_TX_IRQHandler
  365. PUBWEAK HSEM_IRQHandler
  366. SECTION .text:CODE:NOROOT:REORDER(1)
  367. HSEM_IRQHandler
  368. B HSEM_IRQHandler
  369. PUBWEAK LPTIM1_IRQHandler
  370. SECTION .text:CODE:NOROOT:REORDER(1)
  371. LPTIM1_IRQHandler
  372. B LPTIM1_IRQHandler
  373. PUBWEAK LPTIM2_IRQHandler
  374. SECTION .text:CODE:NOROOT:REORDER(1)
  375. LPTIM2_IRQHandler
  376. B LPTIM2_IRQHandler
  377. PUBWEAK LCD_IRQHandler
  378. SECTION .text:CODE:NOROOT:REORDER(1)
  379. LCD_IRQHandler
  380. B LCD_IRQHandler
  381. PUBWEAK QUADSPI_IRQHandler
  382. SECTION .text:CODE:NOROOT:REORDER(1)
  383. QUADSPI_IRQHandler
  384. B QUADSPI_IRQHandler
  385. PUBWEAK AES1_IRQHandler
  386. SECTION .text:CODE:NOROOT:REORDER(1)
  387. AES1_IRQHandler
  388. B AES1_IRQHandler
  389. PUBWEAK AES2_IRQHandler
  390. SECTION .text:CODE:NOROOT:REORDER(1)
  391. AES2_IRQHandler
  392. B AES2_IRQHandler
  393. PUBWEAK RNG_IRQHandler
  394. SECTION .text:CODE:NOROOT:REORDER(1)
  395. RNG_IRQHandler
  396. B RNG_IRQHandler
  397. PUBWEAK FPU_IRQHandler
  398. SECTION .text:CODE:NOROOT:REORDER(1)
  399. FPU_IRQHandler
  400. B FPU_IRQHandler
  401. PUBWEAK DMA2_Channel1_IRQHandler
  402. SECTION .text:CODE:NOROOT:REORDER(1)
  403. DMA2_Channel1_IRQHandler
  404. B DMA2_Channel1_IRQHandler
  405. PUBWEAK DMA2_Channel2_IRQHandler
  406. SECTION .text:CODE:NOROOT:REORDER(1)
  407. DMA2_Channel2_IRQHandler
  408. B DMA2_Channel2_IRQHandler
  409. PUBWEAK DMA2_Channel3_IRQHandler
  410. SECTION .text:CODE:NOROOT:REORDER(1)
  411. DMA2_Channel3_IRQHandler
  412. B DMA2_Channel3_IRQHandler
  413. PUBWEAK DMA2_Channel4_IRQHandler
  414. SECTION .text:CODE:NOROOT:REORDER(1)
  415. DMA2_Channel4_IRQHandler
  416. B DMA2_Channel4_IRQHandler
  417. PUBWEAK DMA2_Channel5_IRQHandler
  418. SECTION .text:CODE:NOROOT:REORDER(1)
  419. DMA2_Channel5_IRQHandler
  420. B DMA2_Channel5_IRQHandler
  421. PUBWEAK DMA2_Channel6_IRQHandler
  422. SECTION .text:CODE:NOROOT:REORDER(1)
  423. DMA2_Channel6_IRQHandler
  424. B DMA2_Channel6_IRQHandler
  425. PUBWEAK DMA2_Channel7_IRQHandler
  426. SECTION .text:CODE:NOROOT:REORDER(1)
  427. DMA2_Channel7_IRQHandler
  428. B DMA2_Channel7_IRQHandler
  429. PUBWEAK DMAMUX1_OVR_IRQHandler
  430. SECTION .text:CODE:NOROOT:REORDER(1)
  431. DMAMUX1_OVR_IRQHandler
  432. B DMAMUX1_OVR_IRQHandler
  433. END
  434. ;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****