fiq模式的进入和陈奕迅退出歌坛是怎样的一个过程,为何在返回时pc-4

2262人阅读
文章1-FIQ和IRQ区别
FIQ和IRQ是两种不同类型的中断,ARM为了支持这两种不同的中断,提供了对应的叫做FIQ和IRQ处理器模式(ARM有7种处理模式)。
一般的中断控制器里我们可以配置与控制器相连的某个中断输入是FIQ还是IRQ,所以一个中断是可以指定为FIQ或者IRQ的,为了合理,要求系统更快响应,自身处理所耗时间也很短的中断设置为FIQ,否则就设置了IRQ。
如果该中断设置为了IRQ,那么当该中断产生的时候,中断处理器通过IRQ请求线告诉ARM,ARM就知道有个IRQ中断来了,然后ARM切换到IRQ模式运行。类似的如果该中断设置为FIQ,那么当该中断产生的时候,中断处理器通过FIQ请求线告诉ARM,ARM就知道有个FIQ中断来了,然后切换到FIQ模式运行。
简单的对比的话就是FIQ比IRQ快,为什么快呢?
ARM的FIQ模式提供了更多的banked寄存器,r8到 r14还有SPSR,而IRQ模式就没有那么多,R8,R9,R10,R11,R12对应的banked的寄存器就没有,这就意味着在ARM的IRQ模式下,中断处理程序自己要保存R8到R12这几个寄存器,然后退出中断处理时程序要恢复这几个寄存器,而FIQ模式由于这几个寄存器都有banked寄存器,模式切换时CPU自动保存这些值到banked寄存器,退出FIQ模式时自动恢复,所以这个过程FIQ比IRQ快.
FIQ比IRQ有更高优先级,如果FIQ和IRQ同时产生,那么FIQ先处理。
在symbian系统里,当CPU处于FIQ模式处理FIQ 中断的过程中,预取指令异常,未定义指令异常,软件中断全被禁止,所有的中断被屏蔽。所以FIQ就会很快执行,不会被其他异常或者中断打断,所以它又比 IRQ快了。而IRQ不一样,当ARM处理IRQ模式处理IRQ中断时,如果来了一个FIQ中断请求,那正在执行的IRQ中断处理程序会被抢断,ARM切换到FIQ模式去执行这个FIQ,所以FIQ比IRQ快多了。
另外FIQ的入口地址是0x1c,IRQ的入口地址是0x18。
原文地址:
文章2-ARM的FIQ为何比IRQ快:
1。FIQ的优先级比IRQ高。
2。FIQ模式下,比IRQ模式多了几个独立的寄存器。
不要小看这几个寄存器,ARM在编译的时候,如果你FIQ中断处理程序足够用这几个独立的寄存器来运作,它就不会进行通用寄存器的压栈,这样也省了一些时间。
3。FIQ的中断向量地址在0x0000001C,而IRQ的在0x。(也有的在FFFF001C以及FFFF0018)
写过完整汇编系统的都比较明白这点的差别,18只能放一条指令,为了不与1C处的FIQ冲突,这个地方只能跳转,而FIQ不一样,1C以后没有任何中断向量表了,这样可以直接在1C处放FIQ的中断处理程序,由于跳转的范围限制,至少少了一条跳转指令。
4。IRQ和FIQ的响应延迟有区别
IRQ的响应并不及时,从Verilog仿真来看,IRQ会延迟几个指令周期才跳转到中断向量处,看起来像是在等预取的指令执行完。FIQ的响应不清楚,也许比IRQ快。&
中断延迟:从外部中断请求信号发出到执行对应的中断服务程序ISR的第一条指令所需要的时间。
通过软件程序设计来缩短中断延迟的方法有:中断优先级和中断嵌套。
保存,省去了访存的时间;其二,上表中,FIQ的中断向量,无论是正常地址还是高地址,都位于向量表的最后一个,这样可以把中断服务程序直接放在表中,而省去了跳转到响应服务程序地址的时间;其三,由下表的中断优先级可知,FIQ优先级较高。
本文来自CSDN博客,转载请标明出处:
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:85781次
积分:1528
积分:1528
排名:第11146名
原创:67篇
转载:32篇
评论:10条
(7)(2)(18)(14)(8)(31)(22)《嵌入式系统开发》习题答案习题,嵌入式系统
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
《嵌入式系统开发》习题答案
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口。ARM嵌入式系统基础教程。---- 期中开卷。 。专业:软件10..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
ARM嵌入式系统试题及答案
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口ARM的七种异常类型57
上亿文档资料,等你来发现
ARM的七种异常类型57
ARM7支持六种操作模式:;(1)用户模式(usr):正常的程序执行状态;(2)FIQ模式(fiq):支持数据传送或通道处;(3)IRQ模式(irq):用于通用的中断处理;(4)管理模式(svc):用于操作系统的保护模式;(5)异常模式(abt):数据或者指令预取异常时;(6)无定义模式(und):当无定义指令被执行时;(7);软件控制,外部中断,异常处理都
ARM7支持六种操作模式:(1) 用户模式(usr):正常的程序执行状态(2) FIQ模式(fiq): 支持数据传送或通道处理(3) IRQ模式(irq): 用于通用的中断处理(4) 管理模式(svc):用于操作系统的保护模式(5) 异常模式(abt):数据或者指令预取异常时进入(6) 无定义模式(und):当无定义指令被执行时进入(7)软件控制,外部中断,异常处理都可以改变操作模式。大部分的应用程序在用户模式下执行。 其他模式,比如管理模式,在中断、异常服务、或者访问被保护资源时进入。 ARM 的中央寄存器集是16 个用户寄存器R0 C R15。这些寄存器均是32 位宽度,R0 C R12 没有其他特殊功能,寄存器R13 C R15在CPU中有特殊功能。R13被用作栈指针(stack pointer,SP)。R14被称为链接寄存器(link register, LR),当调用一个函数时返回地址被自动保存到链接寄存器,在函数返回时有效。这使得快速进入和返回“叶”函数(不调用其他函数的函数)成为可能。如果函数是分支的一部分(即该函数将调用另一个函数),链接寄存器必须入栈(R13)。 R15 是程序计数器(program counter, PC)。有趣的是,许多指令也可以在R13 C R15中执行,就像它们是标准的用户寄存器。 ARM中断的问题ARM的七种异常类型---------1& 复位异常2& 数据访问中止异常3& 快速中断请求异常4& 一般中断请求5& 预取指令异常6& 软件中断异常7& 未定义异常-------------------------问题:1& 为什么除了进入复位异常模式外,在别的异常处理模式中都允许FIQ中断?2& 数据访问中止异常的优先级 大于 FIQ异常,为什么在数据访问异常处理模式中,还允许 FIQ中断?这样不就成了:在高优先级异常处理中允许低优先级的中断发生?即使这样,因为FIQ中断的优先级 & 数据异常中断优先级,也不会进入 FIQ中断处理程序啊,这样不就更没有用处了?? ARM体系的各种异常的分析()- []版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明/logs/.html1.复位异常(1)当内核的nRESET信号被拉低时,ARM处理器放弃正在执行的指令,当nRESET信号再次变高时,ARM处理器进行复位操作;(2)系统复位后,进入管理模式对系统进行初始化,复位后,只有PC(0x)和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模式下该向量地址为0x。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_und5.中止异常中止表示当前存储器的访问不能完成,是由外部的ABOUT输入信号引起的异常,分为两类:(1) 预取指中止:由程序存储器引起的中止异常;(2) 数据中止:由数据存储器引起的中止异常;5.1预取指中止异常当程序发生预取指中止时,ARM内核将预取的指令标记为无效,但在指令到达流水线的执行阶段时才进入异常,因此当前PC的值为当前执行指令的地址+8(即正确的中断返回地址+4),因此R14保存的值是 中断返回地址+4 ,所以当修复了产生中止的原因后,不管在什么操作状态,处理器都会执行以下指令: SUBS
PC,R14_abt,#4
;PC=R14 - 45.2数据中止异常当发生数据中止异常时,异常会在“导致异常的指令”执行后的下一条指令时才发生,因此当前PC的值为“导致异常的指令”执行后的下一条指令的地址+8(即正确的中断返回地址+8),因此R14保存的值是 中断返回地址+8,所以当修复了产生中止的原因后,不管在什么操作状态,处理器都会执行以下指令: SUBS
PC,R14_abt,#8
;PC=R14 - 8注意:LPC2000系列ARM是基于ARM7TDMI内核的,不具有MMU,所以不应该发生中止异常,初学者时常会发生中止异常,大多数是因为编写的程序的问题。6.SWI软件中断异常(1)所有的任务都是运行在用户模式下的,因此任务只能读CPSR而不能写SPSR。任务切换到特权模式下唯一的途径就是使用一个SWI指令调用,SWI指令强迫处理器从用户模式切换到SVC管理模式,并且IRQ自动关闭,所以软件中断方式常被用于系统调用。(2)系统调用的具体过程还是看有关uc/os-II等操作系统书,那里比较详细。(3)SWI处理程序通过执行下面的指令返回:MOVS
PC,R14_svc具体为什么偏移量为0,我现在也还没有搞懂,请看到的大虾多多指点,留个言,谢谢了!!!经高手指点后明白了原来这么多异常的返回地址问题只要一句话:除了数据中止以外,所有异常发生时R14保存的值都是跳转时的PC-4,只是软件原因引起的异常时执行时(PC为该指令地址+8)就发生异常跳转了,而硬件引起的异常为了保证程序安全必须等到当前指令完成后(执行目标已经指向下一个指令,即PC为该指令地址+12)才会发生跳转。 ARM简介及BootLoader介绍ARM简介及BootLoader介绍黄大荣 ARM基本常识(1)目前嵌入式处理器常见的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire(冷火)等,但ARM占据了绝对主流(有资料说手机中几乎90%都是ARM处理器)。ARM是一个只卖知识产权的公司,目前获得购买了ARM CPU核授权许可的大公司很多,包括Intel、Samsung、Amstel、Motorola、Philip等,他们都在ARM CPU核的基础上进行了一些外围扩展,形成自己的处理器。ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。ARM基本常识(2)1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。ARM处理器状态(1)ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM状态。ARM处理器状态(2)进入Thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。ARM处理器模式(1)ARM微处理器支持7种运行模式,分别为:用户模式(usr):ARM处理器正常的程序执行状态。快速中断模式(fiq):用于高速数据传输或通道处理。外部中断模式(irq):用于通用的中断处理。管理模式(svc):操作系统使用的保护模式。数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。系统模式(sys):运行具有特权的操作系统任务。定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。ARM处理器模式(2)ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式;其中除去用户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源等情况。ARM寄存器ARM处理器共有37个寄存器。其中包括:31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。以及6个32位状态寄存器。关于寄存器这里就不详细介绍了,有兴趣的人可以上网找找,很多这方面的资料。异常处理当正常的程序执行流程发生暂时的停止时,称之为异常,例如处理一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。当一个异常出现以后,ARM微处理器会执行以下几步操作:进入异常处理的基本步骤:将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。将CPSR复制到相应的SPSR中。根据异常类型,强制设置CPSR的运行模式位。强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。ARM微处理器对异常的响应过程用伪码可以描述为:R14_ = Return LinkSPSR_= CPSRCPSR[4:0] = Exception Mode NumberCPSR[5] = 0 ;当运行于 ARM 工作状态时If == Reset or FIQ then;当响应 FIQ 异常时,禁止新的 FIQ 异常CPSR[6] = 1PSR[7] = 1PC = Exception Vector Address包含各类专业文献、各类资格考试、幼儿教育、小学教育、生活休闲娱乐、行业资料、文学作品欣赏、高等教育、专业论文、应用写作文书、ARM的七种异常类型57等内容。 
  【】 
