連載 組み込みRustのライブラリ 便利クレート探偵団<第2回>

本文中のURL,コマンドライン

・probe-rsの入手先

https://github.com/probe-rs/probe-rs

・サンプル・コードの入手先

https://github.com/tomoyuki-nakabayashi/interface-embedded-rust-crates/tree/main/202404/probe-rs

 

使い方①…コマンドライン・ツール

・probe-rs,cargo-flash,cargo-embedのインストール

https://probe.rs/docs/getting-started/installation/

・パッケージのインストール

sudo apt install -y pkg-config libusb-1.0-0-dev libftdi1-dev libudev-dev libssl-dev

probe-rs,cargo-flash,cargo-embedのインストール

cargo install probe-rs –features cli,ftdi

・udevのルール・ファイルのダウンロード先

https://probe.rs/files/69-probe-rs.rules

・ルール・ファイルのコピーとリロード

sudo cp 69-probe-rs.rules /etc/udev/rules.d/
sudo udevadm control –reload

・Windowsのセットアップ手順

https://probe.rs/docs/getting-started/probe-setup/

・cargo-flashのビルド

・・リリース・ビルドしたい場合
cargo flash –release –chip <chip_name>
・・exampleをビルドする場合
cargo flash –example hello –chip <chip_name>

・nRF52840のBSP(Board Support Packet)クレートのnrf52840-dkのサンプルをcargo-embedで動かす場合

git clone https://github.com/nrf-rs/nrf52840-dk.git
cd nrf52840-dk
cargo embed –example rtt

・nrf52840-dkクレートの設定ファイル

https://github.com/nrf-rs/nrf52840-dk/blob/master/Embed.toml

 

使い方②…デバッガ

・VSCodeでprobe-rs拡張を使う場合の.nRF52840向けに使えるサンプル・コード
https://github.com/tomoyuki-nakabayashi/interface-embedded-rust-crates/202404/probe-rs/tools

・リスト1 .vscode/launch.json

・nRF52840のSVDファイル

https://github.com/NordicSemiconductor/nrfx/blob/master/mdk/nrf52840.svd

・probe-rsのデバッガ機能紹介を参照下さい.
https://probe.rs/docs/tools/debugger/

 

使い方③…ライブラリ

・nrf52840-dkクレートのblinkyサンプルをフラッシュに書き込んで,実行するオリジナル・ツール

https://github.com/tomoyuki-nakabayashi/interface-embedded-rust-crates/202404/probe-rs/library/probe-rs-example

・Cargo.tomlにprobe-rsとエラー処理のためにanyhowを追加する
[dependencies]
probe-rs = “0.22.0”
anyhow = “1.0”

・リスト2 src/main.rs

・nrf52840-dkクレートのblinkyサンプルのビルド
cargo build –example blinky

・probe-rsのlibrary guide
https://probe.rs/docs/library/quickstart/