Our application freezes after a while. The problem seems to be the use of the standard C++ libraries.
In the standard libraries a critical section is used which results in a dead lock of the application.
The running threads is then locked in a critical section which is not known by FreeRTOS. If the thread that is running has a higher priority no other tasks will run. We found that this problem can occur immediately or after a period of time.
In the example project of the FreeRTOS windows simulator we created a timer and a thread. The timer uses a map and sends something using a FreeRTOS queue. The task waits forever for the queue and then prints the value in the map to the console.
I have included an adaptation (as described above) of the example code where the deadlock also happens (but is catched by the IDLE task and it comes into an assert).
Is there anything we overlooked in working with FreeRTOS and Windows and is there anything we can do to prevent the deadlocks?
I hope to hear from you soon,