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 -