打印
[AVR单片机]

正在自制JTAGICE mkII,遇到一些问题,有人有这方面的经验不

[复制链接]
3062|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
simon21ic|  楼主 | 2007-12-29 03:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用的是Atmel公开的JTAGICE mkII的USB接口协议(外加自己**的一些和调试有关的协议),并使用2004年,国外**的JTAG调试协议。
虽然解决了一些问题(能够在main入口中断(使用PSB0断点),能够让AVR核心执行特定的指令,能够操作OCDR调试寄存器,能够读取IO口和SRAM中的数据(数据未验证)),但是还有不少待解决的问题:
1.JTAG调试时,读取的Flash并不成功,读取到的数据不对:
// Read Flash Bytes
void AVR_JTAGOCD_ReadFlash(uint16 addr,uint8 *buf,uint16 len)
{
    uint16 i = 0;
    uint8 ocdr[2];

    // Z = addr
    AVRI_LDI_Rd_K(31,(uint8)(addr >> 8));    // 验证OK
    AVRI_LDI_Rd_K(30,(uint8)(addr & 0xFF));    // 验证OK

    for(;i < len;i++)
    {
        // LPM R16,Z+
        AVRI_LPM_Rd_Zp(16);
        // OUT OCDR,R16
        AVRI_OUT_A_Rr(ucIDRAddress,16);
        // Read OCDR
        AVR_JTAGOCD_ReadOCDR(ocdr);
        buf = ocdr[1];
    }
}
验证方法:
// LDI R31,0xA5
AVRI_LDI_Rd_K(31,0xA5);
// OUT OCDR,R31
AVRI_OUT_A_Rr(ucIDRAddress,31);
// Read OCDR
AVR_JTAGOCD_ReadOCDR(ocdr);
之后检测了ocdr的数据,确实就是前面LDI进去了

2.程序Break后(可能是发送了JTAG接口的Break命令,也可能是程序执行到了OCD设置的断点,也可能是程序执行了Break指令),马上读取PC指针,确实如协议所说的值,但如果在读取之前,执行了其他JTAG OCD操作(如果读取OCD寄存器等),会使得之后读取的PC指针增大(多一次操作增大1)。另外,使用AVR核心执行RJMP来修改PC值,之后读取PC值发现所做的修改并没有生效

3.JTAG High Level的单步调试怎么进行?
High Level的单步调试命令在调试C语言时,由AVRStudio发送,但并没有设置中断,怎么判断哪些指令是当前要Step的C语句对应的指令?
......

相关帖子

沙发
avrvi| | 2007-12-29 09:31 | 只看该作者

成品都有了 呵呵

成品都有了 呵呵

http://shop.avrvi.com/goods-130.html

使用特权

评论回复
板凳
simon21ic|  楼主 | 2007-12-29 14:18 | 只看该作者

需要的不是成品,需要的是里面的资料

要说成品的话,Atmel早就有了
当然,成品如果开源的也可以参考

不知道你硬件是怎么做的,要卖1000多,我算了一下我自己做的硬件成本40不到

使用特权

评论回复
地板
huanan_| | 2008-1-17 15:24 | 只看该作者

我也在做

我也在做,有空交流一下
email:ming_2100@163.com

使用特权

评论回复
5
微控电子| | 2008-1-22 17:49 | 只看该作者

顶楼主

用ATMEL的电路来做,代价太高,而且由于数据链路太长,消耗的时间太多。
我们有一款mkII Lite V2的单线仿真加ISP编程加JTAG编程的仿真器,不管是ISP编程还是JTAG编程,速度都比原装的mkII要快很多。
单线仿真虽然没有明确的测试速度,但是感觉还是要比原装的快。

快的原因就在于简化了电路,缩短了数据链路,直接结果就是速度加快,但是安全性降低(可能会比较容易被**)。

使用特权

评论回复
6
laoshan| | 2008-1-22 21:29 | 只看该作者

做这个干吗

我觉得买一个做产品更有意义。

使用特权

评论回复
7
simon21ic|  楼主 | 2008-1-24 12:39 | 只看该作者

主要网上又不少的JTAGICE的工具,但都没有源代码

所以想自己做一个开源的,加入我的AVRminiProg里,现在看来,可行性不高啊
主要是没有足够的协议资料

我没有测试过原装编程器的速度,所以不太好比较,你这里有数据吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

266

主题

2597

帖子

104

粉丝