言語切り替え
ITとハードウェアであなたのビジネスをお手伝い

Raspberry Pi Pico を VSCodeでデバッグ

何をするのか

Raspberry Pi Pico を C/C++ でソースコードデバッグしたい。そのために、Seeed XIAO RP2040をPicoProbeにしてVS Code に設定を施す。

Seeed XIAO RP2040
https://www.seeedstudio.com/XIAO-RP2040-v1-0-p-5026.html

設定とかの参考
https://learnembeddedsystems.co.uk/133-2

はまりどころ

  • セットアップファイルは https://github.com/ndabas/pico-setup-windows にあった
  • Download the latest release をクリックして pico-setup-windows-0.3.4-x64.exe をダウンロード&インストール。
  • openOCD のビルド で MSYSやら 様々インストールを求められる
    → MSYSやopenOCDをダウンロードしたのにビルドが通らない?
    → あらかじめビルド済バイナリがあった
    https://learnembeddedsystems.co.uk/133-2 の “Prebuilt OpenOCD for windows and PicoProbe” にある zip ファイル
  • 設定ファイルに記述が必要。
    C:\pico\pico-examples.vscode の lauch.json と settings.json が対象。

launch.json

<span class="line"><span style="color: #ECEFF4">{</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">version</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">0.2.0</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">configurations</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">[</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span>
<span style="color: #ECEFF4">{</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">name</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">Pico Debug</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">cwd</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">${workspaceRoot}</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">executable</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">${command:cmake.launchTargetPath}</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">request</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">launch</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">type</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">cortex-debug</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">servertype</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">openocd</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">gdbPath</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">C:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2021.10/bin/arm-none-eabi-gdb.exe</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">device</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">RP2040</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">configFiles</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">[</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">c:/pico/openOCD/tcl/interface/picoprobe.cfg</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">c:/pico/openOCD/tcl/target/rp2040.cfg</span>
<span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span>
<span style="color: #ECEFF4">],</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">svdFile</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">${env:PICO_SDK_PATH}/src/rp2040/hardware_regs/rp2040.svd</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">runToMain</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #81A1C1">true</span>
<span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">postRestartCommands</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">[</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">break main</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">continue</span>
<span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span>
<span style="color: #ECEFF4">]</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span>
<span style="color: #ECEFF4">}</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span>
<span style="color: #ECEFF4">]</span></span>
<span class="line"><span style="color: #ECEFF4">}</span></span>

setting.json

<span class="line"><span style="color: #ECEFF4">{</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">cmake.statusbar.advanced</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">{</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">debug</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">{</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">visibility</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">hidden</span>
<span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span>
<span style="color: #ECEFF4">},</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">launch</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">{</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">visibility</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">hidden</span>
<span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span>
<span style="color: #ECEFF4">},</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">build</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">{</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">visibility</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">hidden</span>
<span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span>
<span style="color: #ECEFF4">},</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">buildTarget</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">{</span></span>
<span class="line"><span style="color: #D8DEE9FF">      </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">visibility</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">hidden</span>
<span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span>
<span style="color: #ECEFF4">}</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span>
<span style="color: #ECEFF4">},</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">cmake.buildBeforeRun</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #81A1C1">true</span>
<span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">C_Cpp.default.configurationProvider</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">ms-vscode.cmake-tools</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">cortex-debug.openocdPath</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">c:/pico/openocd/openocd.exe</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #8FBCBB">cortex-debug.gdbPath</span>
<span style="color: #ECEFF4">"</span>
<span style="color: #ECEFF4">:</span>
<span style="color: #D8DEE9FF"> </span>
<span style="color: #ECEFF4">"</span>
<span style="color: #A3BE8C">arm-none-eabi-gdb</span>
<span style="color: #ECEFF4">"</span></span>
<span class="line"><span style="color: #ECEFF4">}</span></span>

コメントを残す

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