19.08.2013 Views

ARM7TDMI-S(Rev 4)技术参考手册 - Read

ARM7TDMI-S(Rev 4)技术参考手册 - Read

ARM7TDMI-S(Rev 4)技术参考手册 - Read

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

广州周立功单片机发展有限公司 Tel (020)38730976 38730916 Fax 38730925 http //www.zlgmcu.com<br />

SCAN_N 0010<br />

INTEST 1100<br />

IDCODE 1110<br />

BYPASS 1111<br />

RESTART 0100<br />

在下面的描述中 <strong>ARM7TDMI</strong>-S 处理在 CLK 上升沿并且 DBGTCKEN 为高时对 DBGTDI 和 DBGTMS<br />

进行采样 TAP 控制器状态如图 5-8 所示<br />

5.13.1 SCAN_N(0010)<br />

SCAN_N 指令连接 DBGTDI 阿 DBGTDO 之间的扫描路径选择寄存器<br />

在 CAPTURE-DR 状态下 将固定值 1000 装入寄存器<br />

在 SHIFT-DR 状态下 将选择的扫描路径的 ID 号装入寄存器<br />

在 UPDATE-DR 状态下 被选择扫描链的扫描寄存器连接 DBGTDI 和 DBGTDO 并一直保持连<br />

接直到执行下一条 SCAN_N 指令为止<br />

复位时 默认选择扫描链 0<br />

此时扫描路径选择寄存器长度为 4 位 即使没有指定长度<br />

5.13.2 INTEST (1100)<br />

INTEST 指令使被选择的扫描链进入测试模式<br />

INTEST 指令连接 DBGTDI 和 DBGTDO 之间被选择的扫描链<br />

当 INTEST 指令装入指令寄存器时 所有扫描单元都进入各自的测试模式<br />

在 CAPTURE-DR 状态下<br />

单元的数据值被捕获<br />

数据值由内核逻辑提供给输出扫描单元 而系统逻辑提供给输入扫描<br />

在 SHIFT-DR 状态下 之前被捕获的测试数据通过 DBGTDO 管脚从扫描链移出 而新的测试数<br />

据通过 DBGTDI 管脚移入<br />

使用 INTEST 指令可实现内核的单步操作<br />

5.13.3 IDCODE (1110)<br />

IDCODE 指令连接 DBGTDI 和 DBGTDO 之间的器件标识代码寄存器 ID 寄存器 ID 寄存器是一个<br />

32 位寄存器 可通过 TAP 从中读出制造商 产品编号和部件版本 详见 ID 寄存器一节<br />

当 IDCODE 指令装入指令寄存器时 所有扫描单元都进入各自的正常 系统 操作模式<br />

在 CAPTURE-DR 状态下 器件标识代码被捕获到 ID 寄存器中<br />

在 SHIFT-DR 状态下 之前捕获的器件标识代码通过 DBGTDO 管脚从 ID 寄存器移出 而新的<br />

数据通过 DBGTDI 管脚移入 ID 寄存器<br />

在 UPDATE-DR 状态下 ID 寄存器不受影响<br />

5.13.4 BYPASS (1111)<br />

BYPASS 指令连接 DBGTDI 和 DBGTDO 之间的 1 位移位寄存器 旁路寄存器<br />

当 BYPASS 指令装入指令寄存器时 PYPASS 指令对系统管脚无影响<br />

在 CAPTURE-DR 状态下 逻辑 0 捕获到旁路寄存器<br />

在 SHIFT-DR 状态下 测试数据通过 DBGTDI 移入旁路寄存器 并在延迟一个 CLK 周期后从<br />

DBGTDO 移出 第一个移出的位为 0<br />

旁路寄存器在 UPDATE-DR 状态下不受影响<br />

- 46 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!