天天看點

[開發工具]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”。

[開發工具]Windows下編譯OpenOCD過程分享(基于MSYS2)

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           

 執行完以上指令後,指令行視窗會最終顯示:

[開發工具]Windows下編譯OpenOCD過程分享(基于MSYS2)

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按下回車即可看到相應的運作資訊:

[開發工具]Windows下編譯OpenOCD過程分享(基于MSYS2)

---------------------

作者:kai迪皮

連結:https://bbs.21ic.com/icview-3269090-1-1.html

來源:21ic.com

此文章已獲得原創/原創獎标簽,著作權歸21ic所有,任何人未經允許禁止轉載。