Missing Interrupts on M4

rdhammond15 wrote on Friday, February 24, 2017:

I am running FreeRTOS on an Infineon XMC4500F100K1024. Every once in a while the system tick ISR never gets exectued. During those periods, it seems like no interrupts excute. The only interrupts that are enabled are: Systick, PendSV, and DMA block transfer.

I’ve managed to set a breakpoint during one of these periods of lack of interrupts. Here are some register values:
BASEPRI: 0
FAULTMASK: 0
ICSR:
ISRPENDING: 1
PENDSTSET: 0
VECTPENDING: 0
VECTACTIVE: 0
SYST_CSR:
ENABLE: 1
TICKINT: 1

I have the kernel priority set to 63 (it then properly gets shifted over by 2). The syscall priority is set to 5. Any idea as to what is happening to the interrupts would be greatly appreciated. I’ve attached a picture of a GPIO going high upon entering the systick ISR and then low on exiting. It also shows a GPIO going high when taskENTER_CRITICAL is called and low when taskEXIT_CRITICAL is called. This is the only method to turn on/off interrupts. The missing ISRs usually have a period of ~100ms.

rdhammond15 wrote on Friday, February 24, 2017:

rdhammond15 wrote on Friday, February 24, 2017:

Solved the issue. A stack that I integrated was calling gettimeofday. This caused the undefined behaviour I was seeing.