搜索
bottom↓
回复: 13

自制 USB to Jtag 调试器 !配合 OpenOCD 调试 烧录 一切 OK!

[复制链接]

出0入0汤圆

发表于 2010-3-22 14:48:07 | 显示全部楼层 |阅读模式
玩ARM,一定要用到JTAG,之前有简易的并口小板,可是现在有并口的电脑越来越少,免费的Jtag调试器也不用用了!目前主流的Jtag 调试器 都是USB 或者 net接口的,几百 上千 大洋 不等!当然也有盗版的J link ,好像 100以内!

     最近,工作比较空闲,所以决定,自己DIY一款 USB to Jtag的 调试器! USB 部分选择了 C8051F342单片机 , USB 12Mbit/s 接口, 48MIPS 速度!

自己做好PCB,首先调试了一下C8051F的硬件功能 ,USB正常!

     接下来,开始Jtag部分的工作,PC的软件 选择了大名鼎鼎的OpenOCD,支持多平台,开源 !PC端 Jtag 硬件驱动部分模仿 并口的驱动写了一个Usb的

Jtag 适配器,使用lib usb !经过一番调试,终于可以连接我的S3C2440 ARM9 开发板了 ,测了一下速度,慢的出奇 ,dump Sdram 只有 180 bytes / s !

感觉有什么地方不对,单片机可以跑到 48MIPS ,怎么也不可能这么慢! 于是开始分析速度的瓶颈在哪里?

     抓了一下 USB的数据,发现请求一个usb的桢 需要2ms ,但是OpenOcD 调试的时候, Usb数据包每次只有几个数据,最多几十个,但是很频繁,一直在

交互!看来Usb的桢请求时间才是瓶颈,也就是说,下位机再快也没有用!
   
     想要解决这个瓶颈问题,必须增加数据的缓冲,把数据收集起来,在需要的时候,一次性usb传送! 说做就做,动手修改OpenOCD的Jtag 驱动部分,做了

Buf的缓冲!再次测试,dump Sdram 数据 能够达到 5.5 Kbytes /s ! 和 我的 PCI转 并口卡的速度几乎一样 !

     到此为止,usb to jtag 的调试器,基本完成,下一步开始速度的优化!

     别的不多说了 ,上图 !

    Ft2232 调试器 , PCI转 并口 调试器 , 和 自制的 USB to Jtag 调试器 速度对比!


Ft2232 (原文件名:Ft2232.JPG)


PCI 转 并口 (原文件名:parport.JPG)


自制的usb to jtag (原文件名:usb jtag.JPG)

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2010-3-22 14:52:42 | 显示全部楼层

实物 (原文件名:DSC00973.jpg)

出0入0汤圆

 楼主| 发表于 2010-3-22 14:56:23 | 显示全部楼层
上面的usb to jtag ,使用单片机的GPIO来模拟Jtag时许的,也就是bitbang方式!

当初做板子的时候,留了一块TI的总线转JTAG的硬件逻辑芯片 sn74lvt8980a !

下一步计划用专用芯片来做,现在用sn74lvt8980a 已经可以读到芯片的ID,但是 进入debug mode的时候还有问题!

需要进一步调试!

出0入0汤圆

发表于 2010-3-22 18:46:25 | 显示全部楼层
恩 bit-bang的方案确实速度上不去了……

我们有一个类似的项目:MCU(AT91SAM3U4E)+FPGA实现。
参看这里:http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3775353&bbs_id=1029

可以一起交流交流~
头像被屏蔽

出0入0汤圆

发表于 2010-3-23 12:31:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

 楼主| 发表于 2010-3-23 16:35:39 | 显示全部楼层
自己做着玩的 !Versaloon  好像有商业版本了!

我的板子上 加了 一个 8MB 的spi norflash ,C8051F342 有64KB flash 和 3K Xdata RAM, 所以和Jtag 仿真一起!

加了一个u盘功能!内部集成了一套FAT的文件系统,也就是单片机可以读些U盘的文件! 整个编出来 23K左右 ,

包括一个uart 代码在内!

    U盘功能可以和Jtag仿真功能动态切换!但是不能共存!可以CDC类 ,实现USB to Uart!


(原文件名:bin.JPG)


(原文件名:成品.JPG)

出0入0汤圆

发表于 2010-3-25 13:35:58 | 显示全部楼层
性能上还有优化的空间

多个USB设备是可以共存的,给一个简单的例子:
http://blog.ednchina.com/SimonQian/244655/message.aspx
一些说明:
http://blog.ednchina.com/SimonQian/192173/message.aspx

出0入0汤圆

发表于 2010-6-20 20:42:40 | 显示全部楼层
建议LZ上程序

出0入0汤圆

发表于 2011-12-24 20:56:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-25 05:08:26 | 显示全部楼层
我刚开始学ARM,JTAG这么重要吗?那个并口小板就是JTAG吗?

出0入0汤圆

发表于 2012-1-5 23:45:42 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-4-7 16:33:28 | 显示全部楼层
厉害啊  顶了

出0入0汤圆

发表于 2012-4-7 17:05:38 | 显示全部楼层
呵呵,我也做了一个JTAG烧写器,不能仿真。TCK可以到40MHz,写已经没有问题了,但是读的时候不正确。不知道读用EXTEST还是用SAMPLE/PRELOAD命令。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-29 06:43

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表