We are running multithreaded FreeRTOS application on 88MC200 Microcontroller.
We have created a interrupt service routines for handling a GPIO pin interrupt and sending Gpio change status into a queue from interrupt service task using “xQueueSendToBackFromISR”.
We have created 2 threads, One of the thread(Thread1) continuously receives the data from the message queue(GPIO change status sent from ISR()) using "xQueueReceive” and saves into the local buffer.
In another thread(Thread2) we have implemented TCP socket server which accepts the connection from remote PC application and performs the socket send and recv operation continuously.
Now the problem is, we are seeing that board hangs after some time ( 10-20 minutes of application start) and board is getting restarted after a while(No error message is displayed).During this scenario, We are receiving interrupts and Interrupt service routine fills the queue and becomes full but our thread is not able to receive(Looks like thread1 is not in active state). At this point, remote client application is also not getting the response from server which implies that thread2 is also not responding.
Can anyone explain why threads are not responding and is there any way to debug?
Thanks in advance,