当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]关于ARM核异常与中断处理机制研究

一.ARM处理器异常及其对应的模式

  当一个异常发生时,ARM处理器总是切换到ARM状态(即非Thumb状态)。Thumb指令集没有包含进行异常处理时需要的一些指令,因此在异常中断时,还是要使用ARM指令。

  

 

  每种异常都导致内核进入一种特定的模式。此外,可以通过修改cpsr,进入任何ARM处理器模式。用户和系统模式是仅有的可不通过相应异常进入的2中模式。

  当一个异常导致模式的改变时,内核自动的:

  把cpsr保存到相应异常模式下的spsr

  把pc保存到相应模式下的lr

  设置cpsr为相应异常模式

  设置pc为相应异常处理程序的入口地址

  二.向量表

  异常发生时,ARM跳转地址组成的表。

  

 

  三.异常优先级

  复位异常是优先级最高的异常,一旦复位异常产生,总是会发生复位异常。注意:当一条不属于ARM或Thumb指令集的指令到达流水线的执行阶段时,若此时没有其它异常发生,就会产生未定义指令异常。ARM处理器会“询问”协处理器,看它能否将其作为一条协处理器指令来处理。由于协处理器在流水线之后,所以指令确认可以在内核的执行阶段进行。如果这条指令不属于任何一个协处理器,则会产生未定义指令异常。

  

 

  四.中断

  中断延时是指:从外部请求信号发出到取出对应的中断服务程序(ISR)的第一条指令,这期间的间隔时间。

  

 

  五.中断源及其识别方法

  S3C2440A有60个中断源,IRQ有两种中断识别方法:向量中断和非向量中断。FIQ只有非向量中断。在IRQ各个中断源中的某一个中断源的中断请求被响应时,CPU转至0x18处自动加载一条转移指令转至相应中断源的固定中断向量处。IRQ各个中断源的向量地址是固定的,每个占用一个字单元。IRQ各个中断源若采用非向量中断,任意一个中断源发出中断请求,都认为发生了IRQ中断请求,并自动转入IRQ中断服务程序执行。IRQ中断服务程序主要功能是将软件设定的中断向量表中相应的中断源服务程序入口地址送给PC,并转其执行。在非向量中断模式下,一般在IRQ处放置一条转移指令:B IsrIRQ 。其中,IsrIRQ为所有IRQ中断服务程序的总入口地址,也是非向量中断模式的中断源判别及散转程序。

  

[!--empirenews.page--]
六.中断堆栈设计

 

  在堆栈设计时,须确定2点:

  位置

  决定了在存储器映射中,堆栈从何处开始。大多数基于ARM系统设计的堆栈是采用向下递减式的,栈顶位于存储器的高端地址。

  堆栈大小

  依赖于处理程序的类型-嵌套的还是非嵌套的。一个嵌套中断处理程序需要更多的存储器空间,因为堆栈将随中断嵌套的深度而增加。

  

 

  第一种方式A,说明了一个传统的堆栈安排,中断的堆栈位于代码段之下。第二种方式B,中断堆栈在用户堆栈之上,位于存储器的顶端。B优于A之处是,B在堆栈溢出时不会破坏向量表,因此系统在确认堆栈溢出后,还有机会纠正自己的错误。每一种处理器模式都要建立一个堆栈,这是在处理器每次复位时完成的。因为系统复位是从管理模式开始的,所以不用再切换到管理模式,而其他模式堆栈的建立要切换到相应模式。用于模式堆栈-通常是最后设置的,因为当处理器处于用户模式时,没有直接修改cpsr的方法。由于系统模式和用户模式共享寄存器,所以可以强制处理器进入系统模式来设置用户模式堆栈。

  七.中断处理方法

  1)非嵌套中断处理

  最简单的中断处理是非嵌套的:只有当控制权回到被中断的任务或过程时,才允许再次相应中断。由于一个非嵌套的中断处理程序在一个时段内只能为一个中断处理程序服务,所以这种形式的中断处理程序不适合需要为多个不同优先级中断服务的复杂嵌入式系统。

  

 

  2)嵌套中断处理

  在处理程序完成当前中断的服务前重新允许中断,可以实现中断嵌套。嵌套的中断处理程序入口代码与简单的非嵌套中断处理程序类似。不同之处在于,在推出时,处理程序要测试被ISR更新过的一个标志。这个标志表明,是否需要做进一步的处理,如果不要求更多的处理,那么这个中断服务例程就完成了,处理程序也可以退出;如果需要进一步处理,处理程序可能要采取若干措施:重新允许中断,并/或执行一次上下文切换。重新允许中断包括把IRQ模式切换到SVC或系统模式。在IRQ模式下,不能简单的允许中断,因为这可能会导致链接寄存器r14_irq遭到破坏,特别是在执行完BL后即发生一次中断。执行上下文切换包括复位(清空)IRQ堆栈,因为当IRQ堆栈中还有数据的时,处理程序不会执行上下文切换。所有保存在IRQ堆栈的寄存器必须转移到任务堆栈,典型地是放在管理模式堆栈上。然后,其余的寄存器也必须被保存到任务堆栈。在那里,他们会被转移到堆栈中一个称为堆栈帧的保留存储块上。

  

 

  如下恢复现场的指令:

  LDMFD R13!,(R0~R3,PC)^

  这里,寄存器列表后(其中必须包括PC)的后面的“^”表示这是一条特殊形式的指令。在从存储器装入PC的同时,CPSR也得到恢复。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

