コンテンツにスキップ

SiFli-SDK

このガイドでは、開封したばかりのSF32開発ボードから、SF32デバイス向けの公式なRT-ThreadベースのSDKであるSiFli-SDKを使って、UART経由でhello_worldサンプルを動作させるところまでを説明します。

Arduino、Zephyr、MicroPythonを使う予定でも、まずこのガイドを一度実行してみてください。別のフレームワークを導入する前に、ボード、ケーブル、シリアルポート、書き込み手順、基本のツールチェーンが正しく動作するか確認できます。

必要なもの

ハードウェア

  • SF32LB52-DevKit-LCDなどのSF32開発ボード、またはSF32ファミリーの製品ラインアップから選んだ別のボード。
  • 充電専用ケーブルや別のUSB機能用ポートではなく、ボードのUSB-to-UARTポートに接続するUSB Type-Cのデータケーブル。
  • Windows、macOS、またはLinuxを実行するコンピューター。

ソフトウェア

  • git
  • uvによってブートストラップされるC/C++ツールチェーン(SiFli-SDKのインストーラーが、コンパイラー、デバッガー、Python環境を取得します)
  • SiFli-SDKリポジトリー自体

公式リファレンス

IDEの方がお好みですか?

SiFliは、SDKの環境構築からビルド、書き込みまでを案内するVS Code拡張機能SiFli-SDK-CodeKitも公開しています。IDEを使った手順を希望する場合は、SiFli CodeKitを参照してください。

ツールチェーンのインストール

再現性のある基準構成には、mainではなく公開済みのリリースタグを使ってください。今回の確認時点で最新の公開タグはv2.5.1です。始める前に公式リリース一覧で新しいタグがないか確認してください。release/v2.5ブランチには同リリース系列の更新が入りますが、内容は時間とともに変わります。

SiFli-SDKのスクリプトで使われるパッケージ・環境管理ツールuvをインストールします。

curl -LsSf https://astral.sh/uv/install.sh | sh

SDKをクローンします。

mkdir -p ~/OpenSiFli && cd ~/OpenSiFli
git clone --recursive -b v2.5.1 https://github.com/OpenSiFli/SiFli-SDK

インストーラーを実行してから、SDK環境をシェルにロードします。

cd SiFli-SDK
./install.sh
. ./export.sh

uvをインストールします(PowerShell)。

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

SDKをクローンします。

mkdir C:\OpenSiFli
cd C:\OpenSiFli
git clone --recursive -b v2.5.1 https://github.com/OpenSiFli/SiFli-SDK

インストーラーを実行してから、SDK環境をロードします。

cd SiFli-SDK
.\install.ps1
.\export.ps1

SiFli-SDKにはサブモジュールが含まれています

GitHubの「Download ZIP」オプションには、必要なサブモジュールが含まれません。git clone --recursiveを使用してください。すでにサブモジュールなしでクローンしてしまった場合は、SDKのルートからgit submodule update --init --recursiveを実行してください。

中国本土から利用する場合

インストール前に、使用するシェルでSIFLI_SDK_MIRROR_CHINAを1に設定してください。macOS/Linuxではexport SIFLI_SDK_MIRROR_CHINA=1、PowerShellでは$env:SIFLI_SDK_MIRROR_CHINA = "1"を使います。GitHubの代わりにGiteeミラーからクローンする方法もあります。詳しくはインストールガイドを参照してください。

install.sh / install.ps1は、対応するコンパイラー、デバッガー、Python依存関係をダウンロードします。SDKのバージョンが変わったら再実行してください。export.sh / export.ps1は、現在のターミナルでその環境を有効化します。ビルドのために新しいターミナルを開くたびに実行してください。WindowsではPowerShellから.ps1スクリプトを実行してください。

ボードターゲットの選択

scons --boardに渡す値は、customer/boards配下のボードディレクトリ名です。お使いのキットに搭載されたメモリーおよびディスプレイ構成に合ったターゲットを選択してください。以下の名前は大文字小文字を区別します。

SiFli-SDK開発キット ビルドターゲット

