2010年(49)
分类: 嵌入式
2010-09-07 14:26:18
http://developer.berlios.de/projects/openocd/
使用openrd为实验板自带的openocd程序及板子上的ft2232d方案
modprobe –v ftdi_sio vendor=0x0403 product=0x9e09
可以看到共加载了usbserial.ko 和ftdi_sio.ko两个模块,这两个模块在lib/modules/driver/usb/serial目录下。
如果加载成功,并且找到ft2232d的usb装rs232及jtag硬件,那么在dev目录下出现ttyUSB0和ttyUSB1,其中,ttyUSB1使用minicom可以作为串口使用了。
Pc机和openjtag直间不要使用usbhub。
运行后,找不到jtag接口信息,无法继续。难道硬件有问题?
在MSYS+MinGW环境中。
下载openocd
其根目录下,读README和INSTALL两个文档,有介绍如何编译、安装。
(1)./configure
./configure –prefix=/local/openocd --enable-ft2232_ftd2xx –with-ftd2xx-win32-zipdir=/local/ftd2xx |
关于使用ft2232,必须指定ftd2xx驱动,这部分重点看看README帮助文档。我是从ftdi官方网站上下载的win32的zip文件,加压到了local/ftd2xx中。
(2)make
(3)make install
将OpenOCD安装到configure阶段使用prefix指定的地方/local/openocd。
编译过程不需要svn的支持,不要被网上的一个网页误导。
根目录下面有三个子目录:
(1)bin
该目录下为openocd主程序;
(2)lib
Openocd库文件
(3)share
此目录底下东西较多,目前我看到最关键的目录是share\openocd\scripts,在该目录下openocd的配置文件及相关tcl脚本。
如上所述,配置文件在share\openocd\scripts目录。该目录的具体内容其实可以参考openocd手册,不过大概组织关系在这里说一下。
(1)board
该目录下为板级配置文件,一般是运行openocd直接指定的配置文件。这些配置文件会依赖其他目录interface和target中的配置文件。
(2)interface
该目录下为JTAG接口的配置文件。
(3)target
该目录下位CPU的配置文件。
具体运行参考openocd手册,这里只说使用openocd的一些技巧。
使用jtag时,最好使的cpu复位后不执行任何指令直接halt,相关指令为:reset halt,另外还有类似指令reset run、reset init,这些指令在openocd手册中都有说明。
Openocd的配置文件为tcl脚本,所以使用proc可以定义一个类似函数的接口。通过使用proc,可以省去不少麻烦。
我在MinGW编译出的openocd可以在windows的cmd中直接运行,可是如果jtag接口没有和板子接口,会出现程序死掉的情况,而且退不掉。此时重新在板子带电情况下拔插一下openjtag,然后重新打开新的cmd运行openocd即可。不过,此时必须更改telnet_port,因为,刚才死掉的openocd占用着原先的端口。
如果使用了dos格式保存了,会出问题,必须使用dos2unix命令。