FT232HのJTAG调试器
FT232H是一颗高速单通道USB UART / FIFO 芯片
这款高速单通道桥接芯片以USB高速(每秒480兆位)速率运行,具有灵活的串行接口或并行FIFO接口, 数据传输速率高达每秒40兆字节。使用串行EEPROM接口,该设备可以被配置成为各种异步和同步串行标准, 例如JTAG
、SPI、I2C和UART以及同步和异步并行FIFO接口。
OpenOCD(Open On-Chip Debugger)开源片上调试软件
用于调试、编程和测试嵌入式系统,支持多种调试硬件和接口(如 JTAG 和 SWD)。
因此,可以通过OpenOCD+FT232H对多种架构的芯片进行调试。
准备材料
FT232H FTDI - FT232H (ftdichip.cn)
OpenOCD源码 Releases · openocd-org/openocd (github.com)
MSYS2 MSYS2
FT_Prog FTDI 实用工具 (ftdichip.cn)
Zadig Zadig - USB driver installation made easy (akeo.ie)
OpenOCD编译
在OpenOC官方仓库有Windows发行版,但更新缓慢。最新的源码通常会修复很多bug和增加支持更多设备,为了使用最新的,可以自己编译源码。
安装MSYS2
为MSYS2添加镜像源
vim /etc/pacman.d/mirrorlist.mingw32
Server = https://mirrors.tuna.tsinghua.edu/msys2/mingw/i686/
vim /etc/pacman.d/mirrorlist.mingw64
https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/
vim /etc/pacman.d/mirrorlist.msys
https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
也可以直接找到文件,添加。在msys2安装目录下的\etc\pacman.d
使用MSYS2 MINGW64编译OpenOCD
安装依赖
# 更新系统文件
pacman -Syuu
# 安装依赖关系
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 mingw-w64-x86_64-arm-none-eabi-gcc mingw-w64-x86_64-capstone
# 克隆代码
git clone https://git.code.sf.net/p/openocd/code openocd
# 进入目录
cd openocd
# OpenOCD,启动
./bootstrap
mkdir openocd-build
cd openocd-build
../configure --enable-ftdi
# 编译与安装
make && make install
# 查看编译后 openocd.exe 位置
whereis openocd # openocd: /mingw64/bin/openocd.exe
# 查看编译 openocd 相关配置文件位置
find / -name openocd # /mingw64/share/openocd
打包OpenOCD
通过sh脚本
#! /bin/bash
OBJ_DIR=openocd
rm -rf ${OBJ_DIR}
mkdir ${OBJ_DIR}
mkdir ${OBJ_DIR}/bin
mkdir ${OBJ_DIR}/share
# 复制主程序
cp /mingw64/bin/openocd.exe ${OBJ_DIR}/bin/
# 复制一些依赖 DLL 文件
cp /mingw64/bin/libcapstone.dll ${OBJ_DIR}/bin/
cp /mingw64/bin/libftdi1.dll ${OBJ_DIR}/bin/
cp /mingw64/bin/libhidapi-0.dll ${OBJ_DIR}/bin/
cp /mingw64/bin/libusb-1.0.dll ${OBJ_DIR}/bin/
# 复制配置文件
cp /mingw64/share/openocd ${OBJ_DIR}/share/ -r
# 打 zip 包
zip -r ${OBJ_DIR}.zip ${OBJ_DIR}/
需要提前安装git和zip
FT232H设置以及添加驱动
FT_Prog 将FT232H设置为D2XX模式,D2XX 模式允许用户直接访问 FTDI 芯片的功能。
Zadig为FT232H添加驱动
OpenOCD测试
FT232HJTAG的引脚号
对于 SWD 接口使用 interface/ftdi/ft232h-module-swd.cfg
对于 JTAG接口使用 -f interface/jlink.cfg
给ESP32烧录程序
给stm32f103烧录程序
连接RP2040
OpenOCD配置文件cfg
OpenOCD流程,首先创建并编写后缀为cfg的配置,通过控制台或者IDE使用该cfg文件中的配置指令将程序下载到芯片里
刷写Digilent JTAG-SMT2
Digilent JTAG-SMT2适用于 Xilinx 现场可编程门阵列 (FPGA)
使用DigilentFTDIConfig.exe
评论区