embedded-rust.com について
embedded-rust.com は、組み込み Rust(no_std を含む)開発を始める人・深める人のためのドキュメントサイトです。 「まず動かす」だけでなく、継続的に運用できる設計・デバッグ・チーム開発まで見据えた情報提供を目指しています。
このサイトの目的
Section titled “このサイトの目的”組み込み Rust は、C/C++ の資産が多い現場においても徐々に採用が進み、以下のような期待と課題が並行して存在します。
- 期待
- メモリ安全性・型による設計支援
- 依存関係管理(Cargo)と再現性
- エコシステム(HAL、RTIC、async、ログなど)の充実
- 課題
- ターゲットやボードによる手順差(ビルド、フラッシュ、デバッグ)
- no_std 特有の落とし穴(アロケータ、panic、リンク)
- crate 選定の難しさ(成熟度、互換性、メンテ状況)
embedded-rust.com は、これらを踏まえ、次の3点を大事にします。
- 初心者でも再現できる手順(環境構築・最小構成・トラブルシュート)
- crate 選定の判断材料(目的、導入コスト、相性、メンテ状況)
- 比較と意思決定(アーキテクチャ選択、デバッグ手法、ログ設計)
提供するコンテンツ
Section titled “提供するコンテンツ”1) Crates 紹介(ライブラリ辞典)
Section titled “1) Crates 紹介(ライブラリ辞典)”組み込み Rust の開発では、目的に応じて crate を組み合わせることが多くなります。 しかし、同じ領域(ログ、panic、HAL、テスト、RTOS 連携等)に複数の選択肢があり、初学者ほど迷いがちです。
このサイトでは、次の観点で crate を紹介します。
- 何を解決する crate か(どんな問題に効くか)
- 導入の最短手順(Cargo features、最低限のコード)
- よくあるハマりどころ(linker、feature 競合、ターゲット差)
- 組み合わせの定番(例:
defmt+defmt-rtt+panic-probe) - いつ採用すべきか / 避けるべきか(用途・制約・成熟度)
2) Dev Tips(実務で使える小技・定番手順)
Section titled “2) Dev Tips(実務で使える小技・定番手順)”Dev Tips は「手元で動かす」だけで終わらないための実務寄りノウハウ集です。
例:
- probe-rs / cargo-embed を使ったフラッシュとデバッグの定番
memory.xやリンカ設定の読み方panicの扱い、ログ出力の設計(最小構成と拡張)- CI でのビルド(
thumbv7em-none-eabihfなど)と静的チェック no_stdでのエラーハンドリングと設計パターン
3) 技術比較(選定のためのガイド)
Section titled “3) 技術比較(選定のためのガイド)”「結局どれを選ぶのが良いの?」に答えるのが技術比較です。 特定の技術を過度に推すのではなく、比較軸を明確にして判断できる形を目指します。
例:
- RTT / UART / SWO のログ出力比較(速度、導入難度、安定性)
probe-rs/ OpenOCD / vendor tool の比較panic-halt/panic-probe/panic-semihostingの比較- async / RTIC / bare-metal loop の使い分け
- これから組み込み Rust を触る人(ボードに書き込んで動かしたい)
- C/C++ 組み込み経験があり、Rust の導入を検討している人
- 既に Rust で組み込みをしているが、crate 選定やデバッグ体験を改善したい人
- チームでの運用(レビュー、CI、再現性)まで視野に入れている人
コミュニティへの貢献方法
Section titled “コミュニティへの貢献方法”このサイトはコミュニティの知見で育ちます。貢献は小さくて構いません。
- 新しい crate の追加
- 記事の誤字修正、リンク切れ修正
- 手順の更新(ツール更新で変わった箇所の追従)
- トラブルシュートの追記
- 技術比較の記事の提案
貢献方法の詳細は Contributing を参照してください。
- 20 YOE
- 業務で使用する言語は C, C++, C#, Rust, Python, TypeScript, JavaScript, Verilog など中心
- 組み込み中心で Renesas SH/RX/RZ シリーズを中心に開発
- 回路・FPGA・マイコン・バックエンドのPCソフトウェア・フロントエンドのUIまでのコンテンツを提供します