[ZLG-ARM] LPC2138的JTAG chian 1使用的时候要注意些什么?

[复制链接]
2077|2
 楼主| simon21ic 发表于 2008-6-24 23:42 | 显示全部楼层 |阅读模式
chain&nbsp;2(EmbededICE_RT)测试的还算正常,可以读取到MCU的状态和设置,而且可以停止MCU并进入Debug模式。<br />但chain&nbsp;1(Debug)测试发现有一些问题,第一个33为数据返回都是0,之后的数据返回的都是1,请问什么原因可能引起这个问题?和发送的指令数据有关吗?
 楼主| simon21ic 发表于 2008-6-26 05:47 | 显示全部楼层

找到问题,是驱动中的一个bug

但操作ms还有问题,不过原因可能已经找到了。<br /><br />另外,发现Open-JTAG小组的《ARM&nbsp;JTAG&nbsp;调试原理》中的EmbededICE-RT&nbsp;chian的错误:<br />按照扫描链&nbsp;2&nbsp;的格式,需要写入到扫描链&nbsp;2&nbsp;第序列应该为:<br /><font color=#0000FF>1</font>,0000,0000,0000,0000,0000,0000,0011,1111,<font color=#FF0000>00000</font>&nbsp;<br />在上面这个长度为38位的序列当中,&nbsp;低5位红色标识的数列是Debug&nbsp;Control&nbsp;Register的地址;<br />最高位蓝色标识的&nbsp;1&nbsp;表示对&nbsp;Debug&nbsp;Control&nbsp;Register进行写操作;&nbsp;中间黑色表示的&nbsp;32&nbsp;位是要写<br />入到&nbsp;Debug&nbsp;Control&nbsp;Register的数据,因为&nbsp;Debug&nbsp;Control&nbsp;Register长度为&nbsp;6,所以只有低&nbsp;6&nbsp;为<br />的数据序列&nbsp;111111&nbsp;有效<br /><br />而OpenOCD中的写EmbededICE-RT寄存器的代码:<br />static&nbsp;__inline__&nbsp;void&nbsp;embeddedice_write_reg_inner(int&nbsp;chain_pos,&nbsp;int&nbsp;reg_addr,&nbsp;u32&nbsp;value)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;u32&nbsp;values[3];<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;values[0]=value;<br />&nbsp;&nbsp;&nbsp;&nbsp;values[1]=reg_addr;<br />&nbsp;&nbsp;&nbsp;&nbsp;values[2]=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;jtag_add_dr_out(chain_pos,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;embeddedice_num_bits,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;values,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-1);<br />}<br /><br />可见,顺序不一样
 楼主| simon21ic 发表于 2008-6-26 12:27 | 显示全部楼层

问题已解决

下载调试速度也还行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

266

主题

2597

帖子

104

粉丝
快速回复 在线客服 返回列表 返回顶部