59 lines
2.6 KiB
ReStructuredText
59 lines
2.6 KiB
ReStructuredText
=============================
|
||
``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_DRIVERS_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.
|