nuttx/Documentation/applications/examples/watcher/index.rst

59 lines
2.6 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

=============================
``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.