probe-rs CLIユーティリティには多くのサブコマンドがあり、この文書の各セクションで説明しています。
最もよく使われるのは probe-rs run サブコマンドです。
適用できる場合、これは組み込み開発を行う際の推奨される方法です。
これは任意の組み込みバイナリで動作する点に注意してください。ADA、C、C++、Rust、あるいはネイティブのARMバイナリにコンパイルできるその他の言語であっても構いません。
run
run サブコマンドは cargo のターゲットランナーです。これにより、シンプルな cargo run でターゲットへのフラッシュ、起動、ログ出力が可能になります。
プロジェクトでこのランナーを使用するには、.cargo/config.toml に追加してください。
[target.<architecture-triple>]runner = 'probe-rs run --chip <chip-name>'これで、ネイティブバイナリの場合と同じようにプロジェクトで cargo run を実行でき、標準出力に書き込んだかのように、同じコンソールで RTT と defmt のログを受け取れます。
RTT または defmt を使用するには、それぞれの crate の手順に従ってファームウェアに統合してください。
attach
probe-rs attach は probe-rs run とまったく同じように動作しますが、現在実行中の状態を保持するため、接続時にリセットを発行せず、ターゲットへのフラッシュも行いません。
これは、ターゲットの状態を変更せずに調査するのに最適です。ファームウェアをまったく把握していない場合でも有用です。
serve
probe-rs のサーバーおよびクライアントのサポートは
remotefeature の有効化が必要であり、デフォルトの配布物では利用できません。
probe-rs serve は、マシン上でリモートサーバーを起動します。別のマシンから、デバイスへの run、attach、メモリの read と write、プローブの list、およびデバイスの info の取得を行えます。
サーバーは WebSocket で通信します。その上に独自の TLS レイヤーを追加することを推奨します。probe-rs の設定ファイルでは、バインドアドレスとポート、およびユーザー認証情報の一覧を指定できます。
サーバーに接続するには、--host および --token オプションを使用します: probe-rs [command] --host ws[s]://<host> --token <token> [additional arguments]。
追加コマンド
追加コマンドの詳細については、probe-rs help または probe-rs <command> --help コマンドを使用してください。
設定
probe-rs は設定ファイルで設定できます。現在利用可能なオプションは次のとおりです。
- サーバーのリッスンパラメーター
- サーバーユーザー
- コマンドプリセット
設定ファイルは toml、json、yaml、yml のいずれかのファイルで、次の場所に配置できます。
- 現在の作業フォルダー
probe-rs実行ファイルがあるフォルダー- ユーザーの HOME ディレクトリ
サーバーオプションの指定
サーバーのポートとバインドアドレス、およびユーザー一覧を指定できます。ユーザーが存在しないサーバーには接続できません。特定のユーザーがアクセスできるプローブを設定することもできます。ユーザートークンは一意である必要があり、ユーザー名はアクセスのログ記録にのみ使用されます。
[server]port = 3000 # デフォルトは3000ですaddress = "127.0.0.1" # デフォルトは0.0.0.0です
[[server.users]]name = "user1"token = "foo"access = "all" # 任意。デフォルトは "all"# access = { allow = ["probe serial 1", "probe serial 2"] }# access = { deny = ["probe serial 1", "probe serial 2"] }プリセットの指定
プリセットを使うと CLI 引数を簡略化できます。任意の数のプリセットを定義し、--preset <name> オプションでそのうちの1つを選択できます。すると、そのプリセット内の引数がコマンドに追加されます。--preset が指定されていない場合に選択される default プリセットを作成することもできます。
たとえば、次のようなプリセットを用意できます。
[presets]preset_name = { probe = "vid:pid:serial", host = "remote", token = "token" }すると、probe-rs run <firmware> --preset preset_name コマンドを実行すると、実質的には probe-rs run <firmware> --probe vid:pid:serial --host remote --token token を実行することになります。