I’m working on the FreeRTOS port on the zynq platform. I am doing some SPI transfers in the ISR handler and once every few minutes, i’m getting errors during the SPI transfers (RX Buffer overrun and Tx Buffer underrun). I believe these errors are a result of interrupts being disabled.
We have several tasks, but if I disable a particular task(happens to be the highest priority task on our system), I do not see the SPI transfer errors. So, I’m thinking that something this task is doing is causing the interrupts being disabled that is affecting the SPI transfers.
Question is what APIs should I be looking for that could potentially be disabling interrupts. I searched for taskENTER_CRITICAL_SECTION but we are not using it. Can you point me to other calls that could be disabling interrupts. I see that the xSemaphoreTake() and xSemaphoreGive() would also disable interrupts but I suppose it is done so very briefly that it should not affect the SPI transfers.
Thanks for your help.