My project is dedicated for the Cortex M3 CPU. I’m cycling our board in order to test the firmware. I created several tasks, Some tasks wait for a binary semaphore. Each of them, I defined a block time to wait for the semaphore. One of them is 20 ms and the other one is 10 ms. The cycling test is to capture a signal from an input (using a timer capture). So I can get ~200 interrupts in 100 ms @ each 8 seconds. (signal — wait 8 sec — signal —).
The problem is the following one. Sometimes, the os freezes in vListInsert() called from a xSemaphoreTake()…
It loops for ever in a for loop()
for( pxIterator = ( xListItem * ) &( pxList->xListEnd ); pxIterator->pxNext->xItemValue <= xValueOfInsertion; pxIterator = pxIterator->pxNext )
/* There is nothing to do here, we are just iterating to the
wanted insertion position. */
We have 10 boards in cycling test, 9/10 boards got this problem < 15 minutes.
I’m using IAR to compile and debug the project.
I hope to get an answer from you soon.