mirror of
https://git.intern.spaceteamaachen.de/ALPAKA/rtos2-utils.git
synced 2025-06-10 18:15:59 +00:00
Update README
This commit is contained in:
parent
baec4c2871
commit
acb30dc56d
79
README.md
79
README.md
@ -1,40 +1,71 @@
|
||||
# CMSIS OS2
|
||||
|
||||
Library using cmsis_os2.h functionality for RTOS projects.
|
||||
Library using CMSIS-RTOS2 functionality for RTOS projects.
|
||||
|
||||
Modules are enabled via defines set in `sta/config.hpp` which must be provided by the application.
|
||||
Modules are enabled via defines set in `<sta/config.hpp>` header which must be provided by the application.
|
||||
|
||||
|
||||
## System events
|
||||
# Interface implementations
|
||||
|
||||
The library provides implementations for the following interfaces using CMSIS-RTOS2 functionality:
|
||||
* `Mutex`
|
||||
* `Signal`
|
||||
|
||||
|
||||
# Modules
|
||||
|
||||
## System Event
|
||||
|
||||
Provides an interface for common system events.
|
||||
|
||||
Configuration:
|
||||
* `#define STA_OS2_SYSTEM_EVENT_ENABLE`: Enable module
|
||||
* `#define STA_OS2_SYSTEM_EVENT_HANDLE <var_name>`: Override variable name of flag handle (default: systemEventHandle)
|
||||
|
||||
Enable: `STA_SYSTEM_EVENT_ENABLE`
|
||||
|
||||
Requirements:
|
||||
* EventFlag: `systemEvent`
|
||||
* RTOS: event flag
|
||||
|
||||
|
||||
## 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`
|
||||
The watchdog task waits for signals sent either from the heartbeat timer or manually via `sta::notifyWatchdog`
|
||||
and forwards the event flags to the `sta::watchdogEventHandler` function implemented by the application.
|
||||
|
||||
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`
|
||||
* `#define STA_OS2_WATCHDOG_ENABLE`: Enable module
|
||||
* `#define STA_OS2_WATCHDOG_TIMER_PERIOD <period_ticks>`: Set period in ticks of heartbeat timer (default: 1000)
|
||||
* `#define STA_OS2_WATCHDOG_TIMER_HANDLE <var_name>`: Override variable name of heartbeat timer handle (default: heartbeatHandle)
|
||||
* `#define STA_OS2_WATCHDOG_TIMER_CALLBACK <func_name>`: Override name of heartbeat timer callback function (default: heartbeatCallback)
|
||||
* `#define STA_OS2_WATCHDOG_HANDLE <var_name>`: Override variable name of watchdog task handle (default: watchdogHandle)
|
||||
* `#define STA_OS2_WATCHDOG_ENTRY_FUNCTION <func_name>`: Override name of watchdog task entry function (default: watchdogTask)
|
||||
|
||||
Requirements:
|
||||
* Task: `startupTask` (alternative: call manually in freertos.c default task)
|
||||
* Uses the `System Event` module
|
||||
* RTOS: timer + task
|
||||
|
||||
|
||||
## Startup
|
||||
|
||||
The entry function for the startup task must be called manually from the default task.
|
||||
|
||||
It provides all setup required by the enabled system tasks. If additional initialization is required by the
|
||||
application the function `void sta::startupExtras(void *)` declared in `<sta/os2/startup.hpp>` can be implemented.
|
||||
|
||||
Configuration:
|
||||
* `#define STA_OS2_STARTUP_ENABLE`: Enable module
|
||||
* `#define STA_OS2_STARTUP_ENTRY_FUNCTION <func_name>`: Override name of startup task entry function (default: startupTask)
|
||||
|
||||
Requirements:
|
||||
* Uses the `System Event` module
|
||||
* RTOS: task
|
||||
|
||||
|
||||
## Easy Config
|
||||
|
||||
Simplify configuration of modules. Intended for use in `<sta/config.hpp>`.
|
||||
|
||||
Configuration:
|
||||
* `#define STA_OS2_SYSTEM_TASKS_ENABLE`: Enable all modules required for system tasks
|
||||
* `#define STA_OS2_WATCHDOG_TIMER_NAME <name>`: Override handle and callback name for watchdog timer
|
||||
* `#define STA_OS2_WATCHDOG_NAME <name>`: Override handle and entry function name for watchdog task
|
||||
|
Loading…
x
Reference in New Issue
Block a user