$30 off During Our Annual Pro Sale. View Details »

Raspberry Pi Picoデバッガ使用のすすめ

Raspberry Pi Picoデバッガ使用のすすめ

トラ技オフ会 2022/05/28 での発表資料です。

Kenta IDA

May 28, 2022
Tweet

More Decks by Kenta IDA

Other Decks in Programming

Transcript

  1. Raspberry Pi Pico
    デバッガ使用のすすめ
    トラ技オンライン・オフ会 2022/05/28
    Kenta Ida (@ciniml)

    View Slide

  2. 自己紹介
    •井田 健太 (@ciniml)
    •仕事:FPGAの論理設計
    •使用言語:C++, SystemVerilog, Rust, C#
    •組込みRust本の1割くらい書きました
    (サンプルアプリ作ったり、デバッガ試したり)→
    2022/5/28
    Raspberry Pi Picoデバッガ使用のすすめ 2

    View Slide

  3. Raspberry Pi Picoの開発環境
    2022/5/28
    Raspberry Pi Picoデバッガ使用のすすめ
    •Pico C/C++ SDK
    •MicroPython
    •CircuitPython
    •今回はPico C/C++ SDK前提の話をします
    3

    View Slide

  4. マイコンのプログラムのデバッグ方法
    2022/5/28
    Raspberry Pi Picoデバッガ使用のすすめ
    •UART等でprintfデバッグ
    • 一番単純な方法だが、プログラム止めたりできない
    •デバッガ (gdb)
    • PCのプログラム同様に停止、変数の内容確認が可能
    • VSCodeによるグラフィカルな環境もある
    • そんなに環境整備コワクナイヨー
    4

    View Slide

  5. RPi PicoでGDBを使うのに必要なもの
    2022/5/28
    Raspberry Pi Picoデバッガ使用のすすめ
    •RPi Pico2枚
    • 目的のプログラムを動かす用
    • PCとPicoのデバッグ通信用 (picoprobe)
    •RPi Picoを買うときは3枚買おう
    • 目的プログラム用
    • 壊れたとき用 (GPIO速攻で壊したので)
    • デバッガ (picoprobe) 用
    5

    View Slide

  6. デバッガ使用手順
    2022/5/28
    Raspberry 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

    View Slide

  7. 環境構築1
    2022/5/28
    Raspberry Pi Picoデバッガ使用のすすめ
    •Mac --- 持ってないのでよくわからないです
    •Linux (Ubuntu)
    • たぶん一番簡単
    • Linux使ってる人はGetting Started読めると思うのでガンバレ
    7

    View Slide

  8. 環境構築2
    2022/5/28
    Raspberry Pi Picoデバッガ使用のすすめ
    •Windows
    • WSL上での環境構築がおすすめ
    • WSL - Windows上でLinux環境を動かせる便利なやつ (Win標準機能)
    • 公式手順 (Windows ネイティブでの環境構築)はハマりどころ満載
    • Visual Studioのビルドツール入れろとか書いてるけど大体ハマる
    • WindowsのCMakeも大体ハマる
    • WindowsのPythonも大体 (以下略
    • WSLのUbuntuを入れてしまえばあとは公式手順(ほぼ)そのまま
    8

    View Slide

  9. よくある?質問
    2022/5/28
    Raspberry Pi Picoデバッガ使用のすすめ
    •WSLだとUSBデバイス使えないんじゃないの?
    • WSL自体はUSB使えないけど対策アリ
    • a. WSLでUSBを使えるようにする (usbipd等)
    • TCP/IP経由でUSB通信を中継する機能
    • 現状標準で動かなくて設定いろいろ大変なので微妙
    • b. USB必要な部分だけWindowsで動かす
    9

    View Slide

  10. WSLの利点
    2022/5/28
    Raspberry Pi Picoデバッガ使用のすすめ
    •Windowsとのファイル共有が容易
    • WSL側で explorer.exe . とか実行すると、
    カレントディレクトリがエクスプローラで開く
    •Windows側のexeを直接立ち上げることができる
    • .exeをつけてあげるといい
    10

    View Slide

  11. ボードの接続
    2022/5/28
    Raspberry Pi Picoデバッガ使用のすすめ
    •普段使わないボード下端の
    ピンとpicoprobeを接続
    • SWDの信号
    • SWCLK - クロック信号
    • SWDIO - データ信号
    • GND
    11

    View Slide

  12. デバッグ環境の構成
    2022/5/28
    Raspberry Pi Picoデバッガ使用のすすめ
    •WSL2上のUbuntuで開発ツールを動かす
    • gcc, CMake, python
    • Pico C/C++ SDK
    • GDB
    •picoprobeと通信するOpenOCDは
    Windowsで動かす
    • USB通信のため
    WSL上では動かせない
    12

    View Slide

  13. デバッグ中の画面
    2022/5/28
    Raspberry Pi Picoデバッガ使用のすすめ 13

    View Slide

  14. デバッグ中の画面
    2022/5/28
    Raspberry Pi Picoデバッガ使用のすすめ
    •PC上のソフトウェアのデバッグ時と遜色ない機能
    • 変数の内容表示
    • コールスタック
    • ブレークポイント
    • ソースコード表示
    •便利なので有効活用しよう
    14

    View Slide

  15. 余談
    2022/5/28
    Raspberry Pi Picoデバッガ使用のすすめ
    •rust-dap開発中(https://github.com/ciniml/rust-dap)
    • Rust (プログラミング言語) で実装したCMSIS-DAP
    • picoprobeの代わりになるファームウェア
    •RP2040は組込みRust入門にも最適
    • 結構環境整備されてきた
    •Rustたのしいよ
    15

    View Slide

  16. おしまい
    2022/5/28
    Raspberry Pi Picoデバッガ使用のすすめ 16

    View Slide