I am running FreeRTOS 9.0.0 on an STM32L1. I have unit that has been returned from the field for a lockup and have hot-connected over JTAG and I see that it is stuck in xTaskGetTickCountFromISR().
I am familiar with the potential problem here with the ISR in question making the system call with too high of a priority.
However, when looking at IABR0 and IABR1, both are set to 0, indicating that no interrupt is active. I do see that there is one EXT interrupt that is configured at priority 1 (same as configMAX_SYSCALL_INTERRUPT_PRIORITY) and does make this system call, apparently illegally, but it this doesn’t make sense to me because I would expect this assert to be hit much more frequently. Being somewhat unfamiliar with the codebase, I would like to make sure that I am 100% sure of the root cause.
- Any idea why we would hit this fault if the NVIC reg is indicating no interrupt is active? (although several are pending)
- Any other way I could determine for sure who called this system call?