Hello,
For a safety critical system, I would like to monitor all my threads to identify infinity loops. If an infinity loop is detected a system reset should be performed. I am going to use signals for this purpose. When a signal is missing for a specific time, an infinity loop will be detected and a system reset could be performed.
Is my approach also possible with threads created by Keil's USB and Ethernet middleware?
Thanks for replies
Hello Per Westermark
I agree. A supervisor thread checking counter variables or signals served by other threads does not reliably detect starvation in all cases.
But if using a watchdog to improve the system fault tolerance, the watchdog should monitor the threads created by the middleware, too.
Example: There are several loops which potentially do not exit in the USB driver implementation for STM32F4 devices (USBD_FS_STM32F4xx.c). Maybe I trust the USB stack which have been tested by Keil so far, but I am worried about the device specific implementations.