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
手順
- Macへツールをインストール
vscode エディタ arm-none-eabi-gcc コンパイラ arm-none-eabi-gdb デバッガ cmake C言語開発用ツール OpenOCD on chip デバッグツール pico-project-generator 新規プロジェクト作成補助ツール
- 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
- MacへRaspberry Pi Pico開発リソースをダウンロード
pico-sdk ソフトウェア開発キット pico-example ペリフェラル動作サンプルコード picoprobe デバッグツール
- 設定
現在の設定をそのまま下記に記録する。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
参考
公式ドキュメント
getting-started-with-pico.pdfのAppendixにPicoprobeの情報がある。
Raspberry Pi Pico documentation
Raspberry Pi Pico Datasheet
An RP2040-based microcontroller boardGetting started with Raspberry Pi Pico
C/C++ development with Raspberry Pi Pico and other RP2040-based microcontroller boards
Picoprobe home
Homebrew
M1 Macではx86-64用のHomebrewをRosseta2経由で使用する。下記サイトを参考に導入した。