サンプル¶
まずはサンプルから始めましょう。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トレースまたはクラッシュダンプを取得。 | 製品検証 |
サンプルの選び方¶
次の順に選びます。
- ボードを合わせる。
- フレームワークを合わせる。
- 最も実装が難しい周辺機器を合わせる。
- ミドルウェアを合わせる。
- 電源またはメモリーの制約を合わせる。
たとえばBluetoothオーディオ製品なら、理解しやすいhello_worldよりも、オーディオ/Bluetoothのサンプルに近いものから始めます。
製品向けに応用する手順¶
- 変更していないサンプルをビルドして書き込みます。
- 成功したビルドコマンド、ボード名、書き込みコマンド、シリアルポート、ログを保存します。
- 製品向けの変更を1つ加えます。
- 再ビルドして再試験します。
- 別のサブシステムを追加する前に、変更をコミットするか記録します。
この手順は最初の1時間は遅く感じられますが、最初の深刻な障害が起きた後は大幅に速くなります。
残しておく証跡¶
製品のベースとして採用したサンプルごとに、次の情報を記録してください。
- SDKのブランチまたはパッケージのバージョン
- ボード名またはFQBN
- 必要な設定オプション
- 必要なピンと周辺機器
- 想定されるシリアル出力
- 既知の制約
- 入手できる場合はメモリー使用量
- 復旧コマンド
サンプル選択の原則¶
製品の中で最も制約が厳しい部分に合うサンプルを選びます。
- Bluetooth製品では、最も近いプロファイルのサンプルを使います。
- ディスプレイ製品では、ディスプレイとLVGLの経路を起点にします。
- バッテリー駆動製品では、低消費電力のサンプルを起点にします。
- OTA製品では、更新フローとパーティション構成を起点にします。
その後、ほかのサブシステムを1つずつ追加します。
学習の進め方¶
SDKを初めて使う場合は、ペリフェラル入門から始め、1つの周辺機器が安定して動作したら複数サブシステムの連携に進みます。製品検証では、消費電力の実測・評価、OTA、カスタムディスプレイの立ち上げ、障害解析、Bluetoothの複数接続、独自ドライバーを扱います。各トピックの概要では、サンプルの背景にある構成やトレードオフを説明しています。
最終更新: