Merge pull request 'doc: Brief overview of features in README' (#32) from doc/brief into main

Reviewed-on: https://git.intern.spaceteamaachen.de/ALPAKA/rtos2-utils/pulls/32
Reviewed-by: dario <dario@noreply.git.intern.spaceteamaachen.de>
This commit is contained in:
dario 2024-11-19 17:41:25 +00:00
commit 6bffcd9444

View File

@ -10,18 +10,17 @@ Modules can be configured via defines set in `<sta/config.hpp>` header file whic
# ALPAKA Modules # ALPAKA Modules
All enabled modules are initialized by calling the `startALPAKA` function from the default task. The startup of all features that need to be initialized before the RTOS is started is implemented in the `startTACOS()` function offered by [TACOS](https://git.intern.spaceteamaachen.de/ALPAKA/TACOS). Alternatively the following code can be used to start the system:
The function `startupExtras` is called before any module initialization and can be used by the application
to execute additional initialization steps before any task waiting for the startup system event will run.
The function prototype can be found in the `<sta/rtos/startup.hpp>` header and can optionally be implemented
anywhere in the application code.
```cpp
sta::rtos::initSystemEvents();
HAL_TIM_Base_Start(&STA_STM32_DELAY_US_TIM);
sta::rtos::signalStartupEvent();
```
## Can Bus ## Can Bus
Mainly defers to the TACOS CAN module, but provides a simple interface for sending and receiving messages. Mainly defers to the TACOS CAN module, but provides a simple interface for sending and receiving messages.
Expandable for isotp. Expandable for isotp.
@ -30,3 +29,35 @@ Expandable for isotp.
The library provides implementations for the following interfaces using CMSIS-RTOS2 functionality: The library provides implementations for the following interfaces using CMSIS-RTOS2 functionality:
* `Mutex` * `Mutex`
* `Signal` * `Signal`
# Wrapped CMSIS-RTOS2 Functions
Many CMSIS-RTOS2 functions are wrapped in classes to provide a more object-oriented interface. Previously mentioned interfaces will not be repeated here. Detailed information can be found in the `.hpp` files or the doxygen documentation.
## Event Flags
Event flags are a very useful tool for inter-task synchronization.
## Memory Pool
Fixed-size memory pools are used to allocate memory for objects of the same size. Unprotected against incorrect pointer usage. Shared memory is recommended to be used instead.
## Shared Memory
Shared memory is a memory pool that is protected against incorrect pointer usage by providing set interfaces for reading and writing data instead of direct pointer access.
## Message Queue
Simple and safe message queue implementation. Does what it says on the tin.
## Signal
A binary semaphore that can be used to signal events between tasks. Offers various control functions.
## Timer
Timers with a user defined callback function. Also repeatable, so they are also great for scheduling tasks.
## Thread
A simple thread that can be inherited from to create a new task. Offers a loop function that is called periodically. Also supports thread flags and murder.