Arduino¶
OpenSiFliには、Zephyrをベースにした、SF32向けのベータ版Arduinoコアがあります: OpenSiFli/ArduinoCore-zephyr。これはsifli:sf32lb52 Arduinoパッケージを公開しており、Boards ManagerにはSiFli Serial Boardsとして表示され、現在はSiFli SF32LB52 DevKit LCDボードを対象としています。
スケッチの試作、周辺機能の簡単な確認、デモ、初期プロトタイプには、このArduinoコアが適しています。本番向けファームウェア、Bluetoothスタックの調整、グラフィックス負荷の高いアプリケーション、低消費電力化、カスタムボードの立ち上げには、SiFli-SDKを使用してください。
ベータ版のコア
OpenSiFliはこのArduinoコアをBETAとし、テスト用途に限って使用するよう案内しています。機能、API、ローダーの動作、パッケージ内容、リリースの仕組みは変更される可能性があります。本番用途向けとして扱わないでください。
必要なもの¶
ハードウェア
- SiFli SF32LB52 DevKit LCD。
- ボードのUSB-to-UARTインターフェースに接続するUSB Type-Cデータケーブル。
- Windows、macOS、またはLinuxを実行するコンピューター。
ソフトウェア
- Arduino IDE 2.xまたはArduino CLI。
- OpenSiFliの
sifli:sf32lb52Arduinoパッケージ。 - シリアルモニター。
ボードパッケージのインストール¶
Arduino IDE > Settingsを開き、次のURLをAdditional Boards Manager URLsに追加します。
中国本土のユーザーは、ミラーされたパッケージインデックスを使用してください。
https://downloads.sifli.com/github_assets/OpenSiFli/ArduinoCore-zephyr/releases/latest/download/package_sifli_index_cn.json
次にBoards Managerを開き、SiFli Serial Boardsを検索して、sifli:sf32lb52プラットフォームをインストールします。
Arduino CLIからもインストールできます。
arduino-cli core install sifli:sf32lb52 \
--additional-urls https://github.com/OpenSiFli/ArduinoCore-zephyr/releases/latest/download/package_sifli_index.json
中国向けミラーを使う場合:
arduino-cli core install sifli:sf32lb52 \
--additional-urls https://downloads.sifli.com/github_assets/OpenSiFli/ArduinoCore-zephyr/releases/latest/download/package_sifli_index_cn.json
ボードの選択¶
Arduino IDEで次を選択します。
ボードのFQBNは次のとおりです。
OpenSiFliのボード定義では、このArduinoボード名をZephyrターゲットsf32lb52_devkit_lcdとバリアントsf32lb52_devkit_lcd_sf32lb525uc6に対応付けています。
ビルドオプションの選択¶
このコアには2つの重要なメニューがあります。
| メニュー | オプション | 意味 |
|---|---|---|
| Mode | Standard |
ロード後にスケッチが自動的に開始する。 |
| Mode | Debug |
Zephyrシェルがsketchコマンドを待機する。 |
| Link mode | Dynamic |
スケッチがZephyrローダー向けにパッケージ化される。 |
| Link mode | Static |
スケッチが書き込み可能なバイナリにリンクされる。 |
Zephyrローダーを使う場合はDynamicを選びます。スケッチを書き込み可能なファームウェアイメージにリンクする場合はStaticを選びます。
ボードをシリアルダウンロードモードにする¶
OpenSiFliのドキュメントによると、初回使用時にはボードをシリアルダウンロードモードにする必要があります。SF32LB52 DevKit LCD用のブート/リセットシーケンスを使用してから、Arduino IDEまたはCLIからアップロードしてください。
アップロードツールはsftoolです。
シリアルスモークテストのアップロード¶
まずはシリアル出力を確認しましょう。このテストでは、LEDの極性に依存せず、アップロード、リセット、実行環境の起動、コンソール出力の経路を確認できます。
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println("Hello from SF32 Arduino");
delay(1000);
}
Arduino IDEからアップロードするか、Arduino CLIを使用します。
arduino-cli compile \
--fqbn sifli:sf32lb52:sf32lb52devkitlcd:link_mode=dynamic \
/path/to/YourSketch
arduino-cli upload \
-p /dev/cu.usbserial-XXXX \
--fqbn sifli:sf32lb52:sf32lb52devkitlcd:link_mode=dynamic \
/path/to/YourSketch
/dev/cu.usbserial-XXXXをボードのシリアルポートに置き換えてください。Windowsでは対応するCOMポートを使用します。Linuxでは対応する/dev/ttyUSB*または/dev/ttyACM*ポートを使用します。
Serial Monitorを115200ボーで開いてください。Standardビルドモードでは、スケッチが1秒ごとに1行を出力するはずです。Debugビルドモードでは、Zephyrシェルを開いて次を実行します。
Blinkのアップロード¶
インストールしたSF32LB52 DevKit LCDのバリアントでLED_BUILTINが定義されているか確認してください。Arduinoのピン番号が共通とは限りません。マクロがあり、ボード上のLEDがそのバリアントに割り当てられている場合は、シリアルスモークテストの成功後にBlinkを試してください。そうでない場合は、GPIOを選ぶ前にボード資料でLEDの接続先と極性を確認してください。
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
delay(500);
}
トラブルシューティング¶
| 症状 | 確認事項 |
|---|---|
| パッケージが表示されない | パッケージインデックスURLを確認し、Arduino IDE 2.xを使用してください。 |
| アップロードが失敗する | ボードをシリアルダウンロードモードにし、シリアルモニターがポートを占有していないことを確認してください。 |
| スケッチが開始しない | Modeを確認してください。Debugの場合は、Zephyrシェルからsketchを実行してください。 |
| 未定義のZephyrシンボル | コアのREADMEによると、不足しているZephyr関数をloader/llext_exports.cでエクスポートし、ローダーを再ビルドする必要がある場合があります。 |
| Zephyrサブシステムが見つからない | ボードの.confで必要なCONFIG_オプションを有効にし、ローダーを再ビルドしてアップロードしてください。 |
| メモリー不足 | Zephyrシェルと動的なスケッチのロードはRAMを消費します。スタック使用量を減らすか、必要に応じてビルドモードを切り替えてください。 |
現在の対応範囲¶
現在公開されているパッケージの対象はSF32LB52 DevKit LCDで、テスト用のベータ版です。別のボードを試す場合やAPIを利用する場合は、使用するパッケージの正確なバージョンについて、upstreamリポジトリーとリリースノートを確認してください。ZephyrまたはSiFli-SDKでのサポートは、このArduinoパッケージでのサポートを意味するものではありません。
最終更新: