willywortel wrote on Monday, January 26, 2009:
Hi,
I have a readHardwareTask that passes the value from hardware switches to a queue. This same task also generate the queue upon start/init.
There are other tasks, for example the lcdMenuTask, that reads out the data from this queue. This menu gets entered when the next loop breaks:
while( xQueuePeek( keypadQueue, &keypadActivity, portMAX_DELAY ) != pdPASS ) ; // just a peek, if there exists data, continue executing
Now for some reason I forgot to boot the readHardwareTask, so the queue wasn’t created. But now i notice, that when the lcdMenuTasks tries to execute the above function, it freezes the whole OS. (i’ve other tasks that are running at a much higher priority).
When debugging with the real ice, I see that is stalls with opcode 1000FFFF on a address that I cannot find in my disassembly listing.
When I just re-enable the readHardwareTask, everything works like charm. But I find this quite frighting, that it can stall my whole OS. How can i secure this from happening?