嵌入式学习之IRQ和FIQ之间的区别

      IRQ和FIQ是ARM处理器的两种编程模式。IRQ是指中断模式,FIR是指快速中断模式。对于 FIQ 你必须尽快处理你的事情并离开这个模式。IRQ 可以被 FIQ 所中断,但 IRQ 不能中断 FIQ。为了使 FIQ 更快,所以这种模式有更多的影子寄存器。FIQ 不能调用 SWI(软件中断)。FIQ 还必须禁用中断。如果一个 FIQ 例程必须重新启用中断,则它太慢了,并应该是 IRQ 而不是 FIQ。

      对FIQ你必须进快处理中断请求,并离开这个模式。
      IRQ可以被FIQ所中断,但FIQ不能被IRQ所中断。在处理FIQ时必须要关闭中断。

      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。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IRQ中断请求)和WID(工作标识符)是在计算机系统中使用的两种不同的概念,它们有以下区别: 1. 功能:IRQ是一种机制,用于向处理器发出中断请求信号,以指示某个设备或事件需要处理器的注意。当设备或事件触发中断请求时,处理器会中断当前任务,保存上下文,并跳转到中断服务程序来处理中断请求。而WID是一种标识符,用于标识和区分不同的工作或任务。 2. 用途:IRQ用于处理和响应硬件中断。当外部设备需要与处理器进行通信、请求处理或报告事件时,会触发相应的IRQ信号,处理器会相应地进行中断处理。而WID主要用于任务调度和管理。它可以用来标识和跟踪不同的工作单元或任务,以便操作系统或调度器可以对其进行管理和分配资源。 3. 触发方式:IRQ是由外部事件或设备触发的,通常是通过硬件电平或边沿触发的中断信号。而WID是由软件或操作系统分配和控制的,在任务切换或工作单元切换时切换。 4. 范围:IRQ通常是全局范围的,可以被任何设备或事件触发并响应。而WID是针对特定的任务或工作单元,只在特定的上下文中有效。 总的来说,IRQ是用于处理硬件中断请求的机制,而WID是用于标识和管理任务或工作单元的标识符。它们在功能、用途、触发方式和范围上有所不同,但在计算机系统中都发挥着重要的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值