【2】CH347应用--在OpenOCD添加CH347-USB转JTAG接口
CH347是一款USB转多接口芯片,可在OpenOCD中增添对应接口,实现OpenOCD操作CH347,进行调试下载等应用。
一、CH347简介
CH347是一款国产USB2.0(480Mbps)转接芯片,可以通过USB转出UART、SPI、JTAG、I2C以及8路GPIO等接口。其JTAG时钟频率最高可为72Mbps且频率可调。
二、OpenOCD简介
OpenOCD是一款开源的片上调试器软件,提供了片上编程和调试功能,若需要添加新的调试器接口,可在源码中通过修改相关配置文件,并添加对应操作硬件的实现代码后编译即可实现新接口的使用。
三、为OpenOCD添加接口
OpenOCD需要识别并操作CH347,则需要添加如下文件:
1、tcl/target中添加CH347.cfg设备文件CH347.cfg
adapter driver ch347
ch347 vid_pid 0x1a86 0x55dd
adapter speed 10000
2、src/jtag/driver/ch347.c文件,设备驱动文件,提供给JTAG core操作的接口
可从仓库获取,仓库地址:https://github.com/WCHSoftGroup/ch347
四、修改配置文件
configure.ac
a.m4_define([USB1_ADAPTERS]中添加CH347接口
m4_define([USB1_ADAPTERS],[[[ftdi], [MPSSE mode of FTDI based devices], [FTDI]],[[ch347], [Mode 3 of the CH347 devices], [CH347]],[[stlink], [ST-Link Programmer], [HLADAPTER_STLINK]],[[ti_icdi], [TI ICDI JTAG Programmer], [HLADAPTER_ICDI]],[[ulink], [Keil ULINK JTAG Programmer], [ULINK]],[[usb_blaster_2], [Altera USB-Blaster II Compatible], [USB_BLASTER_2]],[[ft232r], [Bitbang mode of FT232R based devices], [FT232R]],[[vsllink], [Versaloon-Link JTAG Programmer], [VSLLINK]],[[xds110], [TI XDS110 Debug Probe], [XDS110]],[[cmsis_dap_v2], [CMSIS-DAP v2 Compliant Debugger], [CMSIS_DAP_USB]],[[osbdm], [OSBDM (JTAG only) Programmer], [OSBDM]],[[opendous], [eStick/opendous JTAG Programmer], [OPENDOUS]],[[armjtagew], [Olimex ARM-JTAG-EW Programmer], [ARMJTAGEW]],[[rlink], [Raisonance RLink JTAG Programmer], [RLINK]],[[usbprog], [USBProg JTAG Programmer], [USBPROG]],[[aice], [Andes JTAG Programmer], [AICE]]])b.AC_ARG_ENABLE 部分,添加内容如下:AC_ARG_ENABLE([ch347],AS_HELP_STRING([--enable-ch347], [Enable building support for CH347]),[build_ch347=$enableval], [build_ch347=no])c.AS_IF 部分,添加内容如下:AS_IF([test "x$build_ch347" = "xyes"], [AC_DEFINE([BUILD_CH347], [1], [1 if you want CH347.])], [AC_DEFINE([BUILD_CH347], [0], [0 if you don't want CH347.])])d.AM_CONDITIONAL 部分,添加内容如下:AM_CONDITIONAL([CH347], [test "x$build_ch347" = "xyes"])
src/jtag/interfaces.c
a.添加编译选项
#if BUILD_CH347 == 1
extern struct adapter_driver ch347_adapter_driver;
#endifb.在jtag接口列表结构体adapter_drivers中添加,此处由配置脚本来启用对应接口驱动
#if BUILD_CH347 == 1&ch347_adapter_driver,
#endif
/src/jtag/drivers/Makefile.am
a.添加编译支持
if CH347
DRIVERFILES += %D%/ch347.c
endif
五、编译
1、使用cygwin进行编译,cygwin编译依赖大概如下:
2、Cygwin进入修改好的源码目录下,进行如下步骤
1、执行./bootstrap
2、执行./configure --prefix=/home/OpenOCD/CH347 --enable-ch347 --host=i686-w64-mingw32 CFLAGS='-g -o0'
3、执行make install
4、到/home/OpenOCD/CH347文件夹下可看见编译后文件,其中bin文件下为OpenOCD可执行文件。
3、执行./configure后显示已经支持该接口,此处只编译部分接口。
至此,接口添加操作完毕,使用Windows终端,通过OpenOCD可看见已扫描到FPGA ID信息,接着即可愉快开始下一步操作了。
【2】CH347应用--在OpenOCD添加CH347-USB转JTAG接口相关推荐
- linux连接win7的打印机驱动,openWrt用CUPS当打印服务器支持多台打印机,USB打印机设置电脑添加网络USB打印机方法...
打印机对於日常生活来说,很重要吧!呵呵-没错啊!尤其我们的 Linux 主机如果未来还要作为 Printing server 的话,那么自然就得要先创建好打印机的连线啦!在本章里面我们仅谈论一下如何让 ...
- Android添加iPod USB PCM音频
在Apple的MFI文档中说明了,USB接口的播放器是需要接入USB的HID接口以及USB PCM接口. 驱动部分暂时先不说了,直接说framwork部分的添加PCM接口部分的事情了. 1.在andr ...
- 高速USB转JTAG/SPI/I2C/UART/GPIO应用
高速USB转接芯片CH347是一款集成480Mbps高速USB接口.JTAG接口.SPI接口.I2C接口.异步UART串口.GPIO接口等多种硬件接口的转换芯片. 接口示意图: 应用示意图: JTAG ...
- 科普 | USB 协议与接口
关于 USB 接口,首先要分清协议和物理接口.相同的物理接口(形态)可能搭载不同的协议,而同一协议也可能用在不同形态的接口上. 下面直接给出 USB 协议和物理接口. 一.USB 协议 USB 2 ...
- libusb usb设备访问接口库
libusb 是一个用C语言开发的跨平台的USB设备访问接口库. 驱动开发向来是内核开发中工作量最多的一块,随着USB设备的普及,大量的USB设备的驱动开发也成为驱动开发者手头上做的最多的事情.本文主 ...
- ATL--创建简单的ATL之dll工程,添加类和类的接口并在MFC中调用
资源打包 开发环境 Windows Server 2012 VS2010 Sp1 番茄助手 创建ATL简单dll工程 1.打开VS2010,新建ATL COM 项目,步骤:"文件" ...
- Android+usb+spi,Android设备如何使用USB的硬件接口
你知道Android设备如何使用USB的硬件接口吗?下面将由学习啦小编带大家来解答这个疑问吧,希望对大家有所收获! 如何处理硬件接口问题 最近业界的发展显示,智能手机/便携系统与自动化系统或机械系统之 ...
- usb网卡转接口被识别为光盘
如何解决我们的usb网卡转接口被识别为光盘 在正常情况下查进入的时候会有光盘驱动,只要点击安装即可识别为网卡 但是被我卸载了,我只能命令行msconfig来进行安全引导后再重启 重启后就会自动安装,后 ...
- FTDI FT2232H USB TO JTAG学习笔记(一)基础概念
文章目录 一.FT2232H 和 JTAG 简介 1.1 FT2232H 1.2 JTAG 二.MPSSE 配置 2.1 MPSSE简介 2.2 串行协议配置 参考文献 注:转载请注明出处 记录下学习 ...
- USB TYPE C接口拆解及定义、USB3.1标准说明
FROM:http://www.lulian.cn/article-279-cn.html USB TYPE C接口以其纤薄.正反可插拔等诸多优势,得到了广泛运用,我们先看看USB TYPE C接头拆 ...
最新文章
- [转]Apache Commons IO入门教程
- Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作
- Java从键盘输入若干数_用java编程序:从键盘输入若干个整数,输出这些数中大于其平均值的数。...
- linux memcpy 效率,memcpy每秒字节速率
- GARFIELD@01-25-2005
- es6学习 http://es6.ruanyifeng.com/
- 在ubuntu linux 中编写一个自己的bash脚本
- 暑假作业点评:运动会管理系统设计说明书
- STM32F072RB 实作笔记(一)- Keil 安装
- 中间件——《中间件技术原理及应用》考试复习重点
- [亲测可用]Premiere Pro 2020视频剪辑软件,premiere2020软件安装包
- 热炉法则:规章制度面前人人平等 | 每天成就更大成功
- redis 默认过期策略_redis过期策略
- 红烧鸡翅(简单又好吃)
- 1、解读中台 -- 什么是中台
- 【短视频运营】查找对标账号 ( 关键词搜索 | 第三方工具查找 | 对标账号学习 | 视频文案 | #话题 | 评论内容 | 历史视频 )
- c语言合并wav文件,如何将两个WAV文件合并/合并为一个WAV文件?
- 记录来到结算页面的客户
- 《Java程序设计》第二周学习总结
- 计算机毕业设计房地产客服管理系统xns程序