From cb1a424bc155e92baa86cb25ad27867d12723481 Mon Sep 17 00:00:00 2001 From: Sara Souza Date: Thu, 10 Dec 2020 16:35:46 -0300 Subject: [PATCH] examples/readme.txt: Added information about watcher example. --- examples/README.md | 57 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/examples/README.md b/examples/README.md index 4480644d5..73c191516 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1937,6 +1937,63 @@ Specific configuration options for this example include: - `CONFIG_EXAMPLES_WATCHDOG_TIMEOUT` – The watchdog timeout value in milliseconds before the watchdog timer expires. Default: `2000` milliseconds. +## `watcher` Watcher & Watched + +The watcher and watched examples are designed to work together. The watched +example will only appear after watcher is selected. +The watcher is a task that will monitor other tasks that subscribe to be watched. +If a watched task doesn't signal the watcher during the watchdog time period, +the watchdog timer will expire and the watcher will print the tasks that did +not signal and the ones that signaled. The tasks that did not signal will be printed +as the tasks that starved the dog and the tasks that signaled will be printed as +the tasks that fed the dog. +The watcher task will only feed the watchdog timer when all subscribed tasks have +asked to feed dog. + +To start the watcher, just run: + +`watcher` + +The watched example is not required to use the watcher. The watched example is simply +a task that creates 4 tasks that will subscribe to be watched. The first and fourth +will not feed the dog to expose the functionality. This example will show the user +how to subscribe, to feed the dog and to unsubscribe. + +To start the watched, just run: + +`watched` + +P.S: This example will only be supported by the chips that support interrupt on +timeout, i.e., which have the \"capture\" command implemented. + +This test depends on these specific configurations settings (your +specific watchdog hardware settings might require additional settings). + +- `CONFIG_EXAMPLES_WATCHER` – Includes this example. +- `CONFIG_WATCHDOG` – Enables watchdog timer support. +- `CONFIG_NSH_BUILTIN_APPS` – Build this example an NSH built-in + function. +- `CONFIG_DRIVER_NOTE` and `CONFIG_SCHED_INSTRUMENTATION` – Allows the watcher + to get the tasks' names. +- `CONFIG_FS_FAT` – Allows the creation of a FAT filesystem on the ramdisk + to create a file with all the necessary info for the watched tasks. + +Specific configuration options for the `watcher` example include: + +- `CONFIG_EXAMPLES_WATCHER_PRIORITY` – Watcher Task Priority. +- `CONFIG_EXAMPLES_WATCHER_STACKSIZE` – Watcher Task Stack Size. +- `CONFIG_EXAMPLES_WATCHER_DEVPATH` – The path to the Watchdog device used by + the Watcher. Default: `/dev/watchdog0`. +- `CONFIG_EXAMPLES_WATCHER_TIMEOUT` – The watchdog timeout value in + milliseconds. +- `CONFIG_EXAMPLES_WATCHER_SIGNAL` – This is the Signal Number used for + communication between the watcher task and the watched tasks. + +Specific configuration options for the `watched` example include: + +- `CONFIG_EXAMPLES_WATCHED_PRIORITY` – Watched Task Priority. +- `CONFIG_EXAMPLES_WATCHED_STACKSIZE` – Watched Task Stack Size. + ## `webserver` Simple Webserver This is a port of uIP tiny webserver example application. Settings specific to