Hello,
I m using Keil RTX on STM32F411. My IDE is Keil too.
I have a task to maintain and upgrade previous code where RTX is being used.
I need to debug a Stack Overflow (seen in System and Thread Viewer) and for that I need to identify the first overflow event to dig in that thread.
We can learn about hooks in freeRTOS here: https://www.youtube.com/watch?v=vBoP4Q6rf5g&list=PLnMKNibPkDnFeFV4eBfDQ9e5IrGL_dx1Q&index=20
The idea of having a callback when a Stack Overflow event happens is great.
Can some one give me a Tip, how to implement Hook in RTX or any approach to deal with Stack Overflow in RTX?
Another question is, I see a lot of Stack Overflows in " System and Thread Viewer" but would expect my System to fail totally, but instead the majority (not all) of Threads keep running.
I mean, this code shouldn't be running, one stack overflow would be enough to ruin the application. Is " System and Thread Viewer" info reliable?
br
Keil RTX 4 is not detecting a stack overflow. When a stack overflow is detected it calls os_error() and this is a terminal routine. You could have os_error() call a callback, but os_error() is as good a place as any to start debugging this. Since os_error() is called after the error event has occured, this is not way to prevent the error. As I recall System and Thread Viewer was not great at detecting stack overflow or usage. I think it was better when you only used the default stack size, but still I never used that to determine an actual stack overflow.