SiFli-SDK¶
SiFli-SDK is the reference development path for SF32 firmware. It is the best-supported route for RT-Thread-based applications, Bluetooth, graphics, audio, power management, storage, board bring-up, and production firmware work.
Use the SiFli-SDK Getting Started page for first installation and hello_world. This page explains how to think about the SDK once the toolchain already works.
Primary references:
When to Use SiFli-SDK¶
Choose SiFli-SDK when you need:
- The broadest SF32 feature coverage.
- Vendor examples for Bluetooth, display, audio, power, storage, USB, and OTA.
- RT-Thread integration and shell tooling.
- Board-level configuration through SDK board names such as
sf32lb52-lcd_n16r8. - Access to SiFli-specific middleware, tools, partition layouts, and production flows.
Development Model¶
The SiFli-SDK Getting Started page establishes the toolchain and a hello_world baseline. After that, treat the SDK environment, selected board, example/project directory, configuration, generated output, and download artifact as one versioned unit. A build creates a board-specific output directory, typically build_<board_name>_hcpu/; use the generated download artifact for that exact build rather than reusing one from a different board or configuration.
For repeatable development, pin an SDK branch, record the board name, keep local board changes separate from vendor files, and make configuration changes in small, reviewable steps. The detailed build, download, and monitoring workflow is in Build, Flash, Monitor.
Board Names¶
SiFli-SDK board names are SDK-specific and may not match Zephyr board names, Arduino FQBNs, or marketing board names. Always copy the board name from the SDK supported-boards list or from the example documentation.
For the SF32LB52 DevKit LCD class, the common SDK board name used in first-run examples is:
Project Structure¶
Most SDK examples follow the pattern:
For example:
When building product firmware, start from the closest working SDK example and change one subsystem at a time. That keeps board configuration, middleware dependencies, partition assumptions, and driver setup intact.
Configuration¶
Use menuconfig when an example or board needs feature changes:
Common reasons to enter configuration:
- Enable or disable middleware.
- Change Bluetooth roles or profiles.
- Adjust display, filesystem, or audio support.
- Tune power management.
- Select logging or shell options.
Production Readiness Questions¶
Before committing to SiFli-SDK for a product branch, answer:
- Which SDK release branch is frozen for the product?
- Which board support files are product-owned vs. vendor-owned?
- Which examples prove the critical features?
- Which partition table is used for manufacturing and OTA?
- Which tools are approved for factory flashing?
- Which logs are enabled in release builds?
- Which recovery image is kept for lab use?
Practical Next Pages¶
- Build, Flash, Monitor
- Board Configuration
- Components and
sf_pkg - Partition Tables
- Debugging and Diagnostics
SiFli Team Should Add¶
- A short table mapping every public dev kit to its SDK board name.
- A release-selection rule for
release/vX.Ybranches instead of hardcoding old branch names. - A first-run log sample for each supported board.
- A side-by-side comparison of SDK board name, Zephyr board name, and Arduino FQBN.
- A release-selection note explaining when users should choose a
release/vX.Ybranch, a newer release branch, ormain.
Auto-generated content
This page was compiled/drafted without an existing source document. Verify technical claims against SiFli's official documentation before relying on them.