OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [freertos-6.1.1/] [Demo/] [CORTEX_STM32F103_Primer_GCC/] [ST_Code/] [crt0_STM32x.c] - Blame information for rev 582

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 582 jeremybenn
/******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
2
* File Name          : stm32f10x_vector.c
3
* Author             : MCD Tools Team
4
* Date First Issued  : 05/14/2007
5
* Description        : This file contains the vector table for STM32F10x.
6
*                        After Reset the Cortex-M3 processor is in Thread mode,
7
*                        priority is Privileged, and the Stack is set to Main.
8
********************************************************************************
9
* History:
10
* 05/14/2007: V0.2
11
*
12
********************************************************************************
13
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
14
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
15
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
16
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
17
* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
18
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
19
*******************************************************************************/
20
 
21
/* Includes ----------------------------------------------------------------------*/
22
 
23
void NMIException(void);
24
void HardFaultException(void);
25
void MemManageException(void);
26
void BusFaultException(void);
27
void UsageFaultException(void);
28
void DebugMonitor(void);
29
void SVCHandler(void);
30
void PendSVC(void);
31
void SysTickHandler(void);
32
void WWDG_IRQHandler(void);
33
void PVD_IRQHandler(void);
34
void TAMPER_IRQHandler(void);
35
void RTC_IRQHandler(void);
36
void FLASH_IRQHandler(void);
37
void RCC_IRQHandler(void);
38
void EXTI0_IRQHandler(void);
39
void EXTI1_IRQHandler(void);
40
void EXTI2_IRQHandler(void);
41
void EXTI3_IRQHandler(void);
42
void EXTI4_IRQHandler(void);
43
void DMAChannel1_IRQHandler(void);
44
void DMAChannel2_IRQHandler(void);
45
void DMAChannel3_IRQHandler(void);
46
void DMAChannel4_IRQHandler(void);
47
void DMAChannel5_IRQHandler(void);
48
void DMAChannel6_IRQHandler(void);
49
void DMAChannel7_IRQHandler(void);
50
void ADC_IRQHandler(void);
51
void USB_HP_CAN_TX_IRQHandler(void);
52
void USB_LP_CAN_RX0_IRQHandler(void);
53
void CAN_RX1_IRQHandler(void);
54
void CAN_SCE_IRQHandler(void);
55
void EXTI9_5_IRQHandler(void);
56
void TIM1_BRK_IRQHandler(void);
57
void TIM1_UP_IRQHandler(void);
58
void TIM1_TRG_COM_IRQHandler(void);
59
void TIM1_CC_IRQHandler(void);
60
void TIM2_IRQHandler(void);
61
void TIM3_IRQHandler(void);
62
void TIM4_IRQHandler(void);
63
void I2C1_EV_IRQHandler(void);
64
void I2C1_ER_IRQHandler(void);
65
void I2C2_EV_IRQHandler(void);
66
void I2C2_ER_IRQHandler(void);
67
void SPI1_IRQHandler(void);
68
void SPI2_IRQHandler(void);
69
void USART1_IRQHandler(void);
70
void USART2_IRQHandler(void);
71
void USART3_IRQHandler(void);
72
void EXTI15_10_IRQHandler(void);
73
void RTCAlarm_IRQHandler(void);
74
void USBWakeUp_IRQHandler(void);
75
 
76
 
77
/* Exported types --------------------------------------------------------------*/
78
/* Exported constants --------------------------------------------------------*/
79
extern unsigned long _etext;
80
extern unsigned long _sidata;           /* start address for the initialization values of the .data section. defined in linker script */
81
extern unsigned long _sdata;            /* start address for the .data section. defined in linker script */
82
extern unsigned long _edata;            /* end address for the .data section. defined in linker script */
83
 
84
extern unsigned long _sbss;                     /* start address for the .bss section. defined in linker script */
85
extern unsigned long _ebss;                     /* end address for the .bss section. defined in linker script */
86
 
87
extern void _estack;            /* init value for the stack pointer. defined in linker script */
88
 
89
 
90
 
91
/* Private typedef -----------------------------------------------------------*/
92
/* function prototypes ------------------------------------------------------*/
93
void Reset_Handler(void) __attribute__((__interrupt__));
94
extern int main(void);
95
extern void xPortPendSVHandler(void);
96
extern void xPortSysTickHandler(void);
97
extern void vTimer2IntHandler( void );
98
extern void vPortSVCHandler( void );
99
 
100
 
101
/******************************************************************************
102
*
103
* The minimal vector table for a Cortex M3.  Note that the proper constructs
104
* must be placed on this to ensure that it ends up at physical address
105
* 0x0000.0000.
106
*
107
******************************************************************************/
108
 
109
 
110
__attribute__ ((section(".isr_vector")))
111
void (* const g_pfnVectors[])(void) =
112
{
113
  &_estack,            // The initial stack pointer
114
  Reset_Handler,             // The reset handler
115
  NMIException,
116
  HardFaultException,
117
  MemManageException,
118
  BusFaultException,
119
  UsageFaultException,
120
  (void*)0, (void*)0, (void*)0, (void*)0,            /* Reserved */
121
  vPortSVCHandler,
122
  DebugMonitor,
123
  (void*)0,                      /* Reserved */
124
  xPortPendSVHandler,
125
  xPortSysTickHandler,
126
  WWDG_IRQHandler,
127
  PVD_IRQHandler,
128
  TAMPER_IRQHandler,
129
  RTC_IRQHandler,
130
  FLASH_IRQHandler,
131
  RCC_IRQHandler,
132
  EXTI0_IRQHandler,
133
  EXTI1_IRQHandler,
134
  EXTI2_IRQHandler,
135
  EXTI3_IRQHandler,
136
  EXTI4_IRQHandler,
137
  DMAChannel1_IRQHandler,
138
  DMAChannel2_IRQHandler,
139
  DMAChannel3_IRQHandler,
140
  DMAChannel4_IRQHandler,
141
  DMAChannel5_IRQHandler,
142
  DMAChannel6_IRQHandler,
143
  DMAChannel7_IRQHandler,
144
  ADC_IRQHandler,
145
  USB_HP_CAN_TX_IRQHandler,
146
  USB_LP_CAN_RX0_IRQHandler,
147
  CAN_RX1_IRQHandler,
148
  CAN_SCE_IRQHandler,
149
  EXTI9_5_IRQHandler,
150
  TIM1_BRK_IRQHandler,
151
  TIM1_UP_IRQHandler,
152
  TIM1_TRG_COM_IRQHandler,
153
  TIM1_CC_IRQHandler,
154
  vTimer2IntHandler,
155
  TIM3_IRQHandler,
156
  TIM4_IRQHandler,
157
  I2C1_EV_IRQHandler,
158
  I2C1_ER_IRQHandler,
159
  I2C2_EV_IRQHandler,
160
  I2C2_ER_IRQHandler,
161
  SPI1_IRQHandler,
162
  SPI2_IRQHandler,
163
  USART1_IRQHandler,
164
  USART2_IRQHandler,
165
  USART3_IRQHandler,
166
  EXTI15_10_IRQHandler,
167
  RTCAlarm_IRQHandler,
168
  USBWakeUp_IRQHandler,
169
  (void*)0,
170
  (void*)0,
171
  (void*)0,
172
  (void*)0,
173
  (void*)0,
174
  (void*)0,
175
  (void*)0,
176
  (void*)0xF108F85F //this is a workaround for boot in RAM mode.
177
};
178
 
179
/*******************************************************************************
180
* Function Name  : Reset_Handler
181
* Description    : This is the code that gets called when the processor first starts execution
182
*                      following a reset event.  Only the absolutely necessary set is performed,
183
*                      after which the application supplied main() routine is called.
184
* Input          :
185
* Output         :
186
* Return         :
187
*******************************************************************************/
188
void Reset_Handler(void)
189
{
190
    unsigned long *pulSrc, *pulDest;
191
 
192
    //
193
    // Copy the data segment initializers from flash to SRAM.
194
    //
195
    pulSrc = &_sidata;
196
    for(pulDest = &_sdata; pulDest < &_edata; )
197
    {
198
        *(pulDest++) = *(pulSrc++);
199
    }
200
 
201
    //
202
    // Zero fill the bss segment.
203
    //
204
    for(pulDest = &_sbss; pulDest < &_ebss; )
205
    {
206
        *(pulDest++) = 0;
207
    }
208
 
209
    //
210
    // Call the application's entry point.
211
    //
212
    main();
213
}
214
 
215
 
216
/********************* (C) COPYRIGHT 2007 STMicroelectronics  *****END OF FILE****/
217
 
218
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.