参考:
【1】
参考文章中说明了如何确定自己的仿真器的类型(是否为ft2232)以及驱动和libusb库的安装,以及编译时./configure需要添加的参数。
以下为转载内容:
于如上信息可以看出该openjtag的核心芯片应该是FTDI公司提供的FT2232C,以及一些相关的信息
为了查看关于这个USB openjtag的更加详细的信息,我们可以执行如下命令 $lsusb查看设备的相关简要信息
我的电脑获取到如下信息
Bus 006 Device 002: ID 1457:5118 First International Computer, Inc. OpenMoko Neo1973 Debug board (V2+)
为了获取更加详细的信息我们可以采用如下命令
$ sudo lsusb -v -D /dev/bus/006/002 (解释:sudo是必须的,因为访问usb的一些操作需要超级用户权限,lsusb的使用方法可以采用man lsusb查看,006对应bus 006 ,002对应Device 002)
获取详细信息我只截取一些关键信息如下
idVendor 0x1457 First International Computer, Inc.
idProduct 0x5118 OpenMoko Neo1973 Debug board (V2+)
iManufacturer 1 www.100ask.net
iProduct 2 USB<=>JTAG&RS232
iInterface 2 USB<=>JTAG&RS232
现在知道这款openjtag工具采用的是ftdi公司的芯片,当然我们就可以需要在配置器脚本进行配置的时候加入一些相关的配置选项以支持ftdi的工具
首先需要获取芯片的相关的驱动分别在如下网站上有下载
http://www.ftdichip.com/Drivers/D2XX.htm
http://www.intra2net.com/en/developer/libftdi/download.php
直接apt-get获取稳定的版本的方式(非ftdi官方驱动)
sudo apt-get install libftdi-dev libftdi1 libtool git-core asciidoc
如果采用直接apt-get获取的方式获得libftdi的驱动,配置器的配置选项如下(具体可以参照如下网站实现 http://fun-tech.se/stm32/OpenOCD/index.php)
关于配置器的使用方法 可以直接运行如下命令 $./configure --help
./configure --enable-maintainer-mode \
--enable-ft2232_libftdi
--enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer 采用最舒适的配置方式
--enable-ft2232_libftdi Enable building support for FT2232 based devices using the libftdi driver, opensource alternate of FTD2XX 采用FTD2XX开源的驱动解决方案
如果采用FTDI官方的驱动可以采取如下方式(官方驱动方式)
下载网址 http://www.ftdichip.com/Drivers/D2XX.htm
下载完毕上述驱动后,名称为libftd2xx1.0.4.tar.gz
解压后 将ftd2xx.h和WinTypes.h都拷贝到/usr/local/include/目录下,并且在/usr/include/目录下建立软链接(需要超级用户权限),主要原因是make编译的时候需要用到这些头文件
首先进入libftd2xx1.0.4.tar.gz解压后的目录假设为 libftd2xx1.0.4
执行如下命令
$sudo cp ./ftd2xxx.h /usr/local/include/ftd2xxx.h
$sudo cp ./WinTypes.h /usr/local/include/WinTypes.h
$sudo ln -s /usr/local/include/ftd2xx.h /usr/include/ftd2xx.h
$sudo ln -s /usr/local/include/WinTypes.h /usr/include/WinTypes.h
执行完毕后,就可以执行如下命令(之前先要进入openocd的源码目录,假设ftdi驱动文件的文件夹位于openocd源码目录下文件名为libftd2xx1.0.4)
$ ./configure --enable-maintainer-mode\
--enable-ft2232_ftd2xx \
--with-ft2xx-linux-tardir=./libftd2xx1.0.4
--enable-ft2232_ftd2xx Enable building support for FT2232 based devices the FTD2XX driver from ftdichip.com 采用ftdichip提供的驱动文件
--with-ft2xx-linux-tardir 后面接ftdichip公司提供的驱动文件目录
+++++++++++++++++++++++++++++++++++++++++++++++++++
我的内容
注意事项:
1. ./configure --enable-maintainer-mode --enable-ft2232_libftdi --enable-maintainer-mode --enable-ftdi
需要增加--enable-ftdi,以增加对ftdi的支持,openocd0.10版本貌似原生是没有对ft2232接口的cfg文件,以网上提供的cfg文件运行openocd时,会提示不支持ft2232接口。
2.make时会报错:get_usb_busses相关,实际上是赋值类型转换引起的,编辑configure生成的Makefile,把-Werror删掉就ok了。
3.编译安装完成后,可以找到OPENOCD_DIR/tcl/interface/ask100.cfg配置文件,用它来启动:
openocd -f OPENOCD_DIR/tcl/interface/ask100.cfg
这时会报两个错误:
一是提示没有设置时钟频率,在配置文件中增加: jtag_rclk 500
二是提示没有设置一个什么接口,记不清了,提示选择有jtag和swi两种,按提示在配置文件中增加针对jtag的设置
再次执行openocd -f OPENOCD_DIR/tcl/interface/ask100.cfg
成功。