- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
gdbopenocdjtag调试mini2440
用gdb+openocd加并口小板调试qq2440
管理提醒: 本帖被 qq2440 执行置顶操作(2009-12-07)
*关于openocd????openocd是一个开源的调试工具,支持一些主流的CPU,不过目前来看,支持ARM是比较多的。其主页为http://openocd.berlios.de/ . 目前openocd开发得还比较频繁,我现在用的svn revision是1833。当然,如果有新的话,最好尝试最新的revision。如果遇到了问题,比如编译通不过之类的,可以再试试稍微旧一点的版本。????编译和安装openocd的方法:????首先从svn 上将最新的代码checkout下来:????svn co svn://svn.berlios.de/openocd/trunk openocd????这会将代码checkout到当前目录的openocd目录中,然后,可以进入到openocd目录中开始编译和安装:????cd openocd????./bootstrap????./configure --enable-parport????make????sudo make install?? 上面的./configure --enable-parport是指编译对并口jtag转换小板的支持,如wiggler。openocd也支持其他一些jtag转换板,可以使用./configure --help查看。因为我只有qq2440自带的那个并口小板,所以启用了并口支持。*关于gdb???? 用gdb调试arm程序,需要一个专门针对arm的gdb,而一般x86系统上安装的是针对x86的gdb,是不能用来调试arm代码的。这同交叉编译的概念是一致的,我们需要这样一个gdb,他运行在我们的开发平台上,一般是X86 PC机,但他针对的调试对象是ARM的。?? arm-linux-gdb的编译:?? 首先从上去下载最新的gdb源码,我下载的是gdb-6.8.tar.bz2。编译安装的过程是:?? tar -jxf gdb-6.8.tar.bz2?? cd gdb-6.8?? ./configure --target=arm-linux --program-prefix=arm-linux-?? make?? sudo make install?? 这样就得到了arm-linux-gdb, 不过我一般不使用make install将这个arm-linux-gdb装到系统里面去,而是直接运行源码里面编译出来的gdb可执行文件。怎么样方便就看你的习惯了。*关于jtag并口小板?????????? 其实目前的一些并口小板,绝大多数用的都是一个原理,就是直接利用PC机的并口来模拟JTAG时序。之所以会有这么多的变体,主要的差别是接法不一样,也就是说用的并口上数据端口的不同的bit,但是本质上是没有区别的。?? openocd的parport驱动支持一些常见的并口小板,在openocd的src/jtag/parport.c里面,有一个这样的数组:static cable_t cables[] ={????????/* name???????????????????????????????? tdo?? trst??tms?? tck?? tdi?? srst??o_inv i_inv init??exit??led */????????{ wiggler,????????????????????0x80, 0x10, 0x02, 0x04, 0x08, 0x01, 0x01, 0x80, 0x80, 0x80, 0x00 },????????{ wiggler2,?????????????????? 0x80, 0x10, 0x02, 0x04, 0x08, 0x01, 0x01, 0x80, 0x80, 0x00, 0x20 },????????{ wiggler_ntrst_inverted,????????????????????????????????????????????????????????0x80, 0x10, 0x02, 0x04, 0x08, 0x01, 0x11, 0x80, 0x80, 0x80, 0x00 },????????{ old_amt_wiggler,????0x80, 0x01, 0x02, 0x04, 0x08, 0x10, 0x11, 0x80, 0x80, 0x80, 0x00 },????????{ arm-jtag,?????????????????? 0x80, 0x01, 0x02, 0x04, 0
原创力文档


文档评论(0)