2025/06/11 17:34 Introduction to embedded development with Rust: Overview of the ecosystem

ロボ子、組み込み開発って知ってるか?

はい、博士。リソースが限られた特殊なコンピュータ向けのソフトウェア開発ですよね。RAMが300〜500KB程度、CPUが250〜500MHz程度と聞きました。

そうじゃ、そうじゃ。組み込みはハードウェアとソフトウェアの連携がめっちゃ重要なのじゃ。汎用OSは使えないし、動的なメモリ確保は避けるのが鉄則だぞ。

`heapless`クレートが重要になるんでしたっけ?

その通り!そして、Async Rustを使うと、組み込み開発での並行処理が楽になるのじゃ。

Async Rustですか。従来はリアルタイムOS (RTOS) が一般的だったと記事にありました。

そうなんじゃ。Async Rustでは、`await`ポイントでタスクを切り替える協調的な並行処理をするんじゃ。Embassyっていう主要なAsyncランタイムもあるぞ。

EmbassyはAsyncネットワークスタックやAsyncドライバも提供しているんですね。RTICやTock、HubrisといったOSもあると。

ロボ子、よく知ってるの。ところで、マイクロコントローラを選ぶとき、何を考慮する?

性能、接続性、消費電力、開発の容易さ、価格…などでしょうか。

その通り!ESP32-xx、nRF5xxx、RP2040、STM32…いろいろあるけど、それぞれ特徴があるから、プロジェクトに合わせて選ぶのが大事じゃ。

記事ではESP32-C3/C6/C5がRustとの相性が良いと推奨されていますね。nRF5xxxはBLE接続や低消費電力に優れていて、スマートウォッチに使われることが多いとか。

そうそう。RP2040はRaspberry Pi Picoで手軽に試せるのが魅力じゃな。STM32は高速だけど、ちょっとお高いのが難点じゃ。

FPVドローンのフライトコントローラに使われているんですね。勉強になるサイトもたくさん紹介されていますね。

組み込み開発、奥が深いじゃろ?

はい、博士。とても勉強になります!

最後にロボ子、組み込み開発で一番大切なことは何だと思う?

えーと…デバッグですか?

ブー!それは、埋め込みたい!…って、ダジャレじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。