下载软件 (三) openocd 的编译
openocd in windowsgithub.com/wuxx/openocd-toolboxubuntu 22.04 下编译 openocd第一种方式 nosubmodule安装依赖sudo apt-get install libtool libtool pkg-config libhidapi-dev#hidapiis requiredforadapterCMSIS-DAP v1 compliant dongle (HID)bootstrapgit clone https://github.com/openocd-org/openocd.gitcd openocd/./bootstrap nosubmodule # 过程中 不会下载jimtcl(到./jimtcl)和libjaylink(到./src/jtag/drivers/libjaylink/libjaylink)配置及安装# 在这里, 我只需要 remote-bitbang 和 cmsis-dap(V1) , 所以我如下配置 adapter./configure --enable-remote-bitbangyes --enable-cmsis-dapyes\--enable-angieno --enable-armjtagewno --enable-bitqno --enable-buspirateno --enable-dummyno --enable-esp-usb-jtagno --enable-ft232rno --enable-ftdino --enable-jtag-dpino --enable-jtag-vpino --enable-kitprogno --enable-libusb-helperno --enable-linuxspidevno --enable-mpsseno --enable-nulinkno --enable-opendousno --enable-osbdmno --enable-rlinkno --enable-rlink-speed-tableno --enable-stlinkno --enable-ti-icdino --enable-ulinkno --enable-usbprogno --enable-vdebugno --enable-vsllinkno --enable-xds110no --enable-xlnx-pcie-xvcno --enable-usb-blaster-2no --enable-usb-blasterno --enable-cmsis-dap-v2no# 默认会安装在 /usr/localmakesudomakeinstall第二种方式 with-submodules安装依赖sudo apt-get install libtool libtool pkg-config libhidapi-dev libjim0.79libjim-devbootstrapgit clone https://github.com/openocd-org/openocd.gitcd openocd/./bootstrap #过程中 会通过git 下载 两个submodule:jimtcl(到./jimtcl)和libjaylink(到./src/jtag/drivers/libjaylink/libjaylink)配置及安装# 在这里, 我只需要 remote-bitbang 和 cmsis-dap(V1) , 所以我如下配置 adapter./configure --enable-remote-bitbangyes --enable-cmsis-dapyes\--enable-angieno --enable-armjtagewno --enable-bitqno --enable-buspirateno --enable-dummyno --enable-esp-usb-jtagno --enable-ft232rno --enable-ftdino --enable-jtag-dpino --enable-jtag-vpino --enable-kitprogno --enable-libusb-helperno --enable-linuxspidevno --enable-mpsseno --enable-nulinkno --enable-opendousno --enable-osbdmno --enable-rlinkno --enable-rlink-speed-tableno --enable-stlinkno --enable-ti-icdino --enable-ulinkno --enable-usbprogno --enable-vdebugno --enable-vsllinkno --enable-xds110no --enable-xlnx-pcie-xvcno --enable-usb-blaster-2no --enable-usb-blasterno --enable-cmsis-dap-v2no# 默认会安装在 /usr/localmakesudomakeinstalladapter 相关的文件#jtag-common./src/jtag/adapter.o./src/jtag/commands.o./src/jtag/core.o./src/jtag/interface.o./src/jtag/interfaces.o./src/jtag/swim.o./src/jtag/tcl.o#driver-common./src/jtag/drivers/libocdjtagdrivers_la-driver.o#bitbang./src/jtag/drivers/libocdjtagdrivers_la-bitbang.o./src/jtag/drivers/libocdjtagdrivers_la-remote_bitbang.o#libusb1common./src/jtag/drivers/libocdjtagdrivers_la-libusb_helper.o # 和 libusb-1.0-0-dev:amd64:/usr/include/libusb-1.0/libusb.h 有关系#cmsis-dap-v1./src/jtag/drivers/libocdjtagdrivers_la-cmsis_dap_usb_hid.o./src/jtag/drivers/libocdjtagdrivers_la-cmsis_dap.o我为什么要升级到 openocd upstream我怀疑 v0.11.0的 openocd 是有些问题的,然后想升级 openocd 到 最新版 去仓库:https://github.com/openocd-org/openocd不管是72ff2e2d9f869cd19951ce101e5ac61209ec434d 还是 v0.12.0,走remote_bitbang 协议,都不能进行到 如下 这一步骤 Info:JTAG tap:riscv.cpu tap/device found:0x1e200a6f(mfg:0x537(Wuhan Xun Zhan Electronic Technology),part:0xe200,ver:0x1)但是 v0.11.0.是可以的,我怀疑某笔提交导致了这个问题.以 src/jtag/drivers/remote_bitbang.c 的 提交记录 开始二分查找,找到了这笔问题提交5765a0ce14485aadc6b74c6e2b4f15b73df14603(Speed up remote bitbang)然后在 所有的提交记录 中 验证,确实是这一笔提交导致的 revert 后,修复了 冲突,然后就可以了.Open On-Chip Debugger0.12.0dev-01914-g72ff2e2d9-dirty(2025-03-25-10:44)Licensed under GNU GPL v2 For bug reports,read http://openocd.org/doc/doxygen/bugs.htmladapter speed:1000kHz Info:Initializing remote_bitbang driver Info:Connecting to192.168.20.240:44853Info:remote_bitbang driver initialized Info:Note:The adapterremote_bitbangdoesnt support configurable speed Info:JTAG tap:riscv.cpu tap/device found:0x1e200a6f(mfg:0x537(Wuhan Xun Zhan Electronic Technology),part:0xe200,ver:0x1)Info:datacount3progbufsize1Info:Examined RISC-V core;found2harts Info:hart0:XLEN32,misa0x60Info:[riscv.cpu]Examination succeed Info:[riscv.cpu]starting gdb server on3333Info:Listening on port3333forgdb connections Info:Listening on port6666fortcl connections Info:Listening on port4444fortelnet connections Info:acceptinggdbconnection on tcp/3333cmsis-dap 插入ubuntu时的log[2039.235628]usb1-2.1:new full-speed USB device number4using uhci_hcd[2039.528765]usb1-2.1:New USB device found,idVendorc251,idProductf001,bcdDevice1.00[2039.528784]usb1-2.1:New USB device strings:Mfr1,Product2,SerialNumber3[2039.528790]usb1-2.1:Product:CMSIS-DAP-JYD[2039.528794]usb1-2.1:Manufacturer:CMSIS-DAP by ARM[2039.528798]usb1-2.1:SerialNumber:0001A0000001[2039.545223]hid-generic0003:C251:F001.0002:hiddev0,hidraw1:USB HID v1.00Device[CMSIS-DAP by ARM CMSIS-DAP-JYD]on usb-0000:02:00.0-2.1/input2[2039.645198]cdc_acm1-2.1:1.0:ttyACM0:USB ACM device[2039.645214]usbcore:registered new interface driver cdc_acm[2039.645215]cdc_acm:USB Abstract Control Model driverforUSB modems and ISDN adapterscentos 7.7 安装 openocd-v0.12.0手动安装 automake-1.4:https://ftp.gnu.org/gnu/automake/automake-1.14.tar.gzsudo yum install libusb1-devel sudo yum install texinfo sudo yum install-y libtool sudo yum install-y autoconf-archive export ACLOCAL_PATH/usr/share/aclocal./bootstrap nosubmodule./configure--enable-remote-bitbangyes--enable-cmsis-dapyes--enable-angieno--enable-armjtagewno--enable-bitqno--enable-buspirateno--enable-dummyno--enable-esp-usb-jtagno--enable-ft232rno--enable-ftdino--enable-jtag-dpino--enable-jtag-vpino--enable-kitprogno--enable-libusb-helperno--enable-linuxspidevno--enable-mpsseno--enable-nulinkno--enable-opendousno--enable-osbdmno--enable-rlinkno--enable-rlink-speed-tableno--enable-stlinkno--enable-ti-icdino--enable-ulinkno--enable-usbprogno--enable-vdebugno--enable-vsllinkno--enable-xds110no--enable-xlnx-pcie-xvcno--enable-usb-blaster-2no--enable-usb-blasterno--enable-cmsis-dap-v2no--disable-internal-libjaylink--prefixrealpath~/work/openocd/openocd_install_dir make install