Super-Simple-Tasker (SST) is an event-driven, preemptive, priority-based real-time operating system (RTOS) kernel that fully complies with Rate Monotonic Analysis/Scheduling (RMA/RMS) requirements. Its design aims to help developers easily build efficient and reliable embedded applications. The following sections introduce the core features of SST, its implementation, usage examples, and how to get started.
Core Features of SST
1. Basic Task Concept
SST supports non-blocking, completed basic tasks that can finish their work without interference. This feature aligns with the basic task specifications in the OSEK/VDX operating system standard, providing SST with a solid programming model.
2. Preemptive Scheduling
SST employs a priority-based preemptive scheduling algorithm, meaning that when multiple tasks request execution, the system prioritizes higher-priority tasks. This scheduling method enhances the system’s responsiveness and real-time performance.
3. Multitasking
SST supports multitasking at each priority level, allowing multiple tasks to exist at the same priority. Additionally, SST allows each task multiple “activation” opportunities, triggering tasks asynchronously through an event queue.
4. Resource Protection
SST implements a selective scheduler locking mechanism called the “Stack Resource Policy” (SRP) to ensure the safety of shared resources in a multitasking environment. It also provides a non-blocking mutex mechanism to protect access to shared resources.
Technical Architecture and Implementation
1. Implementation Languages
SST offers various implementations, including a preemptive SST written in C and C++, as well as a simpler non-preemptive implementation, SST0. Each implementation provides a consistent SST API, allowing developers to choose the version that best suits their needs.
2. Hardware Compatibility
SST supports various embedded processor architectures, including ARM Cortex-M series and Microchip dsPIC. The SST implementations designed for these hardware platforms ensure high performance and reliability in practical applications.
3. Related Methods
Although SST is not based on existing methods, its design philosophy closely relates to some well-known operating systems (such as OSEK/VDX) and modern real-time technologies (such as RTIC and RTFM). This design gives SST numerous advantages in real-time system development.
Usage Examples and Sample Projects
1. Blink-Button Example
To help users get started quickly, SST provides several sample projects, the most famous of which is the “Blink-Button”. This example demonstrates the capability of concurrent multitasking and showcases SST’s real-time functionality through a logic analyzer.
2. Sample Project Structure
In the project structure, SST provides pre-built projects in C and C++, as well as examples for SST0. All sample projects are optimized for various embedded platforms, including multiple STM32 NUCLEO development boards and TivaC LaunchPad platforms. Developers can simply download the project and follow the instructions to compile and experience the powerful features of SST.
Getting Started with Super-Simple-Tasker
1. Download and Installation
Developers can download the source code and sample projects for SST from GitHub. According to the project instructions, you can easily set up the development environment and run the examples.
2. Setting Up the Development Environment
The installation and configuration of SST are relatively straightforward, supporting mainstream embedded development toolchains. Choose the appropriate toolchain based on the hardware platform and requirements, such as ARM/KEIL, GNU-ARM, or IAR EWARM.
Conclusion
Super-Simple-Tasker is an excellent real-time operating system kernel that, with its simple design and powerful features, enables developers to efficiently build real-time applications. Its preemptive scheduling, multitasking capabilities, and hardware compatibility provide an ideal solution for embedded system development.
Project Address: https://github.com/QuantumLeaps/Super-Simple-Tasker