1 /**************************************************
\r
3 * Part one of the system initialization code, contains low-level
\r
4 * initialization, plain thumb variant.
\r
6 * Copyright 2009 IAR Systems. All rights reserved.
\r
10 **************************************************/
\r
13 ; The modules in this file are included in the libraries, and may be replaced
\r
14 ; by any user-defined modules that define the PUBLIC symbol _program_start or
\r
15 ; a user defined start symbol.
\r
16 ; To override the cstartup defined in the library, simply add your modified
\r
17 ; version to the workbench project.
\r
19 ; The vector table is normally located at address 0.
\r
20 ; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
\r
21 ; The name "__vector_table" has special meaning for C-SPY:
\r
22 ; it is where the SP start value is found, and the NVIC vector
\r
23 ; table register (VTOR) is initialized to this address if != 0.
\r
30 ;; Forward declaration of sections.
\r
31 SECTION CSTACK:DATA:NOROOT(3)
\r
33 SECTION .intvec:CODE:NOROOT(2)
\r
35 EXTERN __iar_program_start
\r
36 EXTERN xPortPendSVHandler
\r
37 EXTERN xPortSysTickHandler
\r
38 EXTERN vPortSVCHandler
\r
40 PUBLIC __vector_table
\r
41 PUBLIC __vector_table_0x1c
\r
45 DCD sfe(CSTACK) ; Top of Stack
\r
46 DCD __iar_program_start ; Reset Handler
\r
47 DCD NMI_Handler ; NMI Handler
\r
48 DCD HardFault_Handler ; Hard Fault Handler
\r
49 DCD MemManage_Handler ; MPU Fault Handler
\r
50 DCD BusFault_Handler ; Bus Fault Handler
\r
51 DCD UsageFault_Handler ; Usage Fault Handler
\r
57 DCD vPortSVCHandler ; SVCall Handler
\r
58 DCD DebugMon_Handler ; Debug Monitor Handler
\r
60 DCD xPortPendSVHandler ; PendSV Handler
\r
61 DCD xPortSysTickHandler ; SysTick Handler
\r
62 DCD WDT_IRQHandler ; Watchdog Handler
\r
63 DCD TMR0_IRQHandler ; TIMER0 Handler
\r
64 DCD TMR1_IRQHandler ; TIMER1 Handler
\r
65 DCD TMR2_IRQHandler ; TIMER2 Handler
\r
66 DCD TMR3_IRQHandler ; TIMER3 Handler
\r
67 DCD UART0_IRQHandler ; UART0 Handler
\r
68 DCD UART1_IRQHandler ; UART1 Handler
\r
69 DCD UART2_IRQHandler ; UART2 Handler
\r
70 DCD UART3_IRQHandler ; UART3 Handler
\r
71 DCD PWM1_IRQHandler ; PWM1 Handler
\r
72 DCD I2C0_IRQHandler ; I2C0 Handler
\r
73 DCD I2C1_IRQHandler ; I2C1 Handler
\r
74 DCD I2C2_IRQHandler ; I2C2 Handler
\r
75 DCD SPI_IRQHandler ; SPI Handler
\r
76 DCD SSP0_IRQHandler ; SSP0 Handler
\r
77 DCD SSP1_IRQHandler ; SSP1 Handler
\r
78 DCD PLL0_IRQHandler ; PLL0 Handler
\r
79 DCD RTC_IRQHandler ; RTC Handler
\r
80 DCD EINT0_IRQHandler ; EXT Interupt 0 Handler
\r
81 DCD EINT1_IRQHandler ; EXT Interupt 1 Handler
\r
82 DCD EINT2_IRQHandler ; EXT Interupt 2 Handler
\r
83 DCD EINT3_IRQHandler ; EXT Interupt 3 Handler
\r
84 DCD ADC_IRQHandler ; ADC Handler
\r
85 DCD BOD_IRQHandler ; BOD Handler
\r
86 DCD USB_IRQHandler ; USB Handler
\r
87 DCD CAN_IRQHandler ; CAN Handler
\r
88 DCD GPDMA_IRQHandler ; General Purpose DMA Handler
\r
89 DCD I2S_IRQHandler ; I2S Handler
\r
90 DCD vEMAC_ISR ; Ethernet Handler
\r
91 DCD RIT_IRQHandler ; Repetitive Interrupt Timer Handler
\r
92 DCD MotorControlPWM_IRQHandler ; Motor Control PWM Handler
\r
93 DCD QE_IRQHandler ; Quadrature Encoder Handler
\r
94 DCD PLL1_IRQHandler ; PLL1 Handler
\r
96 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\r
98 ;; Default interrupt handlers.
\r
102 PUBWEAK NMI_Handler
\r
103 SECTION .text:CODE:REORDER(1)
\r
106 PUBWEAK HardFault_Handler
\r
107 SECTION .text:CODE:REORDER(1)
\r
109 B HardFault_Handler
\r
110 PUBWEAK MemManage_Handler
\r
111 SECTION .text:CODE:REORDER(1)
\r
113 B MemManage_Handler
\r
114 PUBWEAK BusFault_Handler
\r
115 SECTION .text:CODE:REORDER(1)
\r
118 PUBWEAK UsageFault_Handler
\r
119 SECTION .text:CODE:REORDER(1)
\r
121 B UsageFault_Handler
\r
122 PUBWEAK SVC_Handler
\r
123 SECTION .text:CODE:REORDER(1)
\r
126 PUBWEAK DebugMon_Handler
\r
127 SECTION .text:CODE:REORDER(1)
\r
130 PUBWEAK PendSV_Handler
\r
131 SECTION .text:CODE:REORDER(1)
\r
134 PUBWEAK SysTick_Handler
\r
135 SECTION .text:CODE:REORDER(1)
\r
138 PUBWEAK WDT_IRQHandler
\r
139 SECTION .text:CODE:REORDER(1)
\r
142 PUBWEAK TMR0_IRQHandler
\r
143 SECTION .text:CODE:REORDER(1)
\r
146 PUBWEAK TMR1_IRQHandler
\r
147 SECTION .text:CODE:REORDER(1)
\r
150 PUBWEAK TMR2_IRQHandler
\r
151 SECTION .text:CODE:REORDER(1)
\r
154 PUBWEAK TMR3_IRQHandler
\r
155 SECTION .text:CODE:REORDER(1)
\r
158 PUBWEAK UART0_IRQHandler
\r
159 SECTION .text:CODE:REORDER(1)
\r
162 PUBWEAK UART1_IRQHandler
\r
163 SECTION .text:CODE:REORDER(1)
\r
166 PUBWEAK UART2_IRQHandler
\r
167 SECTION .text:CODE:REORDER(1)
\r
170 PUBWEAK UART3_IRQHandler
\r
171 SECTION .text:CODE:REORDER(1)
\r
174 PUBWEAK PWM1_IRQHandler
\r
175 SECTION .text:CODE:REORDER(1)
\r
178 PUBWEAK I2C0_IRQHandler
\r
179 SECTION .text:CODE:REORDER(1)
\r
182 PUBWEAK I2C1_IRQHandler
\r
183 SECTION .text:CODE:REORDER(1)
\r
186 PUBWEAK I2C2_IRQHandler
\r
187 SECTION .text:CODE:REORDER(1)
\r
190 PUBWEAK SPI_IRQHandler
\r
191 SECTION .text:CODE:REORDER(1)
\r
194 PUBWEAK SSP0_IRQHandler
\r
195 SECTION .text:CODE:REORDER(1)
\r
198 PUBWEAK SSP1_IRQHandler
\r
199 SECTION .text:CODE:REORDER(1)
\r
202 PUBWEAK PLL0_IRQHandler
\r
203 SECTION .text:CODE:REORDER(1)
\r
206 PUBWEAK RTC_IRQHandler
\r
207 SECTION .text:CODE:REORDER(1)
\r
210 PUBWEAK EINT0_IRQHandler
\r
211 SECTION .text:CODE:REORDER(1)
\r
214 PUBWEAK EINT1_IRQHandler
\r
215 SECTION .text:CODE:REORDER(1)
\r
218 PUBWEAK EINT2_IRQHandler
\r
219 SECTION .text:CODE:REORDER(1)
\r
222 PUBWEAK EINT3_IRQHandler
\r
223 SECTION .text:CODE:REORDER(1)
\r
226 PUBWEAK ADC_IRQHandler
\r
227 SECTION .text:CODE:REORDER(1)
\r
230 PUBWEAK BOD_IRQHandler
\r
231 SECTION .text:CODE:REORDER(1)
\r
234 PUBWEAK USB_IRQHandler
\r
235 SECTION .text:CODE:REORDER(1)
\r
238 PUBWEAK CAN_IRQHandler
\r
239 SECTION .text:CODE:REORDER(1)
\r
242 PUBWEAK GPDMA_IRQHandler
\r
243 SECTION .text:CODE:REORDER(1)
\r
246 PUBWEAK I2S_IRQHandler
\r
247 SECTION .text:CODE:REORDER(1)
\r
250 PUBWEAK Ethernet_IRQHandler
\r
251 SECTION .text:CODE:REORDER(1)
\r
252 Ethernet_IRQHandler
\r
253 B Ethernet_IRQHandler
\r
254 PUBWEAK RIT_IRQHandler
\r
255 SECTION .text:CODE:REORDER(1)
\r
258 PUBWEAK MotorControlPWM_IRQHandler
\r
259 SECTION .text:CODE:REORDER(1)
\r
260 MotorControlPWM_IRQHandler
\r
261 B MotorControlPWM_IRQHandler
\r
262 PUBWEAK QE_IRQHandler
\r
263 SECTION .text:CODE:REORDER(1)
\r
266 PUBWEAK PLL1_IRQHandler
\r
267 SECTION .text:CODE:REORDER(1)
\r