- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
S3C2440 中断体系结构
一、 S3C2440 中断体系结构
1)ARM 体系 CPU 的 7 种工作模式
用户模式( usr ):ARM 处理器正常的程序执行状态
快速中断模式( fiq ):用于高速数据传输或通道处理
中断模式( irq):用于通用的中断处理
管理模式( svc ):操作系统使用的保护模式
数据访问终止模式( abt ):当数据或指令预取终止时进入该模式,可用于虚拟
存储及存储保护
系统模式( sys ):运行具有特权的操作系统任务
未定义指令中止模式( und ):当未定义的指令执行时进入该模式,可用于支持
硬件协处理器的软件仿真
除用户模式外,其他 6 种工作模式都属于特权模式, 大多数程序运行于用户模式,
进入特权模式是为了处理中断、异常,或者访问被保护的系统资源。
ARM 体系的 CPU 有以下两个工作状态
ARM 状态:此时处理器执行 32 位的字对齐的 ARM 指令
Thumb 状态:此时处理器执行 16 位的、半字对齐的 Thumb 指令
ARM920T 有 31 个通用的 32 位寄存器和 6 个程序状态寄存器。这 37 个寄存器
分为 7 组,如下图所示:
图中 R0-R15 可以直接访问,这些寄存器除了 R15 外都是通用寄存器,既可以
保存地址也可以保存数据。
R13 称为栈指针寄存器,通常用于保存栈指针
R14 称为程序连接寄存器 (LR ),当执行 BL 子程序调用指令时, R14 得到 R15
(程序计数器 PC )的备份。
而当发生中断或异常时,对应的 R14_svc ,R14_irq ,R14_abt 或 R14_und 中
保存 R15 的返回值
R15 是程序计数器
快 速中断模式有 7 个备份寄存器 R8_fiq-R14_fiq ,这使得进入快速中断模
式执行很大部分程序时 (不改变 R0-R7 ),不需要保存任何寄存器。 用户 模式、
管理模式、数据访问终止模式和未定义指令中止模式都含有两个独占的寄存器副
本 R13 、R14 ,这样令每个模式拥有自己的栈指针寄存器和连接寄存器。
每种工作模式还有寄存器 CPSR (当前程序状态寄存器),它被用于标识
各种状态和当前处于哪种工作模式,如下图所示:
当一个异常发生时,将切换进入相应的工作模式,这是 ARM920T CPU 将自动
完成如下工作:
①在异常工作模式的连接寄存器 R14 中保存前一个工作模式的下一条即将执行
的指令地址。对于 ARM 状态,这个值是当前 PC 值加 4 或加 8
②将 CPSR 的值复制到异常模式的 SPSR
③将 CPSR 的工作模式位设为这个异常对应的工作模式
④令 PC 值等于这个异常模式在异常向量表中的地址, 即跳转去执行异常向量表
中的相应指令
从异常工作模式回到之前的工作模式时,需要通过软件完成如下事情:
①前面进入异常工作模式时,连接寄存器中保存了前一工作模式的一个指令地
址,将它减去适当的值后赋值给 PC 寄存器
②将 SPSR 的复制回 CPSR
退出异常模式时 PC 的计算 进入异常模式时 R14 中保存
异常模式
方法 的值
管理模式( SWI 指令进
入) MOVS PC, R14 PC+4(1)
未定义指令终止模式 MOVS PC, R14 PC+4(1)
快速中断模式 SUBS PC, R14, #4 PC+4(2)
中断模式
原创力文档


文档评论(0)