I have problems with system hang ups with a AT91SAM7S Controller.
It only hangs up after a certain amount of communication packages sent over an UART port in RS485 mode. The debug port can be "bombed" with characters for hours without problems.
In some cases the controller is then in dabt or the scheduler seems to be still running (HeartBeat Task still handles LED).
When it is in dabt the system hang up seems to be caused by xQueueSendFromISR which presumably is called from the RS485 UART’s ISR. This ISR has 2 queues; 1 for storing a complete communication package the other one for signaling the handler task. To exclude too less stack I already use a 2kB stack for the handling task.
In the other case the UART peripheral task (RS485 and Debug Port) are not responding only the debug port ISR seems to work cause it toggles its asserted LED if a character is received but it does not respond to it.
How can I find out what caused the Queue function to fail? (From degugger it seems like wrong queue handle)
How can I find out (in the 2nd case) what is the task’s state by just looking into memory.