OpenOCDを導入し、RP2040とSWDにて接続する
基本的には公式マニュアル(Getting started with Raspberry Pi Pico)のAppendix A: Using PicoprobeのMacの項を参照して作業すればOKですが、DAPLink/CMSIS-DAPボードを使用するためにいくつか変更点があります。
まずは作業用フォルダとして「work」を作成し、以降の手順はその中で行います。
1 2 |
$ mkdir work $ cd work |
OpenOCDはHomebrewからもインストール出来るのですがRP2040の設定が無いので、Raspberry PiのGithubからソースコードを落としてきてビルドします。
ビルドに必要なツール類をHomebrewにてインストールします。いくつかは既にインストールされているかもしれません。
1 2 |
$ brew install libtool automake libusb wget pkg-config gcc texinfo $ export PATH="/usr/local/opt/texinfo/bin:$PATH" |
Raspberry PiのGithubからOpenOCDをクローンします。
1 |
$ git clone https://github.com/raspberrypi/openocd.git --branch rp2040 --depth=1 |
下記手順でCMSIS-DAP用ビルドの準備をします。
1 2 3 |
$ cd openocd $ ./bootstrap $ ./configure --enable-cmsis-dap --disable-werror |
configureのログの最後は下記のようになるはずです。CMSIS-DAP Compliant Debuggerが”yes”になっていることを確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
OpenOCD configuration summary -------------------------------------------------- MPSSE mode of FTDI based devices yes (auto) Raspberry Pi Pico Probe yes (auto) ST-Link Programmer yes (auto) TI ICDI JTAG Programmer yes (auto) Keil ULINK JTAG Programmer yes (auto) Altera USB-Blaster II Compatible yes (auto) Bitbang mode of FT232R based devices yes (auto) Versaloon-Link JTAG Programmer yes (auto) TI XDS110 Debug Probe yes (auto) CMSIS-DAP v2 Compliant Debugger yes (auto) OSBDM (JTAG only) Programmer yes (auto) eStick/opendous JTAG Programmer yes (auto) Andes JTAG Programmer yes (auto) USBProg JTAG Programmer yes (auto) Raisonance RLink JTAG Programmer yes (auto) Olimex ARM-JTAG-EW Programmer yes (auto) CMSIS-DAP Compliant Debugger yes Nu-Link Programmer yes (auto) Cypress KitProg Programmer yes (auto) Altera USB-Blaster Compatible yes (auto) ASIX Presto Adapter yes (auto) OpenJTAG Adapter yes (auto) Linux GPIO bitbang through libgpiod no SEGGER J-Link Programmer yes (auto) Use Capstone disassembly framework yes (auto) |
ビルドします。
1 2 |
$ make -j4 $ sudo make install |
openocd/tcl/interfaces/cmsis-dap.cfgを下記のように編集します。(9,10行目を追加)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# # ARM CMSIS-DAP compliant adapter # # http://www.keil.com/support/man/docs/dapdebug/ # adapter driver cmsis-dap transport select swd adapter speed 4000 # Optionally specify the serial number of CMSIS-DAP usb device. #cmsis_dap_serial 02200201E6661E601B98E3B9 |
DAPLinkボードとターゲットのSeeed XIAO RP2040をMacに接続しOpenOCDを起動します。下記のようにメッセージが表示されれば成功です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
$ src/openocd -f interface/cmsis-dap.cfg -f target/rp2040.cfg -s tcl Open On-Chip Debugger 0.11.0-g228ede4 (2022-10-20-17:39) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html adapter speed: 4000 kHz Info : Hardware thread awareness created Info : Hardware thread awareness created Info : RP2040 Flash Bank Command Info : Listening on port 6666 for tcl connections Info : Listening on port 4444 for telnet connections Info : CMSIS-DAP: SWD Supported Info : CMSIS-DAP: FW Version = 2.1.0 Info : CMSIS-DAP: Serial# = 07650001066bff323532543457250632a5a5a5a597969908 Info : CMSIS-DAP: Interface Initialised (SWD) Info : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Info : CMSIS-DAP: Interface ready Info : clock speed 4000 kHz Info : SWD DPIDR 0x0bc12477 Info : SWD DLPIDR 0x00000001 Info : SWD DPIDR 0x0bc12477 Info : SWD DLPIDR 0x10000001 Info : rp2040.core0: hardware has 4 breakpoints, 2 watchpoints Info : rp2040.core1: hardware has 4 breakpoints, 2 watchpoints Info : starting gdb server for rp2040.core0 on 3333 Info : Listening on port 3333 for gdb connections |
コメント