コンテンツにスキップ

サンプル

まずはサンプルから始めましょう。SF32のファームウェアは、すべてのサブシステムをゼロから構築するより、動作実績のあるボード別サンプルを製品に合わせて変更するほうが、通常は早く仕上がります。

最小のサンプルが最適とは限りません。製品で最も実装が難しい部分、たとえばBluetoothプロファイル、ディスプレイパネル、オーディオ経路、ファイルシステム、OTA、USB、電源モード、AIアクセラレーターをすでに含むサンプルを選んでください。

サンプルの分野

表: サンプル分野と開始点
分野 開始点
最初の実行 example/get-started/hello_world/rtt/project
LED点滅/GPIO example/get-started/blink/rttまたはGPIO HAL/デバイスのサンプル。
Bluetooth BLE、Classic BT、LE Audio、スループット、ビーコン、OTA、プロファイルの各サンプル。Bluetooth SDKの例の用途別一覧を参照してください。
グラフィックス LVGLデモ、デザインツール連携、ウィジェット、圧縮アセット、アニメーション/メディア、ディスプレイ別サンプル。LVGL SDKサンプルの用途別一覧を参照してください。
オーディオ 再生、録音、PDMキャプチャー、コーデック、Opus、MP3、ミキシング、対応する場合はUSBオーディオ。オーディオSDKサンプルの用途別一覧を参照してください。
低消費電力 電源管理(PM)の状態、GPIO、プロセッサー、Bluetooth、ディスプレイ、UI、ウェアラブルの各シナリオ。低消費電力SDKサンプルの用途別一覧を参照してください。
ストレージ ファイルシステム、Flash、SD、パーティションの各サンプル。
USB CherryUSBのデバイス/ホストサンプル。
AI NNACC HALとRT-Deviceのサンプル。

SDKサンプルの代表的な開始点

分野を選んだ後、次の表を使ってください。以下は代表的なパスです。SDKリリースによって変わる場合があるため、ビルド前に使用するSDK、対象ボード、設定を確認してください。

表: SF32 SDKサンプルの代表的な開始点
開発目標 SDKサンプルの代表例 最初に確認すること 次に読む資料
GPIO出力/入力 example/hal/gpio, example/rt_device/gpio 実際のボードでピン多重化、極性、割り込み動作が正しいこと。 ペリフェラル入門
コンソールとシステム調査 example/system/finsh シリアルコンソール、ログ、基本的な実行時情報の確認。 ペリフェラル入門
ADC、PWM、RTC example/hal/adc, example/rt_device/pwm, example/rt_device/rtc ボード固有のピン、クロック、周辺機器の設定。 ペリフェラル入門
I2Cセンサー example/hal/i2c/master, example/rt_device/i2c/eeprom 電気的な接続、バスアドレス、繰り返し転送の信頼性。 複数サブシステムの連携
LVGLとローカルディスプレイ example/multimedia/lvgl/lvgl_v8_examples 複雑な画面を作る前に、パネル初期化、ピクセル形式、安定した画面更新(flush)経路を確認。 グラフィックス概要、ディスプレイコントローラー
BLEペリフェラルのサービス example/ble/peripheral, example/ble/hrpc アドバタイジング、接続、1つのGATT特性、再接続動作。 Bluetooth概要
ローカル音声再生 example/multimedia/audio/local_music, mp3_sd_player コーデックとボードの音声経路、バッファーの安定性、再生後の後処理。 オーディオ概要
Flashベースのストレージ example/storage/littlefs/nor, example/storage/flashdb マウント、読み書き、リセット時または容量不足時の復旧。 複数サブシステムの連携
低消費電力動作 example/pm/classical, example/pm/raise_wrist 状態ごとの実測電流と、ウェイクアップ要因の正しい動作。 低消費電力設計の概要
BLE OTA example/ble/peripheral_with_ota 対象ハードウェアでの更新中断からの復旧とロールバック。 製品検証
実行時診断 example/system/cpu_usage_profiler, example/system/coredump 最適化の前に、再現可能なCPUトレースまたはクラッシュダンプを取得。 製品検証

サンプルの選び方

次の順に選びます。

  1. ボードを合わせる。
  2. フレームワークを合わせる。
  3. 最も実装が難しい周辺機器を合わせる。
  4. ミドルウェアを合わせる。
  5. 電源またはメモリーの制約を合わせる。

たとえばBluetoothオーディオ製品なら、理解しやすいhello_worldよりも、オーディオ/Bluetoothのサンプルに近いものから始めます。

製品向けに応用する手順

  1. 変更していないサンプルをビルドして書き込みます。
  2. 成功したビルドコマンド、ボード名、書き込みコマンド、シリアルポート、ログを保存します。
  3. 製品向けの変更を1つ加えます。
  4. 再ビルドして再試験します。
  5. 別のサブシステムを追加する前に、変更をコミットするか記録します。

この手順は最初の1時間は遅く感じられますが、最初の深刻な障害が起きた後は大幅に速くなります。

残しておく証跡

製品のベースとして採用したサンプルごとに、次の情報を記録してください。

  • SDKのブランチまたはパッケージのバージョン
  • ボード名またはFQBN
  • 必要な設定オプション
  • 必要なピンと周辺機器
  • 想定されるシリアル出力
  • 既知の制約
  • 入手できる場合はメモリー使用量
  • 復旧コマンド

サンプル選択の原則

製品の中で最も制約が厳しい部分に合うサンプルを選びます。

  • Bluetooth製品では、最も近いプロファイルのサンプルを使います。
  • ディスプレイ製品では、ディスプレイとLVGLの経路を起点にします。
  • バッテリー駆動製品では、低消費電力のサンプルを起点にします。
  • OTA製品では、更新フローとパーティション構成を起点にします。

その後、ほかのサブシステムを1つずつ追加します。

学習の進め方

SDKを初めて使う場合は、ペリフェラル入門から始め、1つの周辺機器が安定して動作したら複数サブシステムの連携に進みます。製品検証では、消費電力の実測・評価、OTA、カスタムディスプレイの立ち上げ、障害解析、Bluetoothの複数接続、独自ドライバーを扱います。各トピックの概要では、サンプルの背景にある構成やトレードオフを説明しています。

最終更新: