- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM7支持六种操作模式:
(1) 用户模式(usr):正常的程序执行状态
(2) FIQ模式(fiq): 支持数据传送或通道处理
(3) IRQ模式(irq): 用于通用的中断处理
(4) 管理模式(svc):用于操作系统的保护模式
(5) 异常模式(abt):数据或者指令预取异常时进入
(6) 无定义模式(und):当无定义指令被执行时进入
(7)
软件控制,外部中断,异常处理都可以改变操作模式。大部分的应用程序在用户模式下执行。
其他模式,比如管理模式,在中断、异常服务、或者访问被保护资源时进入。
ARM 的中央寄存器集是16 个用户寄存器R0 – R15。这些寄存器均是32 位宽度,R0 – R12
没有其他特殊功能,寄存器R13 – R15在CPU中有特殊功能。R13被用作栈指针(stack pointer,
SP)。R14被称为链接寄存器(link register, LR),当调用一个函数时返回地址被自动保存到链接
寄存器,在函数返回时有效。这使得快速进入和返回“叶”函数(不调用其他函数的函数)成为可
能。如果函数是分支的一部分(即该函数将调用另一个函数),链接寄存器必须入栈(R13)。
R15 是程序计数器(program counter, PC)。有趣的是,许多指令也可以在R13 – R15中执行,
就像它们是标准的用户寄存器。
ARM中断的问题ARM的七种异常类型---------1?复位异常2?数据访问中止异常3?快速中断请求异常4?一般中断请求5?预取指令异常6?软件中断异常7?未定义异常-------------------------问题:1?为什么除了进入复位异常模式外,在别的异常处理模式中都允许FIQ中断?2?数据访问中止异常的优先级?大于?FIQ异常,为什么在数据访问异常处理模式中,还允许?FIQ中断?这样不就成了:在高优先级异常处理中允许低优先级的中断发生? 即使这样,因为FIQ中断的优先级??数据异常中断优先级,也不会进入?FIQ中断处理程序啊,这样不就更没有用处了??ARM体系的各种异常的分析(学习日记)- [ARM7TDMI]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明/logshtml
1.复位异常
(1)当内核的nRESET信号被拉低时,ARM处理器放弃正在执行的指令,当nRESET信号再次变高时,ARM处理器进行复位操作;
(2)系统复位后,进入管理模式对系统进行初始化,复位后,只有PC(0和CPSR(nzcvqIFt_SVC)的值是固定的,另外寄存器的值是随机的。
2.IRQ异常
(1)当CPSR中的相应的中断屏蔽被清除时,内核的nIRQ信号被拉低时可产生IRQ异常;
(2)由于ARM处理器的三级流水线结构,当异常发生时,PC的值等于当前执行指令的地址+8(即正确的中断返回地址+4),因此R14保存的值是 中断返回地址+4 ,所以当异常要返回时须执行以下指令:
SUBS?? PC,R14_irq,#4???????????? ;PC=R14 - 4
注意:在SUB指令尾部有个S,并且PC是目标寄存器,所以程序返回时CPSR将自动从SPSR寄存器中恢复;
(3)将用户模式下的CPSR保存到SPSR_irq中;
(4)设置PC为IRQ异常处理程序的中断入口向量地址,在IRQ模式下该向量地址为0
3.FIR异常
(1)当CPSR中的相应F位被清零时,内核的nFIR信号被拉低时可产生FIR异常,FIQ异常是优先级最高的中断;
(2)FIQ异常的进入和退出与IRQ异常类似;
(3)快速中断模式有8个专用的寄存器,可用来满足寄存器保护的需要,因此从其他模式进入FIQ模式时这些寄存器不用压栈了,提高程序运行的速度,且在中断入口地址的安排上,FIQ处于所有异常入口的最后,这是为了让用户可以从FIQ异常入口处(0x1c)就开始安排中断服务程序,而不需要再次跳转。
4.未定义指令异常
(1)当ARM在对一条未定义指令进行译码时,发现这是一条自己和系统内任何协处理器都无法执行的指令时,就会发生未定义指令异常;
(2)由于是在对未定义指令译码时发生异常,所以PC的值等于未定义指令的地址+4(即刚好为中断返回地址),因此R14保存的值是 中断返回地址 ,所以当异常要返回时可执行以下指令:
MOVS?? PC,R14_und?????????????
5.中止异常
中止表示当前存储器的访问不能完成,是由外部的ABOUT输入信号引起的异常,分为两类:
(1) 预取指中止:由程序存储器引起的中止异常;
(2) 数据中止:由数据存储器引起的中止异常;
5.1预取指中止异常
当程序发生预取指中止时,
您可能关注的文档
最近下载
- 2024秋国开《法律职业伦理》形考任务一至三答案.docx VIP
- 西部证券-福耀玻璃-600660-首次覆盖报告-全球汽车玻璃龙头,海外扩张正当时-250613-40页.pdf
- 聊天的时候对方撤回消息,一招让你照样能看.pdf VIP
- 2025年电大《组织行为学》形考任务1-4答案 .pdf VIP
- 老挝钾盐勘探开发历史回顾及经验教训分析.pdf VIP
- 蒂森MC2详细说明.pdf VIP
- 公交公司安全工作总结.docx VIP
- 打点计时器试卷习题精选附答案(出试卷可选用) .doc VIP
- (正式版)SH∕T 3006-2024 石油化工控制室设计规范.pdf VIP
- (完整版)打点计时器试卷习题附答案(出试卷可选用).docx VIP
原创力文档


文档评论(0)