[arch][arm-m] properly set all NVIC priorites to medium

This commit is contained in:
Travis Geiselbrecht
2013-07-15 21:36:19 -07:00
parent a50d70b304
commit aa23e27911

View File

@@ -46,15 +46,14 @@ void arch_early_init(void)
SCB->VTOR = (uint32_t)&vectab;
/* clear any pending interrupts and set all the vectors to medium priority */
int i;
int groups = SCnSCB->ICTR & 0xf;
uint i;
uint groups = (SCnSCB->ICTR & 0xf) + 1;
for (i = 0; i < groups; i++) {
NVIC->ICER[i] = 0xffffffff;
NVIC->ICPR[i] = 0xffffffff;
NVIC->IP[i*4] = 128; /* medium priority */
NVIC->IP[i*4+1] = 128; /* medium priority */
NVIC->IP[i*4+2] = 128; /* medium priority */
NVIC->IP[i*4+3] = 128; /* medium priority */
for (uint j = 0; j < 32; j++) {
NVIC->IP[i*32 + j] = 128; /* medium priority */
}
}
#if ARM_M_DYNAMIC_PRIORITY_SIZE