[开发工具]Windows下编译OpenOCD过程分享(基于MSYS2)

前言
前段时间用Xpack打包的OpenOCD可执行文件发现无法下载APM32F4的芯片,后面研究发现是OpenOCD未支持APM32系列MCU导致的,我在添加芯片支持的过程中尝试了许多方法,WSL2、Cygwin等环境去编译,发现都有各种各样的问题。现将能够顺利编译的MSYS2编译的过程给大家分享一下。

1 安装MSYS2
安装链接如下MSYS2 (http://www.msys2.org/),直接按照软件步骤一步步安装即可。安装完软件后需要对其环境需要更新,建议其镜像源切换至国内的。以下文件均在其安装目录下可以找到。

编辑 /etc/pacman.d/mirrorlist.mingw32 ,在文件开头添加:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686
编辑 /etc/pacman.d/mirrorlist.mingw64 ,在文件开头添加:
r = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64


编辑 /etc/pacman.d/mirrorlist.msys ,在文件开头添加:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch


2 安装相应的依赖环境点击相应的命令行软件打开命令行窗口,这里选择“MSYS2 MINGW64”。
 




1. 更新MSYS2,使用以下指令更新系统文件。直至无更新内容为止。

   pacman -Syuu


2. 安装依赖环境,

   不同的操作系统对安装的环境有些许的差异要求,一般而言不同的软件依赖包有差异的一般为64bit的标识为“x86_64”,而32bit系统一般为“i686”。其相关的Pack可以在该网址搜索到。[Base Packages - MSYS2 Packages](https://packages.msys2.org/base)

   64bit:

pacman -S libtool autoconf automake texinfo pkg-config make autogen git unzip bzip2 base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-libusb mingw-w64-x86_64-libusb-compat-git mingw-w64-x86_64-hidapi mingw-w64-x86_64-libftdi</div><div>   mingw-w64-x86_64-arm-none-eabi-gcc mingw-w64-x86_64-capstone
   32bit:
pacman -S libtool autoconf automake texinfo pkg-config make autogen git unzip bzip2 base-devel mingw-w64-i686-toolchain mingw-w64-i686-libusb mingw-w64-i686-libusb-compat-git mingw-w64-i686-hidapi mingw-w64-i686-libftdi mingw-w64-i686-capstone


3 下载与编译OpenOCD

3.1 下载OpenOCD

使用以下指令将克隆最新的OpenOCD源码至本地:

mkdir -p ~/build; cd ~/build

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

cd ~/build/openocd/

./bootstrap
如果克隆指定版本的OpenOCD(如),可以使用下面的指令:
git clone -b 2.20.3 --depth=1 https://git.code.sf.net/p/openocd/code  openocd

3.2 配置OpenOCD

使用以下指令配置OpenOCD,这里选择“--enable-ftdi”配置,其他配置(只要安装了相应的依赖)会默认开启:
mkdir build

cd build

../configure --enable-ftdi

 执行完以上指令后,命令行窗口会最终显示:
 



3.3  编译OpenOCD

使用以下指令编译OpenOCD:

make

make install
编译完毕OpenOCD后就可以将相应的文件复制出来完成对OpenOCD的打包压缩了。
openocd-v0.12

 ├── bin

 │   ├── libftdi1-config

 │   ├── libftdi1.dll

 │   ├── libgcc_s_sjlj-1.dll

 │   ├── libhidapi-0.dll

 │   ├── libusb-1.0.dll

 │   ├── libwinpthread-1.dll

 │   └── openocd.exe

 ├── include

 │   ├── capstone

 │   │   ├── arm.h

 │   │   ├── arm64.h

 │   │   ├── capstone.h

 │   │   ├── evm.h

 │   │   ├── m680x.h

 │   │   ├── m68k.h

 │   │   ├── mips.h

 │   │   ├── platform.h

 │   │   ├── ppc.h

 │   │   ├── sparc.h

 │   │   ├── systemz.h

 │   │   ├── tms320c64x.h

 │   │   ├── x86.h

 │   │   └── xcore.h

 │   ├── hidapi

 │   │   └── hidapi.h

 │   ├── libftdi1

 │   │   └── ftdi.h

 │   └── libusb-1.0

 │       └── libusb.h

 ├── lib

 │   ├── capstone.lib

 │   ├── cmake

 │   │   └── libftdi1

 │   │       ├── LibFTDI1Config.cmake

 │   │       ├── LibFTDI1ConfigVersion.cmake

 │   │       └── UseLibFTDI1.cmake

 │   ├── libftdi1.dll.a

 │   ├── libhidapi.dll.a

 │   ├── libhidapi.la

 │   ├── libusb-1.0.dll.a

 │   ├── libusb-1.0.la

 │   └── pkgconfig

 │       ├── capstone.pc

 │       ├── hidapi.pc

 │       ├── libftdi1.pc

 │       ├── libftdipp1.pc

 │       └── libusb-1.0.pc

 └── share

     ├── doc

     │   └── hidapi

     │       ├── AUTHORS.txt

     │       ├── LICENSE-bsd.txt

     │       ├── LICENSE-gpl3.txt

     │       ├── LICENSE-orig.txt

     │       ├── LICENSE.txt

     │       └── README.md

     ├── info

     │   ├── dir

     │   ├── openocd.info

     │   ├── openocd.info-1

     │   └── openocd.info-2

     ├── man

     │   └── man1

     │       └── openocd.1

     └── openocd

         ├── contrib

         │   ├── 60-openocd.rules

         │   └── libdcc

         ├── OpenULINK

         │   └── ulink_firmware.hex

         └── scripts

             ├── bitsbytes.tcl

             ├── board

             ├── chip

             ├── cpld

             ├── cpu

             ├── fpga

             ├── interface

             ├── memory.tcl

             ├── mem_helper.tcl

             ├── mmr_helpers.tcl

             ├── target

             ├── test

             └── tools


最后在openocd.exe 目录下运行CMD,输入openocd按下回车即可看到相应的运行信息:

 

---------------------
作者:kai迪皮
链接:https://bbs.21ic.com/icview-3269090-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值