]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/LM3S_Startup.s
Fix compiler warning.
[freertos] / FreeRTOS / Demo / CORTEX_MPU_LM3Sxxxx_Rowley / LM3S_Startup.s
1 /*****************************************************************************\r
2  * Copyright (c) 2006 Rowley Associates Limited.                             *\r
3  *                                                                           *\r
4  * This file may be distributed under the terms of the License Agreement     *\r
5  * provided with this software.                                              *\r
6  *                                                                           *\r
7  * THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING THE   *\r
8  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. *\r
9  *****************************************************************************/\r
10 \r
11 /*****************************************************************************\r
12  *                           Preprocessor Definitions\r
13  *                           ------------------------\r
14  *\r
15  * STARTUP_FROM_RESET\r
16  *\r
17  *   If defined, the program will startup from power-on/reset. If not defined\r
18  *   the program will just loop endlessly from power-on/reset.\r
19  *\r
20  *   This definition is not defined by default on this target because the\r
21  *   debugger is unable to reset this target and maintain control of it over the\r
22  *   JTAG interface. The advantage of doing this is that it allows the debugger\r
23  *   to reset the CPU and run programs from a known reset CPU state on each run.\r
24  *   It also acts as a safety net if you accidently download a program in FLASH\r
25  *   that crashes and prevents the debugger from taking control over JTAG\r
26  *   rendering the target unusable over JTAG. The obvious disadvantage of doing\r
27  *   this is that your application will not startup without the debugger.\r
28  *\r
29  *   We advise that on this target you keep STARTUP_FROM_RESET undefined whilst\r
30  *   you are developing and only define STARTUP_FROM_RESET when development is\r
31  *   complete.\r
32  *\r
33  *****************************************************************************/\r
34 \r
35 .extern xPortPendSVHandler\r
36 .extern xPortSysTickHandler\r
37 .extern vPortSVCHandler\r
38 \r
39 .global reset_handler\r
40 \r
41 .macro DEFAULT_ISR_HANDLER name=\r
42   .thumb_func\r
43   .weak \name\r
44 \name:\r
45 1: b 1b /* endless loop */\r
46 .endm\r
47 \r
48   .section .vectors, "ax"\r
49   .code 16\r
50   .align 0\r
51   .global _vectors\r
52 \r
53 _vectors:\r
54   .word __stack_end__\r
55 #ifdef STARTUP_FROM_RESET\r
56   .word reset_handler\r
57 #else\r
58   .word reset_wait\r
59 #endif /* STARTUP_FROM_RESET */\r
60   .word Nmi_ISR\r
61   .word Fault_ISR\r
62   .word MPU_Fault_ISR\r
63   .word 0  /* Populate if using Bus fault */\r
64   .word 0  /* Populate if using Usage fault */\r
65   .word 0  /* Reserved */\r
66   .word 0  /* Reserved */\r
67   .word 0  /* Reserved */\r
68   .word 0  /* Reserved */\r
69   .word vPortSVCHandler\r
70   .word 0  /* Populate if using a debug monitor */\r
71   .word 0  /* Reserved */\r
72   .word xPortPendSVHandler\r
73   .word xPortSysTickHandler\r
74   .word GPIO_Port_A_ISR\r
75   .word GPIO_Port_B_ISR\r
76   .word GPIO_Port_C_ISR\r
77   .word GPIO_Port_D_ISR\r
78   .word GPIO_Port_E_ISR\r
79   .word UART0_ISR\r
80   .word UART1_ISR\r
81   .word SSI_ISR\r
82   .word I2C_ISR\r
83   .word PWM_Fault_ISR\r
84   .word PWM_Generator_0_ISR\r
85   .word PWM_Generator_1_ISR\r
86   .word PWM_Generator_2_ISR\r
87   .word QEI_ISR\r
88   .word ADC_Sequence_0_ISR\r
89   .word ADC_Sequence_1_ISR\r
90   .word ADC_Sequence_2_ISR\r
91   .word ADC_Sequence_3_ISR\r
92   .word Watchdog_Timer_ISR\r
93   .word Timer0A_ISR\r
94   .word Timer0B_ISR\r
95   .word Timer1A_ISR\r
96   .word Timer1B_ISR\r
97   .word Timer2A_ISR\r
98   .word Timer2B_ISR\r
99   .word Analog_Comparator_0_ISR\r
100   .word Analog_Comparator_1_ISR\r
101   .word Analog_Comparator_2_ISR\r
102   .word System_Control_ISR\r
103   .word FLASH_Control_ISR\r
104   .word GPIO_Port_F_ISR\r
105   .word GPIO_Port_G_ISR\r
106   .word GPIO_Port_H_ISR\r
107   .word UART2_ISR\r
108   .word SSI1_ISR\r
109   .word Timer3A_ISR\r
110   .word Timer3B_ISR\r
111   .word I2C1_ISR\r
112   .word QEI1_ISR\r
113   .word CAN0_ISR\r
114   .word CAN1_ISR\r
115   .word CAN2_ISR\r
116   .word EMAC_ISR\r
117   .word HIBERNATE_ISR\r
118   .word USB0_ISR\r
119   .word PWM_Generator_3_ISR\r
120   .word uDMA_Software_Transfer_ISR\r
121   .word uDMA_Error_ISR\r
122 _vectors_end:\r
123 \r
124   .section .init, "ax"\r
125   .thumb_func\r
126 \r
127 reset_handler:\r
128 #ifdef __RAM_BUILD\r
129   /* If this is a RAM build, configure vector table offset register to point\r
130      to the RAM vector table. */\r
131   ldr r0, =0xE000ED08\r
132   ldr r1, =_vectors\r
133   str r1, [r0]\r
134 #endif\r
135   b _start\r
136 \r
137 DEFAULT_ISR_HANDLER Nmi_ISR\r
138 /*DEFAULT_ISR_HANDLER Fault_ISR*/\r
139 /*DEFAULT_ISR_HANDLER MPU_Fault_ISR*/\r
140 DEFAULT_ISR_HANDLER SVCall_ISR\r
141 DEFAULT_ISR_HANDLER SysTick_ISR\r
142 DEFAULT_ISR_HANDLER PendSV_ISR\r
143 DEFAULT_ISR_HANDLER GPIO_Port_A_ISR\r
144 DEFAULT_ISR_HANDLER GPIO_Port_B_ISR\r
145 DEFAULT_ISR_HANDLER GPIO_Port_C_ISR\r
146 DEFAULT_ISR_HANDLER GPIO_Port_D_ISR\r
147 DEFAULT_ISR_HANDLER GPIO_Port_E_ISR\r
148 DEFAULT_ISR_HANDLER UART0_ISR\r
149 DEFAULT_ISR_HANDLER UART1_ISR\r
150 DEFAULT_ISR_HANDLER SSI_ISR\r
151 DEFAULT_ISR_HANDLER I2C_ISR\r
152 DEFAULT_ISR_HANDLER PWM_Fault_ISR\r
153 DEFAULT_ISR_HANDLER PWM_Generator_0_ISR\r
154 DEFAULT_ISR_HANDLER PWM_Generator_1_ISR\r
155 DEFAULT_ISR_HANDLER PWM_Generator_2_ISR\r
156 DEFAULT_ISR_HANDLER QEI_ISR\r
157 DEFAULT_ISR_HANDLER ADC_Sequence_0_ISR\r
158 DEFAULT_ISR_HANDLER ADC_Sequence_1_ISR\r
159 DEFAULT_ISR_HANDLER ADC_Sequence_2_ISR\r
160 DEFAULT_ISR_HANDLER ADC_Sequence_3_ISR\r
161 DEFAULT_ISR_HANDLER Watchdog_Timer_ISR\r
162 DEFAULT_ISR_HANDLER Timer0A_ISR\r
163 DEFAULT_ISR_HANDLER Timer0B_ISR\r
164 DEFAULT_ISR_HANDLER Timer1A_ISR\r
165 DEFAULT_ISR_HANDLER Timer1B_ISR\r
166 DEFAULT_ISR_HANDLER Timer2A_ISR\r
167 DEFAULT_ISR_HANDLER Timer2B_ISR\r
168 DEFAULT_ISR_HANDLER Analog_Comparator_0_ISR\r
169 DEFAULT_ISR_HANDLER Analog_Comparator_1_ISR\r
170 DEFAULT_ISR_HANDLER Analog_Comparator_2_ISR\r
171 DEFAULT_ISR_HANDLER System_Control_ISR\r
172 DEFAULT_ISR_HANDLER FLASH_Control_ISR\r
173 DEFAULT_ISR_HANDLER GPIO_Port_F_ISR\r
174 DEFAULT_ISR_HANDLER GPIO_Port_G_ISR\r
175 DEFAULT_ISR_HANDLER GPIO_Port_H_ISR\r
176 DEFAULT_ISR_HANDLER UART2_ISR\r
177 DEFAULT_ISR_HANDLER SSI1_ISR\r
178 DEFAULT_ISR_HANDLER Timer3A_ISR\r
179 DEFAULT_ISR_HANDLER Timer3B_ISR\r
180 DEFAULT_ISR_HANDLER I2C1_ISR\r
181 DEFAULT_ISR_HANDLER QEI1_ISR\r
182 DEFAULT_ISR_HANDLER CAN0_ISR\r
183 DEFAULT_ISR_HANDLER CAN1_ISR\r
184 DEFAULT_ISR_HANDLER CAN2_ISR\r
185 DEFAULT_ISR_HANDLER ETHERNET_ISR\r
186 DEFAULT_ISR_HANDLER HIBERNATE_ISR\r
187 DEFAULT_ISR_HANDLER USB0_ISR\r
188 DEFAULT_ISR_HANDLER PWM_Generator_3_ISR\r
189 DEFAULT_ISR_HANDLER uDMA_Software_Transfer_ISR\r
190 DEFAULT_ISR_HANDLER uDMA_Error_ISR\r
191 DEFAULT_ISR_HANDLER EMAC_ISR\r
192 \r
193 #ifndef STARTUP_FROM_RESET\r
194 DEFAULT_ISR_HANDLER reset_wait\r
195 #endif /* STARTUP_FROM_RESET */\r
196 \r