2025-06-02 09:47:11 +00:00
2023-09-23 11:02:35 +02:00
2024-01-06 16:30:30 +01:00
2025-03-30 17:08:20 +02:00
2024-11-03 12:41:21 +01:00
2023-01-22 00:08:47 +01:00
2024-07-05 09:14:35 +00:00

STA RTOS Utilities

pre-release v1.0.0 Standard: C++11

Library providing the software stack for use with the ALPAKA hardware design for RTOS projects.

Modules can be configured via defines set in <sta/config.hpp> header file which must be provided by the application.

ALPAKA Modules

The startup of all features that need to be initialized before the RTOS is started is implemented in the startTACOS() function offered by TACOS. Alternatively the following code can be used to start the system:

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.

STA-Core Interfaces

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.

Description
CMSIS-RTOS2 wrapped into classes
Readme GPL-3.0 306 KiB
Languages
C++ 68.5%
C 30.3%
CMake 1.2%