I’m running FreeRTOS V7.1.0 on an MSPF5419A.
My ISR supporting an accelerometer gets called when that devices FIFO reaches a specified watermark level.
In the ISR I’m doing a xSemaphoreGiveFromISR on a semaphore and if that method returns pdTRUE calling portYIELD_FROM_ISR passing the variable that was set by the semaphore give. This wakes a task that is blocked on the semaphore which then drains the FIFO. All this works fine. The problem is that intermittently the xPendingReadyList is getting an entry (always 0xF3FFF) which clearly does not correspond to the address of any of my 7 TCBs. This doesn’t usually happen until the system has run for anywhere from 3 to 5 minutes. With this invalid entry things quickly deteriorate and my watch dog timer resets the system. The variables on either side of xPendingReadyList look fine so it doesn’t appear to be caused by memory being clobbered.
Any one have any thoughts as to what could be causing this?