Queue not created, RtOs freezes?
Posted by Willem
on January 26, 2009
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?
RE: Queue not created, RtOs freezes?
Posted by Richard
on January 31, 2009
Yes - you can check that a queue has been created before trying to use it. If you try writing to a null queue then anything can happen.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.