]> git.piffa.net Git - arduino/blob - sheets/gyro/GY-52 Three-axis gyroscope sending data /Three-axis gyroscope sending data/GY-52 Test program/STM32-CODE/serial port output MPU-3050/serial/Libraries/CMSIS/Core/CM3/startup/gcc/startup_stm32f10x_cl.s
first commit
[arduino] / sheets / gyro / GY-52 Three-axis gyroscope sending data / Three-axis gyroscope sending data / GY-52 Test program / STM32-CODE / serial port output MPU-3050 / serial / Libraries / CMSIS / Core / CM3 / startup / gcc / startup_stm32f10x_cl.s
1 /**\r
2   ******************************************************************************\r
3   * @file    startup_stm32f10x_cl.s\r
4   * @author  MCD Application Team\r
5   * @version V3.1.2\r
6   * @date    09/28/2009\r
7   * @brief   STM32F10x Connectivity line Devices vector table for RIDE7 toolchain.\r
8   *          This module performs:\r
9   *                - Set the initial SP\r
10   *                - Set the initial PC == Reset_Handler,\r
11   *                - Set the vector table entries with the exceptions ISR \r
12   *                  address.\r
13   *                - Branches to main in the C library (which eventually\r
14   *                  calls main()).\r
15   *          After Reset the Cortex-M3 processor is in Thread mode,\r
16   *          priority is Privileged, and the Stack is set to Main.\r
17   *******************************************************************************\r
18  * @copy\r
19  *\r
20  * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS\r
21  * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE\r
22  * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY\r
23  * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING\r
24  * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE\r
25  * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
26  *\r
27  * <h2><center>&copy; COPYRIGHT 2009 STMicroelectronics</center></h2>\r
28  */  \r
29     \r
30   .syntax unified\r
31   .cpu cortex-m3\r
32   .fpu softvfp\r
33   .thumb\r
34 \r
35 .global  g_pfnVectors\r
36 .global  Default_Handler\r
37 \r
38 /* start address for the initialization values of the .data section. \r
39 defined in linker script */\r
40 .word  _sidata\r
41 /* start address for the .data section. defined in linker script */  \r
42 .word  _sdata\r
43 /* end address for the .data section. defined in linker script */\r
44 .word  _edata\r
45 /* start address for the .bss section. defined in linker script */\r
46 .word  _sbss\r
47 /* end address for the .bss section. defined in linker script */\r
48 .word  _ebss\r
49 \r
50 .equ  BootRAM, 0xF1E0F85F\r
51 /**\r
52  * @brief  This is the code that gets called when the processor first\r
53  *          starts execution following a reset event. Only the absolutely\r
54  *          necessary set is performed, after which the application\r
55  *          supplied main() routine is called. \r
56  * @param  None\r
57  * @retval : None\r
58 */\r
59 \r
60     .section  .text.Reset_Handler\r
61   .weak  Reset_Handler\r
62   .type  Reset_Handler, %function\r
63 Reset_Handler:  \r
64 \r
65 /* Copy the data segment initializers from flash to SRAM */  \r
66   movs  r1, #0\r
67   b  LoopCopyDataInit\r
68 \r
69 CopyDataInit:\r
70   ldr  r3, =_sidata\r
71   ldr  r3, [r3, r1]\r
72   str  r3, [r0, r1]\r
73   adds  r1, r1, #4\r
74     \r
75 LoopCopyDataInit:\r
76   ldr  r0, =_sdata\r
77   ldr  r3, =_edata\r
78   adds  r2, r0, r1\r
79   cmp  r2, r3\r
80   bcc  CopyDataInit\r
81   ldr  r2, =_sbss\r
82   b  LoopFillZerobss\r
83 \r
84 /* Zero fill the bss segment. */  \r
85 FillZerobss:\r
86   movs  r3, #0\r
87   str  r3, [r2], #4\r
88     \r
89 LoopFillZerobss:\r
90   ldr  r3, = _ebss\r
91   cmp  r2, r3\r
92   bcc  FillZerobss\r
93 /* Call the application's entry point.*/\r
94   bl  main\r
95   bx  lr    \r
96 .size  Reset_Handler, .-Reset_Handler\r
97 \r
98 /**\r
99  * @brief  This is the code that gets called when the processor receives an \r
100  *         unexpected interrupt.  This simply enters an infinite loop, preserving\r
101  *         the system state for examination by a debugger.\r
102  *\r
103  * @param  None     \r
104  * @retval : None       \r
105 */\r
106     .section  .text.Default_Handler,"ax",%progbits\r
107 Default_Handler:\r
108 Infinite_Loop:\r
109   b  Infinite_Loop\r
110   .size  Default_Handler, .-Default_Handler\r
111 \r
112 /******************************************************************************\r
113 *\r
114 * The minimal vector table for a Cortex M3.  Note that the proper constructs\r
115 * must be placed on this to ensure that it ends up at physical address\r
116 * 0x0000.0000.\r
117 *\r
118 ******************************************************************************/    \r
119    .section  .isr_vector,"a",%progbits\r
120   .type  g_pfnVectors, %object\r
121   .size  g_pfnVectors, .-g_pfnVectors\r
122     \r
123     \r
124 g_pfnVectors:\r
125   .word  _estack\r
126   .word  Reset_Handler\r
127   .word  NMI_Handler\r
128   .word  HardFault_Handler\r
129   .word  MemManage_Handler\r
130   .word  BusFault_Handler\r
131   .word  UsageFault_Handler\r
132   .word  0\r
133   .word  0\r
134   .word  0\r
135   .word  0\r
136   .word  SVC_Handler\r
137   .word  DebugMon_Handler\r
138   .word  0\r
139   .word  PendSV_Handler\r
140   .word  SysTick_Handler\r
141   .word  WWDG_IRQHandler\r
142   .word  PVD_IRQHandler\r
143   .word  TAMPER_IRQHandler\r
144   .word  RTC_IRQHandler\r
145   .word  FLASH_IRQHandler\r
146   .word  RCC_IRQHandler\r
147   .word  EXTI0_IRQHandler\r
148   .word  EXTI1_IRQHandler\r
149   .word  EXTI2_IRQHandler\r
150   .word  EXTI3_IRQHandler\r
151   .word  EXTI4_IRQHandler\r
152   .word  DMA1_Channel1_IRQHandler\r
153   .word  DMA1_Channel2_IRQHandler\r
154   .word  DMA1_Channel3_IRQHandler\r
155   .word  DMA1_Channel4_IRQHandler\r
156   .word  DMA1_Channel5_IRQHandler\r
157   .word  DMA1_Channel6_IRQHandler\r
158   .word  DMA1_Channel7_IRQHandler\r
159   .word  ADC1_2_IRQHandler\r
160   .word CAN1_TX_IRQHandler\r
161   .word CAN1_RX0_IRQHandler\r
162    .word  CAN1_RX1_IRQHandler\r
163   .word  CAN1_SCE_IRQHandler\r
164   .word  EXTI9_5_IRQHandler\r
165   .word  TIM1_BRK_IRQHandler\r
166   .word  TIM1_UP_IRQHandler\r
167   .word  TIM1_TRG_COM_IRQHandler\r
168   .word  TIM1_CC_IRQHandler\r
169   .word  TIM2_IRQHandler\r
170   .word  TIM3_IRQHandler\r
171   .word  TIM4_IRQHandler\r
172   .word  I2C1_EV_IRQHandler\r
173   .word  I2C1_ER_IRQHandler\r
174   .word  I2C2_EV_IRQHandler\r
175   .word  I2C2_ER_IRQHandler\r
176   .word  SPI1_IRQHandler\r
177   .word  SPI2_IRQHandler\r
178   .word  USART1_IRQHandler\r
179   .word  USART2_IRQHandler\r
180   .word  USART3_IRQHandler\r
181   .word  EXTI15_10_IRQHandler\r
182   .word  RTCAlarm_IRQHandler\r
183   .word  OTG_FS_WKUP_IRQHandler  \r
184   .word  0\r
185   .word  0\r
186   .word  0\r
187   .word  0\r
188   .word  0\r
189   .word  0\r
190   .word  0\r
191   .word TIM5_IRQHandler            \r
192   .word SPI3_IRQHandler            \r
193   .word UART4_IRQHandler           \r
194   .word UART5_IRQHandler           \r
195   .word TIM6_IRQHandler           \r
196   .word TIM7_IRQHandler            \r
197   .word DMA2_Channel1_IRQHandler   \r
198   .word DMA2_Channel2_IRQHandler   \r
199   .word DMA2_Channel3_IRQHandler   \r
200   .word DMA2_Channel4_IRQHandler  \r
201   .word DMA2_Channel5_IRQHandler   \r
202   .word ETH_IRQHandler            \r
203   .word ETH_WKUP_IRQHandler        \r
204   .word CAN2_TX_IRQHandler         \r
205   .word CAN2_RX0_IRQHandler        \r
206   .word CAN2_RX1_IRQHandler        \r
207   .word CAN2_SCE_IRQHandler        \r
208   .word OTG_FS_IRQHandler          \r
209   .word 0\r
210   .word 0\r
211   .word 0\r
212   .word 0\r
213   .word 0\r
214   .word 0\r
215   .word 0\r
216   .word 0           \r
217   .word 0\r
218   .word 0\r
219   .word 0\r
220   .word 0\r
221   .word 0\r
222   .word 0\r
223   .word 0\r
224   .word 0            \r
225   .word 0\r
226   .word 0\r
227   .word 0\r
228   .word 0\r
229   .word 0\r
230   .word 0\r
231   .word 0\r
232   .word 0            \r
233   .word 0\r
234   .word 0\r
235   .word 0\r
236   .word 0\r
237   .word 0\r
238   .word 0\r
239   .word 0\r
240   .word 0            \r
241   .word 0\r
242   .word 0\r
243   .word 0\r
244   .word 0               \r
245   .word BootRAM     /* @0x1E0. This is for boot in RAM mode for \r
246                          STM32F10x Connectivity line Devices. */\r
247     \r
248 /*******************************************************************************\r
249 *\r
250 * Provide weak aliases for each Exception handler to the Default_Handler. \r
251 * As they are weak aliases, any function with the same name will override \r
252 * this definition.\r
253 *\r
254 *******************************************************************************/\r
255   .weak  NMI_Handler\r
256   .thumb_set NMI_Handler,Default_Handler\r
257   \r
258   .weak  HardFault_Handler\r
259   .thumb_set HardFault_Handler,Default_Handler\r
260   \r
261   .weak  MemManage_Handler\r
262   .thumb_set MemManage_Handler,Default_Handler\r
263   \r
264   .weak  BusFault_Handler\r
265   .thumb_set BusFault_Handler,Default_Handler\r
266 \r
267   .weak  UsageFault_Handler\r
268   .thumb_set UsageFault_Handler,Default_Handler\r
269 \r
270   .weak  SVC_Handler\r
271   .thumb_set SVC_Handler,Default_Handler\r
272 \r
273   .weak  DebugMon_Handler\r
274   .thumb_set DebugMon_Handler,Default_Handler\r
275 \r
276   .weak  PendSV_Handler\r
277   .thumb_set PendSV_Handler,Default_Handler\r
278 \r
279   .weak  SysTick_Handler\r
280   .thumb_set SysTick_Handler,Default_Handler\r
281 \r
282   .weak  WWDG_IRQHandler\r
283   .thumb_set WWDG_IRQHandler,Default_Handler\r
284 \r
285   .weak  PVD_IRQHandler\r
286   .thumb_set PVD_IRQHandler,Default_Handler\r
287 \r
288   .weak  TAMPER_IRQHandler\r
289   .thumb_set TAMPER_IRQHandler,Default_Handler\r
290 \r
291   .weak  RTC_IRQHandler\r
292   .thumb_set RTC_IRQHandler,Default_Handler\r
293 \r
294   .weak  FLASH_IRQHandler\r
295   .thumb_set FLASH_IRQHandler,Default_Handler\r
296 \r
297   .weak  RCC_IRQHandler\r
298   .thumb_set RCC_IRQHandler,Default_Handler\r
299 \r
300   .weak  EXTI0_IRQHandler\r
301   .thumb_set EXTI0_IRQHandler,Default_Handler\r
302 \r
303   .weak  EXTI1_IRQHandler\r
304   .thumb_set EXTI1_IRQHandler,Default_Handler\r
305 \r
306   .weak  EXTI2_IRQHandler\r
307   .thumb_set EXTI2_IRQHandler,Default_Handler\r
308 \r
309   .weak  EXTI3_IRQHandler\r
310   .thumb_set EXTI3_IRQHandler,Default_Handler\r
311 \r
312   .weak  EXTI4_IRQHandler\r
313   .thumb_set EXTI4_IRQHandler,Default_Handler\r
314 \r
315   .weak  DMA1_Channel1_IRQHandler\r
316   .thumb_set DMA1_Channel1_IRQHandler,Default_Handler\r
317 \r
318   .weak  DMA1_Channel2_IRQHandler\r
319   .thumb_set DMA1_Channel2_IRQHandler,Default_Handler\r
320 \r
321   .weak  DMA1_Channel3_IRQHandler\r
322   .thumb_set DMA1_Channel3_IRQHandler,Default_Handler\r
323 \r
324   .weak  DMA1_Channel4_IRQHandler\r
325   .thumb_set DMA1_Channel4_IRQHandler,Default_Handler\r
326 \r
327   .weak  DMA1_Channel5_IRQHandler\r
328   .thumb_set DMA1_Channel5_IRQHandler,Default_Handler\r
329 \r
330   .weak  DMA1_Channel6_IRQHandler\r
331   .thumb_set DMA1_Channel6_IRQHandler,Default_Handler\r
332 \r
333   .weak  DMA1_Channel7_IRQHandler\r
334   .thumb_set DMA1_Channel7_IRQHandler,Default_Handler\r
335 \r
336   .weak  ADC1_2_IRQHandler\r
337   .thumb_set ADC1_2_IRQHandler,Default_Handler\r
338 \r
339   .weak  CAN1_TX_IRQHandler\r
340   .thumb_set CAN1_TX_IRQHandler,Default_Handler\r
341 \r
342   .weak  CAN1_RX0_IRQHandler\r
343   .thumb_set CAN1_RX0_IRQHandler,Default_Handler\r
344 \r
345   .weak  CAN1_RX1_IRQHandler\r
346   .thumb_set CAN1_RX1_IRQHandler,Default_Handler\r
347 \r
348   .weak  CAN1_SCE_IRQHandler\r
349   .thumb_set CAN1_SCE_IRQHandler,Default_Handler\r
350 \r
351   .weak  EXTI9_5_IRQHandler\r
352   .thumb_set EXTI9_5_IRQHandler,Default_Handler\r
353 \r
354   .weak  TIM1_BRK_IRQHandler\r
355   .thumb_set TIM1_BRK_IRQHandler,Default_Handler\r
356 \r
357   .weak  TIM1_UP_IRQHandler\r
358   .thumb_set TIM1_UP_IRQHandler,Default_Handler\r
359 \r
360   .weak  TIM1_TRG_COM_IRQHandler\r
361   .thumb_set TIM1_TRG_COM_IRQHandler,Default_Handler\r
362 \r
363   .weak  TIM1_CC_IRQHandler\r
364   .thumb_set TIM1_CC_IRQHandler,Default_Handler\r
365 \r
366   .weak  TIM2_IRQHandler\r
367   .thumb_set TIM2_IRQHandler,Default_Handler\r
368 \r
369   .weak  TIM3_IRQHandler\r
370   .thumb_set TIM3_IRQHandler,Default_Handler\r
371 \r
372   .weak  TIM4_IRQHandler\r
373   .thumb_set TIM4_IRQHandler,Default_Handler\r
374 \r
375   .weak  I2C1_EV_IRQHandler\r
376   .thumb_set I2C1_EV_IRQHandler,Default_Handler\r
377 \r
378   .weak  I2C1_ER_IRQHandler\r
379   .thumb_set I2C1_ER_IRQHandler,Default_Handler\r
380 \r
381   .weak  I2C2_EV_IRQHandler\r
382   .thumb_set I2C2_EV_IRQHandler,Default_Handler\r
383 \r
384   .weak  I2C2_ER_IRQHandler\r
385   .thumb_set I2C2_ER_IRQHandler,Default_Handler\r
386 \r
387   .weak  SPI1_IRQHandler\r
388   .thumb_set SPI1_IRQHandler,Default_Handler\r
389 \r
390   .weak  SPI2_IRQHandler\r
391   .thumb_set SPI2_IRQHandler,Default_Handler\r
392 \r
393   .weak  USART1_IRQHandler\r
394   .thumb_set USART1_IRQHandler,Default_Handler\r
395 \r
396   .weak  USART2_IRQHandler\r
397   .thumb_set USART2_IRQHandler,Default_Handler\r
398 \r
399   .weak  USART3_IRQHandler\r
400   .thumb_set USART3_IRQHandler,Default_Handler\r
401 \r
402   .weak  EXTI15_10_IRQHandler\r
403   .thumb_set EXTI15_10_IRQHandler,Default_Handler\r
404 \r
405   .weak  RTCAlarm_IRQHandler\r
406   .thumb_set RTCAlarm_IRQHandler,Default_Handler\r
407 \r
408   .weak  OTG_FS_WKUP_IRQHandler\r
409   .thumb_set OTG_FS_WKUP_IRQHandler,Default_Handler\r
410 \r
411   .weak  TIM5_IRQHandler\r
412   .thumb_set TIM5_IRQHandler,Default_Handler\r
413 \r
414   .weak  SPI3_IRQHandler  \r
415   .thumb_set SPI3_IRQHandler,Default_Handler\r
416 \r
417   .weak  UART4_IRQHandler  \r
418   .thumb_set UART4_IRQHandler,Default_Handler\r
419 \r
420   .weak  UART5_IRQHandler  \r
421   .thumb_set UART5_IRQHandler,Default_Handler\r
422 \r
423   .weak  TIM6_IRQHandler  \r
424   .thumb_set TIM6_IRQHandler,Default_Handler\r
425 \r
426   .weak  TIM7_IRQHandler  \r
427   .thumb_set TIM7_IRQHandler,Default_Handler\r
428 \r
429   .weak  DMA2_Channel1_IRQHandler  \r
430   .thumb_set DMA2_Channel1_IRQHandler,Default_Handler\r
431 \r
432   .weak  DMA2_Channel2_IRQHandler  \r
433   .thumb_set DMA2_Channel2_IRQHandler,Default_Handler\r
434 \r
435   .weak  DMA2_Channel3_IRQHandler  \r
436   .thumb_set DMA2_Channel3_IRQHandler,Default_Handler\r
437 \r
438   .weak  DMA2_Channel4_IRQHandler  \r
439   .thumb_set DMA2_Channel4_IRQHandler,Default_Handler\r
440 \r
441   .weak  DMA2_Channel5_IRQHandler  \r
442   .thumb_set DMA2_Channel5_IRQHandler,Default_Handler\r
443 \r
444   .weak  ETH_IRQHandler  \r
445   .thumb_set ETH_IRQHandler,Default_Handler\r
446 \r
447   .weak  ETH_WKUP_IRQHandler  \r
448   .thumb_set ETH_WKUP_IRQHandler,Default_Handler\r
449 \r
450   .weak  CAN2_TX_IRQHandler  \r
451   .thumb_set CAN2_TX_IRQHandler,Default_Handler\r
452 \r
453   .weak  CAN2_RX0_IRQHandler  \r
454   .thumb_set CAN2_RX0_IRQHandler,Default_Handler\r
455 \r
456   .weak  CAN2_RX1_IRQHandler  \r
457   .thumb_set CAN2_RX1_IRQHandler,Default_Handler\r
458 \r
459   .weak  CAN2_SCE_IRQHandler  \r
460   .thumb_set CAN2_SCE_IRQHandler,Default_Handler\r
461 \r
462   .weak  OTG_FS_IRQHandler  \r
463   .thumb_set OTG_FS_IRQHandler ,Default_Handler\r
464  \r