From c74b73227559c5ce5dad623cce64dbca3a16ce5f Mon Sep 17 00:00:00 2001 From: CarlWachter Date: Mon, 11 Nov 2024 18:53:29 +0100 Subject: [PATCH] doc: Brief overview of features in README --- README.md | 45 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index d445f17..a8c70b8 100644 --- a/README.md +++ b/README.md @@ -10,18 +10,17 @@ Modules can be configured via defines set in `` header file whic # ALPAKA Modules -All enabled modules are initialized by calling the `startALPAKA` function from the default task. - -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 `` header and can optionally be implemented -anywhere in the application code. +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: +```cpp +sta::rtos::initSystemEvents(); +HAL_TIM_Base_Start(&STA_STM32_DELAY_US_TIM); +sta::rtos::signalStartupEvent(); +``` ## Can Bus Mainly defers to the TACOS CAN module, but provides a simple interface for sending and receiving messages. - Expandable for isotp. @@ -30,3 +29,35 @@ Expandable for isotp. The library provides implementations for the following interfaces using CMSIS-RTOS2 functionality: * `Mutex` * `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. \ No newline at end of file