probe-rs and cargo-embed

probe-rsは組み込み向けデバッグに有用なツールセットです。これはOpenOCDのようなものですが、より高度に統合されています。

  • SWD (Serial Wire Debug) やCMSIS-DAP経由のJTAG、 ST-LinkやJ-Linkプローブ
  • GDBスタブやMicrosoft DAP (Debug Adapter Protocol)サーバ
  • Cargoとのインテグレーション

cargo-embedはcargoのサブコマンドであり、バイナリをビルドしたり、フラッシュしたり、RTT(Real Time Transfers)の出力ログを取得したり、GDBに接続するためのものです。設定は対象とするプロジェクトディレクトリにおけるEmbed.tomlファイルにより行います。

  • CMSIS-DAP はUSB上のARM標準プロトコルで、インサーキット・デバッガが様々なArm Cortexプロセッサのコアサイト・デバッグ・アクセスポートにアクセスするためのものです。BBC micro:bit のオンボード・デバッガもこれを利用しています。
  • ST-Link はST Microelectronicsによるインサーキット・デバッガの総称で、 J-LinkはSEGGERによるインサーキット・デバッガの総称です。
  • デバッグ・アクセスポートは通常5ピンのJTAGインタフェースか、2ピンのシリアルワイヤデバッグです。
  • probe-rsは自分で独自のツールを統合したい場合に利用できるライブラリです。
  • Microsoft Debug Adapter Protocol はVSCodeや他のIDEから、サポートされたマイクロコントローラ上で実行されているコードをデバッグすることを可能にします。
  • cargo-embedはprobe-rsライブラリを利用して生成されたバイナリです。
  • RTT (Real Time Transfers)はデバッグホストとターゲット間のデータを多くのリングバッファを介してやりとりするためのメカニズムです。