FreeRTOS & watchdog

Using recently FreeRTOS and I need advice:
which is the best place to reset the watchdog?
- In idle task
- A task with lowest priority
- A task with highest priority
- Elsewhere Any comments are welcome
Thanks
Paolo

FreeRTOS & watchdog

It depends on what you want the watchdog to do. Normally you will kick the watchdog after performing a number of tests on the entire system, for example, are the correct number of tasks running, has each task executed the expected number of times, have any tasks failed to execute since the check was last performed, etc. This can be done from a task, but the tasks priority will depend on the rest of the application functionality.

FreeRTOS & watchdog

I generally put the watchdog monitor task near the bottom of the priority list (there may be some non-critical background operations below it). Placing it low adds a check for CPU starving by some other task, As Edwards says, it should check that all the critical tasks are still alive and functioning.

FreeRTOS & watchdog

thanks guys for your answers another question: Example:
To my mistake or for any reason FreeRTOS crashes.
I want a hardware watchdog that in this case reset the system.
To reset this when everything is ok, the best place is a task of low or high priority? Thanks again
Paolo

FreeRTOS & watchdog

In one app (ARM7) I set up a high priority task as a watchdog, triggered once per second from the RTC timer.  The watchdog checks the pending messages in several application queues to make sure none are maxed out for several seconds, indicating a hung process.  I also reset an external hardware watchdog at the same time. For another design I put the independent watchdog (STM23) in the system tick hook routine, to guarantee the RTOS timer doesn’t stop.
  Jack Peacock

FreeRTOS & watchdog

Thanks for your comments.
I think I found the right solution for my application. Thanks again to all
Paolo

FreeRTOS & watchdog

Do these answers change for uCs with MPUs such as the Cortex M3?  For example, I assume the best place to put the watchdog functionality would be in a privileged task