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を実行するコンピューター。
ソフトウェア
公式リファレンス
IDEの方がお好みですか?
SiFliは、SDKの環境構築からビルド、書き込みまでを案内するVS Code拡張機能SiFli-SDK-CodeKitも公開しています。IDEを使った手順を希望する場合は、SiFli CodeKitを参照してください。
ツールチェーンのインストール¶
再現性のある基準構成には、mainではなく公開済みのリリースタグを使ってください。今回の確認時点で最新の公開タグはv2.5.1です。始める前に公式リリース一覧で新しいタグがないか確認してください。release/v2.5ブランチには同リリース系列の更新が入りますが、内容は時間とともに変わります。
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_e8r16sf32lb52-core_n16r16 |
| SF32LB52-DevKit-LCD | sf32lb52-lcd_52dsf32lb52-lcd_n16r8sf32lb52-lcd_a128r16 |
| SF32LB52-DevKit-Nano | sf32lb52-nano_n4sf32lb52-nano_n16r16sf32lb52-nano_a128r16 |
| Huangshan-Pi(SF32LB52-LCHSPI-ULP) | sf32lb52-lchspi-ulp |
| SF32LB56-DevKit-LCD | sf32lb56-lcd_a128r12n1sf32lb56-lcd_n16r12n1 |
| SF32LB58-DevKit-LCD | sf32lb58-lcd_a128r32n1_dsisf32lb58-lcd_a128r32n1_qspisf32lb58-lcd_n16r32n1_dpisf32lb58-lcd_n16r32n1_dsisf32lb58-lcd_n16r32n1_qspisf32lb58-lcd_n16r64n4 |
デュアルコアボードでは、コアのサフィックスを省略するとHCPU構成がビルドされます。必要に応じて_hcpuを明示するか、_lcpuを追加してLCPU構成をビルドしてください(例: scons --board=eh-lb551_lcpu)。お使いのボード構成が表にない場合は、SiFliの対応ボード一覧で最新情報を確認してください。
「Hello World」サンプルのビルド¶
環境をロードした状態で、お使いのボード向けにRT-Threadのhello_worldサンプルをビルドします。
sf32lb52-lcd_n16r8をお使いのボード名に置き換えてください。利用可能な名前については対応ボード一覧を参照してください。-j8は8並列ジョブでビルドします。お使いのマシンに合わせて調整してください。この例ではコアサフィックスを省略しているため、HCPUがビルドされ、出力バイナリはbuild_sf32lb52-lcd_n16r8_hcpu/に生成されます。--boardで_lcpuを明示した場合、出力ディレクトリにも_lcpuが付きます。
カスタム設定が必要ですか?
プロジェクトディレクトリからsdk.py menuconfig --board=<board_name>を実行すると、対話型の設定メニューが開きます。Escを2回押し、表示されたら設定を保存して終了してください。
ボードへの書き込み¶
ボードをUSBで接続したまま、ビルドで生成されたUART書き込みスクリプトを実行します。
シリアルポートを求められたら、OSに表示されるシリアルデバイスのパスを入力してください。macOSでは/dev/tty.*ではなく/dev/cu.*デバイス(例: /dev/cu.usbserial-12345678)、Linuxでは該当するデバイスパス(例: /dev/ttyUSB0)を使います。
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やボードを変更する際は、公式の対応ボード一覧とリリース一覧を再確認してください。
最終更新: