btstack/Ports/uCOS/example/vector_funcs.c
2012-01-03 09:01:06 +00:00

89 lines
2.8 KiB
C

/*=============================================================================
* (C) Copyright Albis Technologies Ltd 2011
*==============================================================================
* STM32 Example Code
*==============================================================================
* File name: vector_funcs.c
*
* Notes: STM32 vector functions.
*============================================================================*/
/* Get a linker script symbol's value. */
#define GET_LDS_ULONG(symbol) ((unsigned long)(&symbol))
extern unsigned long _data_start_in_flash;
extern unsigned long _data_start_in_ram;
extern unsigned long _data_section_size;
extern unsigned long _bss_start;
extern unsigned long _bss_size;
extern void main(void);
/*=============================================================================
=============================================================================*/
void startup(void)
{
unsigned long len, i;
unsigned long *src, *dest;
/* Zero out BSS. */
dest = (void *)GET_LDS_ULONG(_bss_start);
len = GET_LDS_ULONG(_bss_size);
for(i = 0; i < len; i += 4)
{
*(dest++) = 0;
}
/* Copy the data segment initializers from Flash to RAM. */
src = (void *)GET_LDS_ULONG(_data_start_in_flash);
dest = (void *)GET_LDS_ULONG(_data_start_in_ram);
len = GET_LDS_ULONG(_data_section_size);
for(i = 0; i < len; i += 4)
{
*(dest++) = *(src++);
}
main();
}
/*=============================================================================
=============================================================================*/
void App_NMI_ISR(void)
{
}
/*=============================================================================
=============================================================================*/
void App_Fault_ISR(void)
{
for(;;);
}
/*=============================================================================
=============================================================================*/
void App_BusFault_ISR(void)
{
for(;;);
}
/*=============================================================================
=============================================================================*/
void App_UsageFault_ISR(void)
{
for(;;);
}
/*=============================================================================
=============================================================================*/
void App_MemFault_ISR(void)
{
for(;;);
}
/*=============================================================================
=============================================================================*/
void App_Spurious_ISR(void)
{
for(;;);
}