# CMSIS OS2 Library using cmsis_os2.h functionality for RTOS projects. Modules are enabled via defines set in `sta/config.hpp` which must be provided by the application. ## System events Enable: `STA_SYSTEM_EVENT_ENABLE` 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)