Part Number: CC2340R5MODA
Other Parts Discussed in Thread: CC2340R5
We have been observing some unexpected behavior on the CC2340R5.
We successfully configured wake-up from standby using a GPIO interrupt (via GPIO_setCallback and GPIO_enableInt). However, in some cases, the device hangs after the GPIO is toggled.
After further investigation, we found that execution ends up in the default ISR for CPUIRQ0 - Exception_handlerSpin() - as configured in ti_freertos_config.c.
While debugging the issue, we noticed that the CPUIRQ0SEL register is set to 0x9 (GPIO_COMB). As far as we are aware, neither our application nor the TI software stack explicitly modifies this register. CPUIRQ5SEL seems to be used for the GPIO_COMB in the GPIOLPF3 module. This unexpected configuration appears to be responsible for the interrupt that eventually leads to the exception handler.
What is particularly strange is that the issue disappears after a power cycle, but reappears after attaching a debugger and issuing a software reset.
Do you have any idea what could cause CPUIRQ0SEL to be configured this way after flashing or a software reset? For now, I am running the following at bootloader startup:
EVTSVTConfigureEvent(EVTSVT_SUB_CPUIRQ0, EVTSVT_PUB_NONE);
This workaround resolves the issue, but I would like to understand the root cause. Could this occur through any other means, and are there any other potential side effects or unexpected behaviors we should be aware of?
Any insights would be greatly appreciated.