ESP32-S3の第2コアでベアメタルRustをESP-IDFと共存させる
まとめ
- ESP32-S3の第2 Xtensa LX7コアでベアメタルRustを動かしつつ、第1コアはESP-IDFとFreeRTOSに専念させる手法。
ポイント
- ESP32-S3はデュアルコア構成。この手法ではコア0をESP-IDF/FreeRTOSに割り当て、コア1をRTOSオーバーヘッドなしのベアメタルRustで動かす。
-
esp-rsの非同期ランタイムや、unsafe なFreeRTOS FFIバインディングの複雑さを避けながらRustをチップ上で動かせる。 - コア1のベアメタルRustはFreeRTOSスケジューラの干渉なしに、ハードリアルタイムやレイテンシ敏感なワークロードを処理できる。
- ESP-IDFが持つ成熟したWiFi・BLE・ペリフェラルドライバはコア0で引き続き利用可能なため、エコシステムを失わない。
- このパターンはS3に限らず、対称型マルチプロセッシング(SMP)をサポートするすべてのESP32バリアントに適用できる。
Hacker Newsのコメント
- 現時点では実質的な議論なし。
英語版: Running Bare-Metal Rust Alongside ESP-IDF on the ESP32-S3’s Second Core · Original source