Hello, When I restart my application with debugger, i have strange IRQs called (TWI, ...) before init. Possibly IRQ still active and debug don't touch them.
Can I disable all IRQ on restart ? Is there a magic cleaning function ? :-)
Hello, When I restart my application with debugger, i have strange IRQs called (TWI, ...) before init. Possibly IRQ still active and debug don't touch them.
Can I disable all IRQ on restart ? Is there a magic cleaning function ? :-)
See that if you get some issues devzone.nordicsemi.com/.../
True, SVC interrupt needs to be enabled before calling sd_softdevice_enable. __disable_irq seems more dangerous than i thought :). Just disable all peripheral interrupts instead
I did it and i have a CPU that i cannot recover with SWD...
I propose
// disable all external interrupts
NVIC->ICER[0] = 0xFFFFFFFF;
NVIC->ICER[1] = 0xFFFFFFFF;
NVIC->ICER[2] = 0xFFFFFFFF;
NVIC->ICER[3] = 0xFFFFFFFF;
NVIC->ICER[4] = 0xFFFFFFFF;
NVIC->ICER[5] = 0xFFFFFFFF;
NVIC->ICER[6] = 0xFFFFFFFF;
NVIC->ICER[7] = 0xFFFFFFFF;
// clear all external pending interrupts
NVIC->ICPR[0] = 0xFFFFFFFF;
NVIC->ICPR[1] = 0xFFFFFFFF;
NVIC->ICPR[2] = 0xFFFFFFFF;
NVIC->ICPR[3] = 0xFFFFFFFF;
NVIC->ICPR[4] = 0xFFFFFFFF;
NVIC->ICPR[5] = 0xFFFFFFFF;
NVIC->ICPR[6] = 0xFFFFFFFF;
NVIC->ICPR[7] = 0xFFFFFFFF;