I need my own input handler procedure that cannot wait.
Interrupt handler is directly attached as GPIOTE_IRQHandler (i don't use your libraries) and takes no more than two microseconds.
I wanted it to be at highest priority.
As softdevice uses priority 0 and 1 in your nomenclature (0x00 and 0x20 in NVIC_IPRx registers), i write a routing that changes all level 1 (0x20) to level 2 (0x40), and all level 0 (0x00) to level 1 (0x20).
And set IRQ6 (GPIOTE) to level 0 (0x00).
Works and i have lot delays but every few thousands of interrupts i'm getting soft reset.
There are at least 100us between every interrupt. usually much more.
I tried even for test reducing interrupt handler routing to just reset event register - still getting soft resets but much less often.
As you don't provide sources for softdevice, please tell me why it happens.
I see no reason for
1) delaying anything for 1-2us on bluetooth protocol to be a problem.
2) even if it will - i see no reason for resets.
Why this is happening.