probe-rsの使い方
Written on 2024-06-02
プロジェクト・テンプレートどおりに使う場合はcargo run
すれば内部でprobe-rs
が使われ、コマンドとして意識することはすくない。
しかし、直接、コマンドを実行することで、細かな操作を行うことができる。
ただし、ドキュメントは不足しているので必要に応じてソースを見る必要がある。
bootloaderのサブ記事だが、独立させておく。
❯ which probe-rs
~/.cargo/bin/probe-rs
❯ probe-rs --help
The probe-rs CLI
Usage: probe-rs [OPTIONS] <COMMAND>
Commands:
dap-server Debug Adapter Protocol (DAP) server. See https://probe.rs/docs/tools/vscode/
list List all connected debug probes
info Gets info about the selected debug probe and connected target
reset Resets the target attached to the selected debug probe
gdb Run a GDB server
debug Basic command line debugger
download Download memory to attached target
erase Erase all nonvolatile memory of attached target
run Flash and run an ELF program
attach Attach to rtt logging
trace Trace a memory location on the target
itm Configure and monitor ITM trace packets from the target
chip Inspect internal registry of supported chips
benchmark Measure the throughput of the selected debug probe
profile Profile on-target runtime performance of target ELF program
read Read from target memory address
write Write to target memory address
help Print this message or the help of the given subcommand(s)
Options:
--log-file <LOG_FILE>
Location for log file
If no location is specified, the log file will be stored in a default directory.
-h, --help
Print help (see a summary with '-h')
-V, --version
Print version
イメージ(バイナリ形式)を書き込む
ビルドしたELFを直接書き込むのではなく、そこから編集したイメージを書き込むときには。直接probe-rs
コマンドを使う。
--format bin
でバイナリフォーマットであることを明示--base-address
オプションで開始アドレスを指定(バイナリフォーマットは開始アドレスの情報が含まれていない)--skip
オプションで、イメージ先頭のスキップする長さを指定
❯ probe-rs download --chip RP2040 --protocol swd --format bin --base-address 0x10020000 --skip -0 ../target/${arch}/${debug}/app-blinky.base
チップをリセットする
❯ probe-rs reset --chip RP2040 --protocol swd
メモリ内容をダンプする
❯ probe-rs read --chip RP2040 --protocol swd b32 0x10020000 256