Add startup and watchdog modules

This commit is contained in:
Henrik Stickann
2022-03-31 18:03:37 +02:00
parent 5fe44ddecf
commit 9b3e3efc8b
8 changed files with 207 additions and 5 deletions

View File

@@ -2,10 +2,39 @@
Library using cmsis_os2.h functionality for RTOS projects.
Modules are enabled via defines set in `sta/config.hpp` provided by the application.
## System events
Enable via `STA_SYSTEM_EVENT_ENABLE` defined in `sta/config.hpp`.
Enable: `STA_SYSTEM_EVENT_ENABLE`
Requires setup of a `systemEvent` EventFlag in the project.
Requirements:
* EventFlag: `systemEvent`
## Watchdog
Watchdog task gets woken periodically (every `STA_WATCHDOG_TIMER_PERIOD` ticks) or via `sta::nofityWatchdog(uint32_t)` calls
and calls `sta::watchdogEventHandler(void *, uint32_t)`. Applications *must* implement `sta::watchdogEventHandler(void *, uint32_t)`.
Enable: `STA_WATCHDOG_ENABLE`
Requirements:
* Task: `watchdog`
* Timer: `heartbeat`
Configuration:
* Heartbeat timer period: `STA_WATCHDOG_TIMER_PERIOD` (defaults to `1000`).
## Startup task
Startup task calls `sta::startupTaskExtras(void *)`, starts the watchdog timer if enabled and terminates the thread.
`sta::startupTaskExtras(void *)` may be overridden by the application.
Enable: `STA_STARTUP_TASK_ENABLE`
Requirements:
* Task: `startupTask` (alternative: call manually in freertos.c default task)