作者 Mohamad Ali| IBM咨询首席运营官 北京2024年5月24日 /美通社/ -- 生成式AI的兴起几乎在所有面向上给业务带来改变。根据 IBM 商业价值研究院最新的年度 CEO 研究,近60%...

关键字: IBM AI BSP 模型

最新消息,昨天北京开源芯片研究院官宣 ,2024 年 5 月 21 日开芯院通过线上会议的方式,向会员单位正式发布了全球首个开源大规模片上互联网络(Network on Chip,NoC)IP—— 研发代号“温榆河”。这...

关键字: ARM 垄断 开源 片上互联网络 温榆河

台北2024年5月21日 /美通社/ -- 提供针对AMD WRX90和TRX50主板优化的DDR5 OC R-DIMM 提供容量128GB(16GBx8)到768GB(96GBx8),速度5600MHz到8...

关键字: AMD 内存 BSP GB

上海2024年5月20日 /美通社/ -- 2024年5月16日,世界知名的生命科学公司 Eppendorf 集团于第二十三届生物制品年会上成功举办了"疫路超越 推流出新"的产品发布会,正式推出大规模...

关键字: RF PEN BSP IMAC

北京2024年5月20日 /美通社/ -- 过去五年里,支付和收款方式日新月异,其发展和变化比过去五十年都要迅猛。从嵌入式数字商务的出现,到"一拍即付"的...

关键字: VI BSP PAY COM

华钦科技集团(纳斯达克代码: CLPS ,以下简称"华钦科技"或"集团")近日宣布致敬 IBM 大型机 60 载辉煌历程,并将继续实施集团大型机人才培养计划。

关键字: IBM BSP 研发中心 PS

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

上海2024年5月16日 /美通社/ -- 2024年5月10日至5月13日,富士胶片(中国)投资有限公司携旗下影像产品创新力作亮相北京P&E 2024。在数码相机展览区域,全新制定的集团使命"为世界绽...

关键字: 富士 数码相机 影像 BSP

贝克曼库尔特目前已成为MeMed Key免疫分析平台和MeMed BV检测技术的授权经销商 在原有合作的基础上,继续开发适用于贝克曼库尔特免疫分析仪的MeMed BV检测 加州布瑞亚和以色列海法2024年5月16日...

关键字: BSP IO 检测技术 免疫分析仪

英国英泰力能的燃料电池是可产业化的产品解决方案 英国首个专为乘用车市场开发的燃料电池系统 在 157kW 功率下,此燃料电池比乘用车的其他发动机更为强大 &...

关键字: ENERGY INTELLIGENT 氢燃料电池 BSP
关闭
关闭