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?
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. Regards.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.