您可在本站搜索以下内容:
  ARM的七种异常类型 50页 1下载券 ARM异常中断机制 4页 1下载券 ARM模式和...如何理解 ARM 的异常返回作者:ijk 栏目:MCU 技术 理解 ARM 的异常返回 m ...
 在 ARM 体系结构中,硬件约定了各个异常的优先级顺序 异常的返回: 异常的返回:... ARM的七种异常类型 50页 1下载券 ARM版本及系列 8页 1下载券 ARM架构 32...
 9、 ARM 处理器结构:小端存储格式、大端存储格式。 10、 ARM 处理器的七种...(6 个) : 14、 ARM 体系结构的异常类型和异常处理模式: 复位――复位――...
 2. ARM 体系中异常中断种类. ARM 体系中的异常中断如下表所示: ARM 体系中的异常中断 异常中断名称 复位(RESET) 含义 当处理器的复位引脚有效时 , 系统产生...
  ARM体系结构的异常_IT/计算机_专业资料。异常当正常的程序执行流程发生暂时停止... ARM的七种异常类型 50页 1下载券 注册表各项详解 61页 免费 sql server ...
 在处理异常之前,必须保留处理器状态,以便在异常处理程序完成后, 使原来的程序能够重新执行。同一时刻可能出现多个异常。ARM支持七种类型的异常。异 常出现后,系统...
 可以接受 1 七种类型:以上三种状态、三种时态可能存在大气排放、废水排放、噪声... 7页 免费 ARM的七种异常类型 50页 1下载券喜欢此文档的还喜欢...
 1. ARM 有七种工作方式 有七种工作方式: 用户模式(主要的工作模式) 用户模式(主要的工作模式) , 特权模式(供操作系统一种保护的模式,也成管理模式) 特权模式(...
  七种 ARM 工作模式: 1) ( 用户模式(usr): 正常的程序执行模式; 2) ( ...异常模式的 SPSR; (3)强制使 CPSR 模式 位置成对应异常类型的值:根据异常类型...
赞助商链接
别人正在看什么?
赞助商链接

我要回帖

更多关于 vi保存退出 的文章

 

随机推荐