Description
Our first program integrity check is an internal watchdog in software. We want to keep a list of of all running FreeRTOS tasks, along with a timeout value. This task should periodically wake up, check all tasks its keeping track of, and make sure none of them are stuck. If any task is stuck, it must be killed.
Tasks
- [ ] Design the data struct that the watchdog task will be using to hold all relevant information. It should at least have:
- Task ID (Thread id)
- Timeout value
- This value might be set by the task as it begins to run.
- A ‘time-last-kicked’ value.
- If the watchdog timer is not kicked within the timeout, then the program is assumed to be stuck.
- [ ] Present the data struct, and how the task will be designs. After approval from the reviewer, continue. Due Date: October 21, 2023
- [ ] Code it. Due Date: October 28, 2023
Architecture
Notes
To better understand FreeRTOS and how tasks/threads are managed, watch these videos: Digi-Key RTOS Videos
Please feel free to message @Khalil Damouni with any questions at any time 😊