English | 中文
The SiFli SDK is an official software development framework, custom-built on RT-Thread, that enables rapid development of applications running on SiFli Technology’s chip platforms.
Relevant documentation:
You can refer to these documents for a quick start.
Note: Since the SDK includes submodules, you must clone the repository with the --recursive flag, for example:
git clone --recursive https://github.com/OpenSiFli/SiFli-SDKThe software framework is illustrated below:
- HAL is the Hardware Abstraction Layer, providing driver functionality without relying on any operating system services.
- RT-Thread Device Drivers are built on top of HAL and offer a higher-level abstraction; users do not need to write interrupt service routines, making them easier to use. For a detailed comparison between HAL and RT-Thread device drivers, see Chip Peripheral Drivers.
- Middleware (components) includes RT-Thread’s built-in software components (e.g., finsh, ulog), third-party components (under the
externaldirectory), and in-house components (under themiddlewaredirectory). Applications can use all service interfaces, including HAL, to build their software.
+---customer // Board Support Package
| +---boards // Board configuration files
| +---peripherals // Board-level peripheral drivers
|
+---drivers
| +---cmsis // Chip register headers, startup files, linker scripts
| | +---Include
| | +---sf32lb52x
| | +---sf32lb55x
| | +---sf32lb56x
| | +---sf32lb58x
| +---hal // HAL implementation code
| \---Include // HAL header files
|
+---example // Examples
+---external // Third-party components
+---middleware // In-house components
+---rtos // Operating systems
| +---freertos // FreeRTOS
| +---os_adaptor // OS abstraction layer
| \---rtthread // RT-Thread
| \---bsp
| \---sifli
| \---drivers // RT-Thread device driver adapters
+---skills // AI-assisted development skills
+---tests // Python unit tests
\---tools // Tools
The SDK supports the following SiFli Technologies SoC families:
| SoC Family | Supported since |
|---|---|
| SF32LB52X | v2.3.0 |
| SF32LB55X | v2.3.0 |
| SF32LB56X | v2.3.0 |
| SF32LB57X | v2.5.1 |
| SF32LB58X | v2.3.0 |
Version numbers follow the Semantic Versioning scheme.
The version format is MAJOR.MINOR.PATCH, with the following increment rules:
- MAJOR version: incompatible API changes (e.g., v1.0.0 → v2.0.0)
- MINOR version: backward-compatible new features or enhancements (e.g., v2.3.0 → v2.4.0)
- PATCH version: backward-compatible bug fixes or small functional tweaks (e.g., v2.3.1 → v2.3.2)
Each release is tagged as vX.Y.Z.
- Patch releases: as needed, typically as fast as one week
- Minor releases: every 4–5 months
- Major releases: once a year or longer
The repository contains the following branches:
main: development branch where all new features and fixes land. Not recommended for production development.release/vX.Y: minor release branches containing all patches for that minor version. All official releases are made from these branches (tags are placed on commits in these branches). Recommended for project development is either the latest release tag or the tip of the correspondingrelease/vX.Ybranch.- Other branches: temporary or feature branches for internal development. Not recommended for general use.
| Version | Release Date | End-of-Support Date | Supported |
|---|---|---|---|
| v2.3 | January 21, 2025 | Yes | |
| v2.4 | June 5, 2025 | Yes | |
| v2.5 | June 19, 2026 | Yes |
