打印
[开发工具]

openocd源码编译方法

[复制链接]
253|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cx1524|  楼主 | 2025-6-30 17:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

[i=s] 本帖最后由 cx1524 于 2025-7-1 09:33 编辑 [/i]<br /> <br />

有时我们会因为种种需求要去改动openocd的源码来适配我们的设备,那么我们就需要去搭建自己的openocd开发环境,以及打包修改后的openocd定制版来给到别人。这篇文章主要介绍的是openocd的开发环境搭建,以及使用源码打包的方法。

openocd的编译环境为linux,这里以WSL下的Ubuntu系统为例,演示如何完成openocd的开发环境搭建以及windows版本的openocd打包方法。

如有错误,还望斧正

依赖与工具

首先我们需要安装一些openocd打包时要用到的依赖和工具(有一些依赖linux会自带):

  • git
  • make
  • libtool
  • pkg-config
  • libjim-dev
  • autoconf
  • automake
  • texinfo
  • minge-w64
  • build-essential
  • libusb-1.0-0-dev (libftdi库要用到)
  • cmake (libftdi库要用到)
  • libconfuse-dev (libftdi库要用到)

使用指令安装依赖:

sudo apt update 
sudo apt install git make libtool pkg-config libjim-dev autoconf automake texinfo mingw-w64 build-essential libconfuse-dev cmake libusb-1.0-0-dev

接下来我们需要准备一些openocd会用到的库:

  • libusb-1.0 (必要)
  • libftdi (可选,用于FTDI)
  • HIDAPI (可选,用于CMSIS-DAP)
  • libjaylink (可选,用于J-Link)

这里我们想要使用的是CMSIS-DAP,且要输出的是windows环境下的openocd,所以我们只需要编译出libusb-1.0和HIDAPI的dll库。

首先用git将这些项目的源码拉取下来:

git clone https://github.com/libusb/libusb.git 
git clone https://github.com/libusb/hidapi.git

接着逐个编译它们

  • libusb
./bootstrap.sh
mkdir
build
cd build
../configure --prefix=${HOME}/Build/libusb --host=x86_64-w64-mingw32 make -j4 make install

如何中途出现了错误可以使用`make clean`清除编译文件,重新编译

  • hidapi
./bootstrap 
mkdir build 
cd build 
../configure --prefix=${HOME}/Build/hidapi --host=x86_64-w64-mingw32 
make -j4 
make install

此时查看 ${HOME}/Build目录,会发现多了libusb和hidapi两个目录,这两个目录中的bin目录中存放了libusb和hidapi的dll库。

openocd

接下来开始准备编译openocd,先用git拉取openocd源码:

git clone git://git.code.sf.net/p/openocd/code openocd

[!TIP]

如何使用的第三方openocd,请更改git clone地址。

openocd源码中使用了子模块jimtcl,我们还需更新它的子模块:

cd openocd 
git submodule update --init

[!NOTE]

请注意,如果在编译时出现 check for jim.h.. no错误,则需要我们手动编译一次jimtcl,cd到jimtcl目录下,执行 ./configure,然后 make,最后 sudo make install

接着编译openocd:

./bootstrap 
./configure --prefix=\${HOME}/Build/openocd --host=x86_64-w64-mingw32 
make -j4 
make install

此时可以在 ${HOME}/Build目录看到已编译好的openocd文件。

但要想其能运行,我们还需将之前的两个dll库拷贝到openocd的bin目录下,使用命令:

cp ${HOME}/Build/libusb/bin/libusb-1.0.dll ${HOME}/Build/openocd/bin 
cp ${HOME}/Build/hidapi/bin/libhidapi-0.dll ${HOME}/Build/openocd/bin

接着将openocd打包成压缩包即可

  • tar.gz
tar -vcf openocd.tar \${HOME}/Build/openocd gzip openocd.tar
  • zip
zip -r openocd.zip \${HOME}/Build/openocd

使用特权

评论回复
沙发
转瞬回声| | 2025-6-30 20:31 | 只看该作者
看着都难。
我还是使用我的Keil软件来完成吧

使用特权

评论回复
板凳
codingtuzi| | 2025-7-1 09:49 | 只看该作者
OpenOCD 的安装依赖要这么多啊!

使用特权

评论回复
地板
夜幕叙事曲| | 2025-7-1 10:06 | 只看该作者
OpenOCD不可以直接Ubuntu下安装吗?
一直想使用,但又觉得其调试效率低下。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

13

帖子

0

粉丝