| while (dest < &_edata) *dest++ = *src++; | while (dest < &_edata) *dest++ = *src++; | ||||
| dest = &_sbss; | dest = &_sbss; | ||||
| while (dest < &_ebss) *dest++ = 0; | while (dest < &_ebss) *dest++ = 0; | ||||
| SCB_VTOR = 0; // use vector table in flash | |||||
| // default all interrupts to medium priority level | // default all interrupts to medium priority level | ||||
| for (i=0; i < NVIC_NUM_INTERRUPTS + 16; i++) _VectorsRam[i] = _VectorsFlash[i]; | for (i=0; i < NVIC_NUM_INTERRUPTS + 16; i++) _VectorsRam[i] = _VectorsFlash[i]; | ||||
| for (i=0; i < NVIC_NUM_INTERRUPTS; i++) NVIC_SET_PRIORITY(i, 128); | for (i=0; i < NVIC_NUM_INTERRUPTS; i++) NVIC_SET_PRIORITY(i, 128); | ||||
| SCB_VTOR = (uint32_t)_VectorsRam; // use vector table in RAM | |||||
| // hardware always starts in FEI mode | // hardware always starts in FEI mode | ||||
| // C1[CLKS] bits are written to 00 | // C1[CLKS] bits are written to 00 |