Skip to content

Commit 6704853

Browse files
committed
Update README.
1 parent 1abdbdb commit 6704853

1 file changed

Lines changed: 33 additions & 7 deletions

File tree

README.md

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
---
77

88
[![MIT License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/SuperTinyKernel-RTOS/stk/blob/main/LICENSE)
9+
[![Version](https://img.shields.io/badge/version-1.06.0-blue.svg)](https://github.com/SuperTinyKernel-RTOS/stk/releases)
910
[![Build Status](https://img.shields.io/github/actions/workflow/status/SuperTinyKernel-RTOS/stk/cmake-test-generic-stm32.yml)](https://github.com/SuperTinyKernel-RTOS/stk/actions)
1011
[![Test Coverage](https://img.shields.io/badge/coverage-100%25-brightgreen)](https://github.com/SuperTinyKernel-RTOS/stk)
1112
[![Platform: Arm Cortex-M](https://img.shields.io/badge/Platform-Arm%20Cortex--M-blue.svg)](https://developer.arm.com/ip-products/processors/cortex-m)
@@ -16,8 +17,6 @@
1617

1718
## Overview
1819

19-
## Overview
20-
2120
**SuperTinyKernel™ RTOS** (STK) is a lightweight, deterministic real-time operating system for resource-constrained embedded systems. Instead of providing large peripheral abstraction layers (HAL), STK focuses on a highly optimized preemptive scheduler with minimal runtime overhead and a very small memory footprint.
2221

2322
STK combines the control and transparency of bare-metal development with the structure and maintainability of modern, type-safe C++.
@@ -33,7 +32,7 @@ STK combines the control and transparency of bare-metal development with the str
3332
### For Technical Leads and Product Teams
3433

3534
- **Reduced hardware requirements** — the compact kernel footprint can enable the use of lower-RAM or lower-cost MCU variants.
36-
- **Higher CPU availability for applications** — benchmarks show up to **~8% more application CPU time** compared to FreeRTOS under comparable workloads.
35+
- **Higher CPU availability for applications** — benchmarks show up to **~12% more application CPU time** compared to FreeRTOS under comparable workloads (see [Benchmark](#benchmark)).
3736
- **Lower power potential** — reduced scheduling overhead can help meet timing requirements at lower MCU clock frequencies.
3837
- **Simplified migration** — compatibility layers for FreeRTOS and CMSIS-RTOS2 allow existing projects to migrate with minimal application changes.
3938
- **Predictable system behavior** — static allocation and deterministic scheduling simplify validation, debugging, and long-term maintenance.
@@ -63,7 +62,7 @@ STK is an open-source project developed at https://github.com/SuperTinyKernel-RT
6362
| **Memory API** | Deterministic, fragmentation-free allocator in `stk::memory` namespace |
6463
| **Thread-Local Storage (TLS)** | Per-task TLS via a dedicated CPU register via inline zero-overhead helpers |
6564
| **Tiny footprint** | Minimal code unrelated to scheduling |
66-
| **Safety-critical systems ready** | No dynamic heap memory allocation |
65+
| **Safety-critical systems ready** | No dynamic heap memory allocation — a required baseline for IEC 61508 / ISO 26262 / DO-178C certification. See [Professional Services](#-professional-services--commercial-licensing) for certification support. |
6766
| **C++ and C API** | Can be used easily in C++ and C projects |
6867
| **CMSIS-RTOS2 compatible** | Full CMSIS-RTOS2 wrapper (`cmsis_os2_stk.cpp`) maps the standard ARM CMSIS-RTOS2 C API onto STK, enabling drop-in compatibility with STM32CubeMX, MCUXpresso, and other CMSIS-aware middleware |
6968
| **FreeRTOS compatible** | Full FreeRTOS wrapper (`freertos_stk.cpp`) maps the standard FreeRTOS C API onto STK, enabling drop-in migration of existing FreeRTOS codebases with minimal or no application changes |
@@ -140,7 +139,7 @@ There are several tickless examples:
140139
---
141140

142141
### Built-in Scheduling Strategies
143-
STK is the only known RTOS that offers all popular switching strategies to match any usage scenario, see [stk/strategy](https://github.com/SuperTinyKernel-RTOS/stk/tree/main/stk/include/strategy) for more details.
142+
STK is one of the few lightweight RTOSes that offers all popular switching strategies to match any usage scenario, see [stk/strategy](https://github.com/SuperTinyKernel-RTOS/stk/tree/main/stk/include/strategy) for more details.
144143

145144
| Strategy Name | Mode | Description |
146145
|------------------------------------------|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
@@ -328,7 +327,30 @@ A complete ultra-low power demo targeting the [STM32F407G-DISC1](https://www.st.
328327

329328
## Dedicated C interface
330329

331-
For a seamless integration with C projects STK provides a dedicated, fully-featured STK C interface. See [interop/c](https://github.com/SuperTinyKernel-RTOS/stk/tree/main/interop/c) for more details and example.
330+
For seamless integration with C projects, STK provides a dedicated, fully-featured C API. See [interop/c](https://github.com/SuperTinyKernel-RTOS/stk/tree/main/interop/c) for the full reference and examples.
331+
332+
**Quick example:**
333+
334+
```c
335+
#include "stk_c.h"
336+
337+
// Define task function
338+
void my_task(void *arg)
339+
{
340+
while (1)
341+
{
342+
// task work here
343+
stk_sleep(100); // sleep 100 ticks
344+
}
345+
}
346+
347+
int main(void)
348+
{
349+
stk_kernel_init();
350+
stk_task_add(my_task, /*stack_size=*/256, /*arg=*/NULL);
351+
stk_kernel_start(); // never returns
352+
}
353+
```
332354
333355
---
334356
@@ -550,6 +572,10 @@ The benchmark suite uses CRC32 hash calculations as the task payload. The score
550572
551573
## Quick Start (1 minute)
552574
575+
The fastest way to evaluate STK is to build and run one of the bundled examples on your local machine — **no hardware required**.
576+
577+
**Prerequisites:** Git, CMake 3.15+, and either Visual Studio (Windows) or GCC via Eclipse CDT (Windows/Linux/macOS).
578+
553579
### 1. Clone repository
554580
555581
```bash
@@ -866,7 +892,7 @@ Example (GCC, ARM Cortex-M MCU):
866892
SRCS += libs/stk/src/arch/arm/cortex-m/stk_arch_arm-cortex-m.cpp
867893
```
868894

869-
#### 5. Build
895+
#### 6. Build
870896

871897
Build your project normally — STK will now be compiled together with it.
872898

0 commit comments

Comments
 (0)