Rust¶
OpenSiFliでは OpenSiFli/sifli-rs でRustの取り組みを進めており、HAL、PAC、Flashテーブル用クレート、サンプル、Flash書き込み/デバッグに関するメモなどが含まれています。
メンテナーは、このプロジェクトは開発途上であり、製品利用の準備はできていないと説明しています。ハードウェアに近い領域で作業し、上流へ修正を貢献できるチームでない限り、SF32上のRustは探索的な経路として扱ってください。
最初のツールチェーン設定、変更していないBlinkyのビルド、書き込みランナーの設定についてはRustを始めるを参照してください。このページでは、対応範囲を評価し、基準構成を超えてRustを採用するか判断します。
OpenSiFliが挙げるクレート¶
表: OpenSiFliが挙げるクレート
| クレート | 目的 |
|---|---|
sifli-hal |
ハードウェア抽象化レイヤー。 |
sifli-pac |
ペリフェラルアクセスクレート。 |
sifli-flash-table |
Flashテーブルのサポート。 |
Rustが適する場面¶
次のような目標がある場合、Rustは有力な選択肢です。
- 組み込みRustを試す。
- 低レベルファームウェアコードで強い型付けを活用する。
- 将来、
embedded-halスタイルのドライバーを開発する。 - SF32のRustエコシステムに貢献する。
現時点で製品用ファームウェアを開発する場合は、SiFli-SDKを使用してください。
評価ゲート¶
製品への移植を始める前に、対象ボードで初期導入用の基準構成が動作することを確認します。その後、必要な周辺機器、Flash配置、デバッグ経路、ランタイム機能ごとに、独立した検証結果を作ります。各結果とともに、上流コミット、Rustターゲット、Cargo設定、ボードリビジョン、復旧手順を記録してください。
リポジトリーではsifli-hal、sifli-pac、Flashテーブル用ツール、Embassyスタイルの非同期サンプルを組み合わせているため、アプリケーションの成否はクレート単体がコンパイルできるかだけでなく、それらの相互動作にも左右されます。未対応箇所を評価する場合は、最小の再現例を維持してください。
リスクチェックリスト¶
- 使用するクレートは対象チップに対応しているか。
- HALは必要な周辺機器をカバーしているか。
- Flash配置は対象ボードと互換性があるか。
- 使用するデバッグプローブ/ツール向けの手順が文書化されているか。
- SiFli-SDKまたは
sftoolで同じボードを復旧できるか。 - チームは修正の貢献に対応できるか。
適した用途/不向きな用途¶
表: Rustが適する用途と不向きな用途
| 適した用途 | 不向きな用途 |
|---|---|
| 実験やドライバーの調査。 | ベンダーサポートが必要な量産スケジュール。 |
| すでに組み込みRustを使用しているチーム。 | 現時点で完全なBluetooth/ディスプレイ/オーディオスタックが必要な製品。 |
| HAL/PACの成熟に貢献する。 | ArduinoやSDKサンプルを使う方が早い一回限りの試作。 |
最終更新: