Skip to content

Tools

SF32 development takes more than a compiler. A practical firmware workflow also uses tools for flashing, serial monitoring, crash analysis, trace capture, image conversion, RF/audio tuning, and production programming.

The table below maps common development tasks to relevant tools. It complements their manuals rather than replacing them; consult the linked documentation for installation details, exact commands, and tool-specific procedures.

Tool Map

Table: Tool Map
Tool Use
sftool Cross-platform SF32 download and flashing tool used by OpenSiFli Zephyr and Arduino flows.
SDK UART download scripts First-run flashing scripts generated by SiFli-SDK builds.
CodeKit actions VS Code setup, build, flash, and monitor actions.
AssertDump Capture of crash-time memory data for later analysis.
SiFli_Trace / UsartServer Trace/log capture and UART-based debugging through the chip's Debug IP.
Impeller Production-line firmware programming, calibration, and PCBA testing.
eZip / image tooling Asset conversion for compressed graphics pipelines.
RF/audio/factory tools Production calibration, test, and tuning workflows.

Flashing Tools

Use SDK-generated UART scripts for first bring-up because they are produced by the build you just made. Add sftool when you need:

  • A consistent command-line flashing tool across workflows.
  • Zephyr west flash integration.
  • ArduinoCore-zephyr upload behavior.
  • Automation in CI, factory, or regression testing.

Keep both paths documented in your project until the team standardizes on one.

Logging and Trace Tools

For normal development, a serial terminal is enough. For hard failures, capture structured logs and crash data:

  • Save a full boot log from reset.
  • Save the exact ELF/map/symbol files matching the flashed image.
  • Record whether RT-Thread shell, Zephyr shell, or Arduino debug mode was active.
  • Use SiFli diagnostic tools for assert dumps and trace capture when available.

Asset and Production Tools

Display-heavy products should document the asset conversion path, especially when eZip compression or hardware-accelerated graphics are involved. Production products should document RF/audio/factory utilities separately from developer flashing tools so factory operators do not depend on developer-only commands.

Tool Selection Checklist

Table: Tool Selection Checklist
Need Tooling direction
First SDK flash SDK UART download script.
Cross-platform scripted flash sftool.
VS Code build and monitor CodeKit.
Crash after boot Serial log plus assert dump tooling.
Long trace capture Trace/UART server tooling.
Display asset pipeline eZip/image tooling.
Factory programming SiFli production/factory utilities plus locked procedures.

Practical Advice

  • Learn one reliable flash path before adding a second.
  • Save known-good serial logs for every board.
  • Use SDK-generated scripts for first bring-up.
  • Use sftool when you need repeatable command-line flashing across Zephyr, Arduino, or automation.
  • Add crash-analysis tooling before the first hard-to-reproduce bug.

Last updated: