使用ft2232H作为jtag通过openocd调试fpga。xcvu9P(virtex-II)fpga型号。
openocd是什么?自行百度;FT2232H官网文档:自行百度。
Loading a Xilinx Spartan 6 bitstream with OpenOCD | Electronics etc…
(上网址需要梯子)
具体配置:以118子卡为例(使用板上自带的ft232h芯片):
Ftdi芯片驱动安装:
https://ftdichip.com/wp-content/uploads/2021/08/CDM212364_Setup.zip
用于识别ft2232h芯片(包括两路serial port和两个com口)
https://ftdichip.com/wp-content/uploads/2022/05/FT_Prog_v3.12.29.638-Installer.zip
exe文件用于更改bus的接口方式,虚拟串口或者D2xxx,使用jtag方式必须改为D2xxx方式(具体可查看ft文档)。
如下图所示F5扫描出对应的device更改之后点击闪电符号用于保存更改否则不生效。
https://sysprogs.com/files/tools/UsbDriverTool/UsbDriverTool-2.1.exe
usb_driver驱动。用于将serial_port驱动更改为LibUsb_Winusb(为了后续openocd),解压进入exe之后双击更改驱动类型。
https://sysprogs.com/files/tools/UsbDriverTool/UsbDriverTool-2.1.exe
usb_driver驱动。用于将serial_port驱动更改为LibUsb_Winusb(为了后续openocd),解压进入exe之后双击更改驱动类型。
https://codeload.github.com/xpack-dev-tools/openocd-xpack/zip/refs/tags/v0.11.0-4
openocd,用于配置ft2232H芯片,功能强大,可用于udb-jtag/jlink/ulink等,具体功能自行百度。
在windows上操作,将cmd命令加载到右键快捷方式中(具体操作百度)。
Openocd基本操作 -f加载配置文件,-d显示deubg等级,-c commond 加载对应的commond。
配置适用于FT232H的118命令:
adapter driver ftdi
# ftdi_channel 0 is port ADBUS, ftdi_channel 1 is port BDBUS.
#ftdi channel 1
# VID and PID from ft_pro(sw)
ftdi vid_pid 0x0403 0x6014
transport select jtag
# TCK frequency (xxxkhz)
adapter speed 6000
# ftdi_layout_init [data] [direction]
# 指定FTDI GPIO的初始数据和方向,16bit数据宽度。
# 参数data中1表示高电平,0表示低电平,而参数direction中1表示输出,0表示输入(注意与常规的设定不同)
ftdi layout_init 0x00e8 0x60eb
reset_config none
一定要将.cfg脚本放置在script目录下,(内置的一些tcl脚本会在该目录下寻找)
执行成功之后,光标不会退出,说明openocd已经将ft232配置为jtag。并开通了telnet 4444端口,使用MobaXterm进行telnet连接;
Localhost也可以输入当前主机IP。
输入scan_chain可以看到在链上的所有设备以及状态。Pwd显示当前安装目录等。
如图所示指定两次-f,且先后顺序应该一致。报错,找不到CHIP,打开xcu配置文件,加一行: set CHIP XCKU9P;之后从新编译。
如图所示。没有err说明进入了kernel
连接telnet,在moba terminal中输入:
>init
>xcu_program xcu.tap (连接目标板的tap端口)
>pld load 0 D:/GDC_temp/chuanzhi_bit/2022.06.20_1/lyncam_chip.bit (注意bit地址应该遵循linux)等待加载完毕
>exit
9.烧写成功之后program led变为蓝色。说明bit已经加载!