トラ技オフ会 2022/05/28 での発表資料です。
Raspberry Pi Picoデバッガ使用のすすめトラ技オンライン・オフ会 2022/05/28Kenta Ida (@ciniml)
View Slide
自己紹介•井田 健太 (@ciniml)•仕事:FPGAの論理設計•使用言語:C++, SystemVerilog, Rust, C#•組込みRust本の1割くらい書きました(サンプルアプリ作ったり、デバッガ試したり)→2022/5/28Raspberry Pi Picoデバッガ使用のすすめ 2
Raspberry Pi Picoの開発環境2022/5/28Raspberry Pi Picoデバッガ使用のすすめ•Pico C/C++ SDK•MicroPython•CircuitPython•今回はPico C/C++ SDK前提の話をします3
マイコンのプログラムのデバッグ方法2022/5/28Raspberry Pi Picoデバッガ使用のすすめ•UART等でprintfデバッグ• 一番単純な方法だが、プログラム止めたりできない•デバッガ (gdb)• PCのプログラム同様に停止、変数の内容確認が可能• VSCodeによるグラフィカルな環境もある• そんなに環境整備コワクナイヨー4
RPi PicoでGDBを使うのに必要なもの2022/5/28Raspberry Pi Picoデバッガ使用のすすめ•RPi Pico2枚• 目的のプログラムを動かす用• PCとPicoのデバッグ通信用 (picoprobe)•RPi Picoを買うときは3枚買おう• 目的プログラム用• 壊れたとき用 (GPIO速攻で壊したので)• デバッガ (picoprobe) 用5
デバッガ使用手順2022/5/28Raspberry Pi Picoデバッガ使用のすすめ•実は公式ドキュメント (PicoのGetting Started)に記載• https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf• 英語だけどしっかり書いてあるので一度読んでるのをお勧めします• もともとRPiは教育用なのでこの辺しっかりしてる•インターフェース 2021年8月号にも記載• (大分前だけど) 書いたので買ってね!https://interface.cqpub.co.jp/magazine/202108/6
環境構築12022/5/28Raspberry Pi Picoデバッガ使用のすすめ•Mac --- 持ってないのでよくわからないです•Linux (Ubuntu)• たぶん一番簡単• Linux使ってる人はGetting Started読めると思うのでガンバレ7
環境構築22022/5/28Raspberry Pi Picoデバッガ使用のすすめ•Windows• WSL上での環境構築がおすすめ• WSL - Windows上でLinux環境を動かせる便利なやつ (Win標準機能)• 公式手順 (Windows ネイティブでの環境構築)はハマりどころ満載• Visual Studioのビルドツール入れろとか書いてるけど大体ハマる• WindowsのCMakeも大体ハマる• WindowsのPythonも大体 (以下略• WSLのUbuntuを入れてしまえばあとは公式手順(ほぼ)そのまま8
よくある?質問2022/5/28Raspberry Pi Picoデバッガ使用のすすめ•WSLだとUSBデバイス使えないんじゃないの?• WSL自体はUSB使えないけど対策アリ• a. WSLでUSBを使えるようにする (usbipd等)• TCP/IP経由でUSB通信を中継する機能• 現状標準で動かなくて設定いろいろ大変なので微妙• b. USB必要な部分だけWindowsで動かす9
WSLの利点2022/5/28Raspberry Pi Picoデバッガ使用のすすめ•Windowsとのファイル共有が容易• WSL側で explorer.exe . とか実行すると、カレントディレクトリがエクスプローラで開く•Windows側のexeを直接立ち上げることができる• .exeをつけてあげるといい10
ボードの接続2022/5/28Raspberry Pi Picoデバッガ使用のすすめ•普段使わないボード下端のピンとpicoprobeを接続• SWDの信号• SWCLK - クロック信号• SWDIO - データ信号• GND11
デバッグ環境の構成2022/5/28Raspberry Pi Picoデバッガ使用のすすめ•WSL2上のUbuntuで開発ツールを動かす• gcc, CMake, python• Pico C/C++ SDK• GDB•picoprobeと通信するOpenOCDはWindowsで動かす• USB通信のためWSL上では動かせない12
デバッグ中の画面2022/5/28Raspberry Pi Picoデバッガ使用のすすめ 13
デバッグ中の画面2022/5/28Raspberry Pi Picoデバッガ使用のすすめ•PC上のソフトウェアのデバッグ時と遜色ない機能• 変数の内容表示• コールスタック• ブレークポイント• ソースコード表示•便利なので有効活用しよう14
余談2022/5/28Raspberry Pi Picoデバッガ使用のすすめ•rust-dap開発中(https://github.com/ciniml/rust-dap)• Rust (プログラミング言語) で実装したCMSIS-DAP• picoprobeの代わりになるファームウェア•RP2040は組込みRust入門にも最適• 結構環境整備されてきた•Rustたのしいよ15
おしまい2022/5/28Raspberry Pi Picoデバッガ使用のすすめ 16