这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 求教,arm-jtag访问细节

共9条 1/1 1 跳转至

求教,arm-jtag访问细节

菜鸟
2007-11-29 11:11:35     打赏
目前在做一颗soc芯片arm9的前端仿真,我正在尝试写一段testbench,给JTAG端口信号,测试简单的JTAG访问操作。
看了twentone和duyunhai的<ARM JTAG调试原理>文档后,对JTAG TAP controller的状态有了一些认识。
经过两三天的调试,有了一点小成果。就是能从shift状态下,看到了TDO上输出4b'0001信号,具体执行操作如下:
test-logic reset -->run-test/idle -->  select -DR-Scan -->select-IR-Scan -->Capture -IR --> Shift -IR(在该状态下,保持TCK运行4个clk,就能看到4b'0001信号,再保持TCK,就能看到TDI上的数据从TDO输出到端口) -->
...
目前的问题是,不知道接下去怎么配置,通过执行IDCODE指令,TDO读出arm ID



关键词: 求教     arm-jtag     访问     细节    

菜鸟
2007-11-29 13:07:06     打赏
2楼
在SHIFT状态下,TDO输出B0001,说明你的操作是正确的。接下来,你需要完成几条JTAG指令的操作:IDCODE指令,SCANN指令,INTEST等

IDCODE - 用来读取DEVICE ID
SCANN -  用来选择扫描链
INTEST - 用来将选择的扫描链放到INTEST状态

建议你先读取IDCODE,看看是否和你的ARM9芯片的ID一致,然后在做后面的操作。另外,WWW.HJTAG.COM上,有一个JTAG操作的代码,是针对ARM7的。ARM7和ARM9还是基本上一样的,你可以下载下来做参考。

菜鸟
2007-11-30 10:12:34     打赏
3楼

非常感谢版主给我的指点。:)
但是对配置IDCODE指令,没有成功。
如下图是我采用的时序图。期望能在配置了指令寄存器后,能在shift-DR时把ID寄存器的值读出来,实际没有。
具体操作流程是:test-logic reset -->run-test/idle -->  select -DR-Scan -->select-IR-Scan -->Capture -IR --> Shift -IR(5个TCK) -->Exit1-IR -->Update-IR --> run-test/idle -->  select -DR-Scan -->Capture -DR --> Shift -DR ---

我看了arm9的manual,发现指令是一样的,也是1110。

我又尝试用一个别的公司arm芯片,用示波器通过Multi-ice连接到目标板,然后用示波器直接在板上采集波形。因为一开始会有芯片加载过程,我认为可能就是在识别ID号。读取波形,没有发现tdo数据,如图:兰线是TCK(一堆无规则的脉冲),紫线是TMS,绿线是TDO


菜鸟
2007-11-30 10:17:39     打赏
4楼
在SHIFT-IR的时候,我记得IR的指令长度应该是4个BIT。在SHIFT-IR状态,你试一试只加4个TCK。而且输入命令的最后一位的时候,TMS应该为1.

菜鸟
2007-11-30 10:42:38     打赏
5楼
假设现在在RUN-TEST状态,写IDCODE指令(长度=4,指令=B'1110)的过程应该如下: RUNTEST -> TMS=1,+TCK -> SELECTDR -> TMS=1,+TCK -> SELECTIR -> TMS=0,+TCK -> CAPTUREIR -> TMS=0,+TCK -> SHIFTIR -> TMS=0,TDI=0,+TCK -> SHIFTIR -> TMS=0,TDI=1,+TCK -> SHIFTIR -> TMS=0,TDI=1,+TCK -> SHIFTIR -> TMS=1,TDI=1,+TCK -> EXITIR -> TMS=1,+TCK -> UPDATEIR -> TMS=0,+TCK -> RUNTEST

菜鸟
2007-11-30 16:07:01     打赏
6楼
报告一下,看到IDCODE输出了。

主要问题在于我输入ID指令的时候,按照了1110输入的,反过来0111输入就对了。

感谢twentyone的帮助,非常感谢!

菜鸟
2007-11-30 18:34:45     打赏
7楼
WLCOME!

菜鸟
2007-12-19 17:59:08     打赏
8楼

我也在调试ARM9的JTAG接口
有一点不正常
请问楼上的两位兄弟有没有ARM9调试原理方面的资料呢?


菜鸟
2007-12-21 12:20:04     打赏
9楼
ARM9和ARM7的有些区别,但基本上都是类似的。如果不正常,肯定是那个步骤出错了。做JTAG的东西,一定要特别仔细,多试一试。

共9条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]