Introduction to Super-Simple Tasker (SST)
Super-Simple Tasker (SST) is an innovative real-time operating system (RTOS) kernel that has been designed to address specific needs in embedded systems. Originating from Quantum Leaps, a leader in state machine solutions, SST stands out as an event-driven, preemptive, and priority-based RTOS. This simple yet effective tool is ideal for developers looking for a robust solution that aligns perfectly with the principles of Rate Monotonic Analysis and Scheduling (RMA/RMS).
Key Features
SST offers several standout features that make it a suitable choice for embedded system applications:
- Basic Tasks: SST implements non-blocking, run-to-completion tasks. These are aligned with the established OSEK/VDX standards as basic tasks within the BCC2 conformance class.
- Preemptive Scheduling: Tasks are managed through a preemptive, priority-based scheduler, allowing multiple tasks to operate at various priority levels.
- Event Queues: Each task can have multiple activations, essential for handling real-time events efficiently.
- Stack Resource Policy (SRP): This is a sophisticated, non-blocking mechanism for mutual exclusion, ensuring shared resources' protection without causing the system to halt.
Implementation
The SST repository provides two main implementations:
- Preemptive SST in C and C++: Designed for high-performance requirements, allowing tasks to be interrupted and prioritized according to their urgency.
- Non-Preemptive SST0 in C and C++: A simpler version, suitable for applications where tasks can run to completion without being interrupted, but still managed by priorities.
Both versions share the same core SST API, ensuring that developers can switch between preemptive and non-preemptive approaches without extensive code refactoring.
Hardware Support
SST is tailored to various hardware platforms, enhancing its applicability in diverse development environments:
- ARM Cortex-M: The hardware implementation for ARM Cortex-M processors provides a high-performance RTOS solution, compatible with ARM's varied processor range.
- Microchip dsPIC: SST extends its hardware implementation capabilities to Microchip's dsPIC microcontrollers, further increasing its versatility.
Examples and Getting Started
To help newcomers and experienced developers alike, the SST repository includes example projects such as the "blinky-button" example. This example demonstrates SST’s prowess in real-time operations by showing several tasks running concurrently and interacting.
The repository offers support for different development environments and boards, such as:
- STM32 NUCLEO: Compatible with various models including NUCLEO-C031C6 and NUCLEO-H743ZI.
- TivaC LaunchPad: Specifically supporting the EK-TM4C123GXL model, illustrating SST's capability on ARM Cortex-M4 architecture.
History and Vision
SST made its debut in the embedded systems field through a 2006 cover story in Embedded Systems Design magazine. Over the years, it has evolved to encompass a comprehensive suite of RTOS kernels suitable for a wide range of processors.
The project invites collaboration from the developer community, encouraging contributions that enhance SST's functionality, such as adding new processor support or integrating with other embedded software projects.
License and Collaboration
SST is open-source and released under the permissive MIT license, which facilitates widespread use and adaptation while requiring the preservation of the original copyright. Developers interested in contributing can do so via GitHub by submitting pull requests.
Conclusion
The Super-Simple Tasker project offers a unique blend of simplicity and power, tailored for developers needing a reliable RTOS. Its adaptability to different processor architectures and emphasis on community collaboration make it a valuable asset in the world of embedded systems. Whether it's building a new project from scratch or integrating SST into existing solutions, this project provides the tools and framework needed for efficient real-time task management.