Could I broach the general subject of Watchdog Timer functionality when using FreeRTOS? I have completed a few modest real-time embedded systems projects with PIC 18Fxxxx MCUs over the last few years, always without a RTOS. I used the traditional "super loop", switch statements controlled by system states etc, etc. I always implemented the Watchdog Timer "liberally" at portions of the code.
I think to similarly liberally implement the Watchdog Timer still in FreeRTOS based projects - e.g. start the Watchdog Timer at start of a "potentially problematic" function such as a read/write on the I2C bus, so that in event of "failure" the program gets kicked out of the function by a Watchdog Timer reset. This resets PC back to first executable. Any thoughts on the ramifications of this when using FreeRTOS? Should the Watchdog Timer functionality be at the "task level" or remain at the "C function level", for example?