extern unsigned int _stored_data;
extern unsigned int _start_data;
extern unsigned int _end_data;
extern unsigned int _start_bss;
extern unsigned int _end_bss;
extern unsigned int _end_stack;
extern unsigned int _start_heap;
static volatile unsigned int avail_mem = 0;
#ifdef STACK_PAINTING
static unsigned int stack_ptr;
#endif
extern void isr_usart1(void);
extern void main(void);
void isr_reset(void) {
register unsigned int *src, *dst;
src = (unsigned int *) &_stored_data;
dst = (unsigned int *) &_start_data;
while (dst < (unsigned int *)&_end_data) {
*dst = *src;
dst++;
src++;
}
dst = &_start_bss;
while (dst < (unsigned int *)&_end_bss) {
*dst = 0U;
dst++;
}
avail_mem = &_end_stack - &_start_heap;
#ifdef STACK_PAINTING
{
asm volatile("mrs %0, msp" : "=r"(stack_ptr));
dst = ((unsigned int *)(&_end_stack)) - (8192 / sizeof(unsigned int)); ;
while ((unsigned int)dst < stack_ptr) {
*dst = 0xDEADC0DE;
dst++;
}
}
#endif
main();
}
void isr_fault(void)
{
while(1) ;;
}
void isr_memfault(void)
{
while(1) ;;
}
void isr_busfault(void)
{
while(1) ;;
}
void isr_usagefault(void)
{
while(1) ;;
}
void isr_empty(void)
{
}
volatile unsigned jiffies = 0;
void isr_systick(void)
{
jiffies++;
}
__attribute__ ((section(".isr_vector")))
void (* const IV[])(void) =
{
(void (*)(void))(&_end_stack),
isr_reset, isr_fault, isr_fault, isr_memfault, isr_busfault, isr_usagefault, 0, 0, 0, 0, isr_empty, isr_empty, 0, isr_empty, isr_systick,
isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_usart1, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty, isr_empty,
};