周辺I/Oへアクセスするためのクレート(PACs)
svd2rust
はCMSIS-SVD ファイルから、メモリマップされた周辺I/Oに対するほぼ安全(mostly-safe)なRustラッパーを生成します。
Speaker Notes
- SVD (System View Description)ファイルはXMLファイルでデバイスのメモリマップを記述したものであり、通常シリコンベンダにより提供されます。
- 周辺I/Oごとに、レジスタ、フィールドと値、名前、説明、アドレスなどにより構成されています。
- SVDファイルにはよく誤りがあり、また情報が不足していることも多いので、様々なプロジェクトがそれを修正・追加し、クレートとして公開しています。
cortex-m-rt
はベクタテーブルも提供します。- もし
cargo install cargo-binutils
を実行していれば、cargo objdump --bin pac -- -d --no-show-raw-insn
を実行することにより生成されたバイナリの中身を見ることができます。
例の実行方法:
cargo embed --bin pac