Chinaunix首页 | 论坛 | 博客
  • 博客访问: 222299
  • 博文数量: 49
  • 博客积分: 2101
  • 博客等级: 大尉
  • 技术积分: 525
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-07 10:38
文章分类

全部博文(49)

文章存档

2010年(49)

我的朋友

分类: 嵌入式

2010-09-07 14:26:18

1 官方网站

http://developer.berlios.de/projects/openocd/

2 linux下使用openocd+openjtag

使用openrd为实验板自带的openocd程序及板子上的ft2232d方案

2.1 安装openjtag驱动

modprobe –v ftdi_sio vendor=0x0403 product=0x9e09

可以看到共加载了usbserial.ko ftdi_sio.ko两个模块,这两个模块在lib/modules/driver/usb/serial目录下。

如果加载成功,并且找到ft2232dusbrs232jtag硬件,那么在dev目录下出现ttyUSB0ttyUSB1,其中,ttyUSB1使用minicom可以作为串口使用了。

Pc机和openjtag直间不要使用usbhub

 

2.2 开启openocd

运行后,找不到jtag接口信息,无法继续。难道硬件有问题?

 

3 自己编译windows下的openocd

3.1 编译过程

MSYS+MinGW环境中。

下载openocd0.4.0;使用release版本,不要使用git下载。

其根目录下,读READMEINSTALL两个文档,有介绍如何编译、安装。

1./configure

./configure –prefix=/local/openocd --enable-ft2232_ftd2xx –with-ftd2xx-win32-zipdir=/local/ftd2xx

关于使用ft2232,必须指定ftd2xx驱动,这部分重点看看README帮助文档。我是从ftdi官方网站上下载的win32zip文件,加压到了local/ftd2xx中。

2make

3make install

OpenOCD安装到configure阶段使用prefix指定的地方/local/openocd

编译过程不需要svn的支持,不要被网上的一个网页误导。

3.2 生成的openocd目录树结构

3.2.1 根目录

       根目录下面有三个子目录:

       1bin

       该目录下为openocd主程序;

       2lib

       Openocd库文件

       3share

       此目录底下东西较多,目前我看到最关键的目录是share\openocd\scripts,在该目录下openocd的配置文件及相关tcl脚本。

3.2.1 openocd配置文件

       如上所述,配置文件在share\openocd\scripts目录。该目录的具体内容其实可以参考openocd手册,不过大概组织关系在这里说一下。

       1board

       该目录下为板级配置文件,一般是运行openocd直接指定的配置文件。这些配置文件会依赖其他目录interfacetarget中的配置文件。

       2interface

       该目录下为JTAG接口的配置文件。

       3target

       该目录下位CPU的配置文件。

 

 

 

 

4 使用openocd

       具体运行参考openocd手册,这里只说使用openocd的一些技巧。

4.1 复位后直接halt

使用jtag时,最好使的cpu复位后不执行任何指令直接halt,相关指令为:reset halt,另外还有类似指令reset runreset init,这些指令在openocd手册中都有说明。

4.2 可以在配置文件中定义proc

       Openocd的配置文件为tcl脚本,所以使用proc可以定义一个类似函数的接口。通过使用proc,可以省去不少麻烦。

4.3 openocd程序死掉的问题

       我在MinGW编译出的openocd可以在windowscmd中直接运行,可是如果jtag接口没有和板子接口,会出现程序死掉的情况,而且退不掉。此时重新在板子带电情况下拔插一下openjtag,然后重新打开新的cmd运行openocd即可。不过,此时必须更改telnet_port,因为,刚才死掉的openocd占用着原先的端口。

 

附录

1 配置文件必须为unix格式

如果使用了dos格式保存了,会出问题,必须使用dos2unix命令。

阅读(8045) | 评论(0) | 转发(0) |
0

上一篇:ELDK4.2-ppc_8xx

下一篇:Uboot对jffs2的支持

给主人留下些什么吧!~~