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 />

表 7-14 保存多个寄存器指令周期操作<br />

周期 地址 规格 写 数据 TRANS[1:0] Prot0<br />

1 个寄存器 1 pc+2i w/h 0 (pc+2i) N 周期 0<br />

2 da w 1 R N 周期 1<br />

pc+3i - - - - -<br />

n 个寄存器 1 pc+8 w/h 0 (pc+2i) N 周期 0<br />

n>1 2 da w 1 R S 周期 1<br />

7.12 数据 数据交换 数据 交换<br />

da++ w 1 R’ S 周期 1<br />

n da++ w 1 R’’ S 周期 1<br />

n+1 da++ w 1 R’’’ N 周期 1<br />

pc+12 - -- - - -<br />

数据交换与装载与保存寄存器指令相似 但交换发生在第 2 个和 3 个周期 数据在第 2 个周期中从外<br />

部存储器中取出 并在第 3 个周期将源寄存器的那如写入外部存储器 在第 4 个周期内 第 2 个周期读出<br />

的数据写入目标寄存器<br />

数据交换可以字节为单位 也可以字为单位<br />

<strong>ARM7TDMI</strong>-S 内核在读或写周期中有可能中止交换操作 交换操作 读或写 不影响目标寄存器<br />

数据交换周期时序见表 7-15 其中 b 和 w 分别代表字节和字<br />

表 7-15 数据交换指令周期操作<br />

周期 地址 规格 写 数据 TRANS[1:0] Prot0 Lock<br />

1 pc+8 w 0 (pc+8) N 周期 0 0<br />

2 Rn w/b 0 (Rn) N 周期 1 1<br />

3 Rn w/b 1 Rm I 周期 1 1<br />

4 pc+12 w 0 - S 周期 1 0<br />

pc+12 - - - - - -<br />

注<br />

在 Thumb 状态下 不能执行数据交换<br />

<strong>ARM7TDMI</strong>-S 处理器的 LOCK 输出在装载和保存数据周期都被驱动为高电平 用来告知存储器控制<br />

器这是一个很小的操作<br />

7.13 软件中断和异常入口<br />

软件中断和异常入口<br />

软件中断和异常入口<br />

异常和软件中断 SWI 强制 PC 为一个指定的值 并从该地址开始重新填充指令流水线<br />

1. 在第 1 个周期中 <strong>ARM7TDMI</strong>-S 内核建立一个强制地址 并有可能发生模式改变 <strong>ARM7TDMI</strong>-S<br />

内核将返回地址存入 r14 并将 CPSR 复制到 SPSR_svc<br />

2. 在第 2 个周期中 <strong>ARM7TDMI</strong>-S 内核修改返回地址以实现返回<br />

3. 第 3 个周期只有在完成流水线的重新填充时才需要<br />

SWI 周期时序见表 7-16 其中<br />

s 代表当前值与超级用户模式有关<br />

t 代表当前 Thumb 状态值<br />

pc 对于软件中断 为 SWI 指令的地址 对于异常来说 则是进入异常之前所执行的最后一条指令<br />

- 74 -

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

Saved successfully!

Ooh no, something went wrong!