Please, take a look at the watcher/watched examples: https://github.com/apache/incubator-nuttx-apps/tree/master/examples#watcher-watcher--watched . The watcher uses a Hardware WDT to monitor the subscribed watched tasks. In this case, the "watched" example have 4 subscribed tasks. Note: these examples are going to be changed these days. I'll submit a PR to fix a issue in the print task.
Em seg., 15 de mar. de 2021 às 06:36, Pelle Windestam < pelle.windes...@tagmaster.com> escreveu: > > > If you want to catch some task/thread in an infinite loop, the hardware > > > watchdog monitor in nuttx can do it for you. > > > > If the hardware watchdog is fed from multiple sources, all of them need > to > > fail. Not just one of them. > > Do you have anything else in mind? > > > > > You don't need a special timer here, the posix timer can work very > well: > > > > > > 1. Create a watchdog timer by timer_create > > > 2. Feed the timer periodically through timer_settime > > > 3. Register a timeout signal handler > > > 4. Call exit/abort in signal handler > > > > This is a nice idea, thank you. > > I didn't think of it before. > > We have a similar watchdog functionality built into a driver. Via an > ioctl()-call it is possible to register new individual "watchdogs" that are > fed via another ioctl()-call. This way each thread that we want to monitor > will register its own watchdog via the ioctl() interface, and the driver > will keep track of which thread failed to feed feed it. > > //Pelle >