開発キット 正確なscons --boardターゲット
SF32LB52-DevKit-Core-3p3 sf32lb52-core_e8r16
sf32lb52-core_n16r16
SF32LB52-DevKit-LCD sf32lb52-lcd_52d
sf32lb52-lcd_n16r8
sf32lb52-lcd_a128r16
SF32LB52-DevKit-Nano sf32lb52-nano_n4
sf32lb52-nano_n16r16
sf32lb52-nano_a128r16
Huangshan-Pi(SF32LB52-LCHSPI-ULP) sf32lb52-lchspi-ulp
SF32LB56-DevKit-LCD sf32lb56-lcd_a128r12n1
sf32lb56-lcd_n16r12n1
SF32LB58-DevKit-LCD sf32lb58-lcd_a128r32n1_dsi
sf32lb58-lcd_a128r32n1_qspi
sf32lb58-lcd_n16r32n1_dpi
sf32lb58-lcd_n16r32n1_dsi
sf32lb58-lcd_n16r32n1_qspi
sf32lb58-lcd_n16r64n4

デュアルコアボードでは、コアのサフィックスを省略するとHCPU構成がビルドされます。必要に応じて_hcpuを明示するか、_lcpuを追加してLCPU構成をビルドしてください(例: scons --board=eh-lb551_lcpu)。お使いのボード構成が表にない場合は、SiFliの対応ボード一覧で最新情報を確認してください。

「Hello World」サンプルのビルド

環境をロードした状態で、お使いのボード向けにRT-Threadのhello_worldサンプルをビルドします。

cd example/get-started/hello_world/rtt/project
scons --board=sf32lb52-lcd_n16r8 -j8

sf32lb52-lcd_n16r8をお使いのボード名に置き換えてください。利用可能な名前については対応ボード一覧を参照してください。-j8は8並列ジョブでビルドします。お使いのマシンに合わせて調整してください。この例ではコアサフィックスを省略しているため、HCPUがビルドされ、出力バイナリはbuild_sf32lb52-lcd_n16r8_hcpu/に生成されます。--boardで_lcpuを明示した場合、出力ディレクトリにも_lcpuが付きます。

カスタム設定が必要ですか?

プロジェクトディレクトリからsdk.py menuconfig --board=<board_name>を実行すると、対話型の設定メニューが開きます。Escを2回押し、表示されたら設定を保存して終了してください。

ボードへの書き込み

ボードをUSBで接続したまま、ビルドで生成されたUART書き込みスクリプトを実行します。

./build_sf32lb52-lcd_n16r8_hcpu/uart_download.sh

シリアルポートを求められたら、OSに表示されるシリアルデバイスのパスを入力してください。macOSでは/dev/tty.*ではなく/dev/cu.*デバイス(例: /dev/cu.usbserial-12345678)、Linuxでは該当するデバイスパス(例: /dev/ttyUSB0)を使います。

build_sf32lb52-lcd_n16r8_hcpu\uart_download.bat

please input serial port numberと表示されたら、COMポートの番号だけを入力し(例: COM19なら19)、Enterを押してください。

Tip

書き込みツールがUARTダウンロードモードに入れない場合は、転送を開始する直前にボードをリセットしてください。それでも解決しない場合は、ボード固有の書き込み手順を確認してください。

動作の確認

書き込みが完了したら、ボードをリセットするか、自動的にリセットされるのを待ちます。ボードのデフォルトボーレートでシリアルターミナルを開いてください。UART経由でブート出力とhello_worldサンプルの出力が表示されるはずです。

完了の確認

次の条件を満たしたら、次の作業に進めます。

  • プロジェクトがエラーなくビルドされる。
  • UART書き込みスクリプトが完了する。
  • シリアルコンソールに読み取り可能なブート出力が表示される。
  • リセット後にhello_worldサンプルが出力される。

次に進む先

  • チップを選ぶ: SF32ファミリーの概要でLB52、LB55、LB56、LB58の各シリーズを比較してください。
  • さらにサンプルを試す: hello_world以外にも、SDKにはBLE、クラシックBluetooth、LVGLグラフィックス、オーディオ、低消費電力モードのサンプルが含まれています。
  • 別のフレームワークを使いたい場合: Arduino、Zephyr、またはMicroPythonに進んでください。
  • 行き詰まった場合: ツールチェーン、J-Link、デバッグに関するよくある問題については、SiFli FAQを確認してください。

動作確認済みの基準構成を記録する

再現可能なセットアップのため、SDKのタグまたはブランチ、正確なscons --boardターゲット、ホストOS、シリアルポート、お使いのボードで動作した書き込み手順を記録してください。SDKやボードを変更する際は、公式の対応ボード一覧とリリース一覧を再確認してください。

最終更新: