Raspberry Pi Pico – Picoprobe

Raspberry Pi Pico w/picoprobe

目的

Raspberry Pi Picoのソフトウェアを開発するため書き込みとデバッグを行う環境をセットアップする。HostはM1 Mac。MacからPicoprobeへはUSBで接続し、PicoprobeからターゲットpicoへはSWDで接続する。

構成

flowchart LR
    subgraph M1 Mac w/vscode
        gdb
        OpenOCD
    end
    subgraph Raspberry Pi Pico
        ppb[picoprobe]
        io[GPIO<br>UART]
    end
    subgraph Raspberry Pi Pico
        target[SWD<br>UART]
    end
    gdb<-->OpenOCD
    OpenOCD<--USB-->ppb
    ppb<-->io
    io<-->target

手順

  1. Macへツールをインストール
vscode エディタ
arm-none-eabi-gcc コンパイラ
arm-none-eabi-gdb デバッガ
cmake C言語開発用ツール
OpenOCD on chip デバッグツール
pico-project-generator 新規プロジェクト作成補助ツール
  1. vscodeの拡張機能をインストール
C/C++ C/C++ IntelliSense, debugging, and code browsing.
C/C++ Extension Pack Popular extensions for C++ development in Visual Studio Code.
C/C++Themes UI Themes for C/C++ extension.
CMake Tools Extended CMake support in Visual Studio Code
Cortex-Debug ARM Cortex-M GDB Debugger support for VSCode
  1. MacへRaspberry Pi Pico開発リソースをダウンロード
pico-sdk ソフトウェア開発キット
pico-example ペリフェラル動作サンプルコード
picoprobe デバッグツール
  1. 設定
    現在の設定をそのまま下記に記録する。2023/01/05

.vscode/settings.json

{
  "cmake.environment": {
      "PICO_SDK_PATH":"/Users/yourid/pico/pico-sdk",
      "PICO_EXAMPLES_PATH":"/Users/yourid/pico/pico-examples"
  },
  "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
}

.vscode/launch.json
target file は blink.elf

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "OpenOCD Debug",
            "type": "cortex-debug",
            "interface": "swd",
            "runToMain": true,
            "servertype": "openocd",
            "serverpath":"/Users/yourid/pico/openocd/src/openocd",
            "searchDir": [
                "/Users/yourid/pico/openocd/tcl"
            ],
            "configFiles": [
                "interface/cmsis-dap.cfg",
                "target/rp2040.cfg"
            ],
            "openOCDLaunchCommands": [
                "transport select swd",
                "adapter speed 5000"
            ],
            "request": "launch",
            "executable": "${workspaceRoot}/build/blink/blink.elf",
            "cwd": "${workspaceRoot}",
            "gdbPath": "arm-none-eabi-gdb"
        }
    ]
}

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "pico",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "macFrameworkPath": [],
            "compilerPath": "/usr/local/bin/arm-none-eabi-gcc",
            "cStandard": "gnu11",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "gcc-arm",
            "compilerArgs": [
                "-std=gnu11"
            ]
        }
    ],
    "version": 4
}

Screenshot

vscode

参考

公式ドキュメント

getting-started-with-pico.pdfのAppendixにPicoprobeの情報がある。

Raspberry Pi Pico documentation

Raspberry Pi Pico Datasheet
An RP2040-based microcontroller board

Getting started with Raspberry Pi Pico
C/C++ development with Raspberry Pi Pico and other RP2040-based microcontroller boards

Picoprobe home

Picoprobe github page

Homebrew

M1 Macではx86-64用のHomebrewをRosseta2経由で使用する。下記サイトを参考に導入した。

M1 MacへのHomebrewの導入

OpenOCD

OpenOCD home

参考サイト

ラズベリーピコ:1つのデバイスでシンプルなデバッグ

Cortex-MターゲットをOpenOCD + GDBでデバッグする

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です