位置:51电子网 » 技术资料 » 嵌入式系统

FIQ异常的描述

发布时间:2008/12/22 0:00:00 访问次数:1824

  1. fiq (fastinterrupt request)

  fiq异常是为了支持数据传输或者通道处理而设计的。在arm状态下,系统有足够的私有寄存器,从而可以避免对寄存器保存的需求,并减小了系统上下文切换的开销。

  若将cpsr的f位置为1,则会禁止fiq中断;若将cpsr的f位清零,则处理器会在指令执行时检查fiq的输入。注意:只有在特权模式下才能改变f位的状态。可由外部通过对处理器上的nfiq引脚输入低电平产生fiq。

  不管是在arm状态还是在thumb状态下进入fiq模式,fiq处理程序均会执行以下指令从fiq模式返回。

  该指令将寄存器r14_fiq的值减去4后,复制到程序计数器pc中,从而实现从异常处理程序中返回,同时将spsr_mode寄存器的内容复制到当前程序状态寄存器cpsr中。

  2. irq(interrupt request)

  irq异常属于正常的中断请求,可通过对处理器的nirq引脚输入低电平产生。irq的优先级低于fiq,当程序执行进入∏q异常时,irq可能被屏蔽。

  若将cpsr的i位置为1,则会禁止irq中断;若将cpsr的i位清零,则处理器会在指令执行完之前检查irq的输入。注意:只有在特杈模式下才能改变i位的状态。

  不管是在arm状态还是在thumb状态下进入irq模式,irq处理程序均会执行以下指令从irq模式返回。

  该指令将寄存器r14_irq的值减4后,复制到程序计数器pc中,从而实现从异常处理程序中返回,同时将spsr_mode寄存器的内容复制到当前程序状态寄存器cpsr中。

  3.abort(中止)

  产生中止异常意味着对存储器的访问失败。arm微处理器在存储器访问周期内检查是甭发生中止异常。中止异常包括两种类型:

  (1)指令预取中止:发生在指令预取时。

  (2)数据中止:发生在数据访问时。

  当指令预取访问存储器失败时,存储器系统向arm处理器发出存储器中止(abort)信号,预取的指令被记为无效;但只有当处理器试图执行无效指令时,指令预取中止异常才会发生;如果指令未被执行,例如,在指令流水线中发生了跳转,则预取指令中止不会发生。若数据中止发生,则系统的响应与指令的类型有关。

  当确定了中止的原因后,无论是在arm状态还是thumb状态,abort处理程序均会执行以下指令从中止模式返回。

  以上指令恢复pc(从r14_abt)和cpsr(从spsr_abt)的值,并重新执行中止指令。

  4.software interrupt(软件中断)

  软件中断指令(swi)用于进入管理模式,常用于请求执行特定的管理功能。无论是在arm状态还是thumb状态,软件中断处理程序均执行以下指令从swi模式返回。

  欢迎转载,信息来源维库电子市场网(www.dzsc.com)



  1. fiq (fastinterrupt request)

  fiq异常是为了支持数据传输或者通道处理而设计的。在arm状态下,系统有足够的私有寄存器,从而可以避免对寄存器保存的需求,并减小了系统上下文切换的开销。

  若将cpsr的f位置为1,则会禁止fiq中断;若将cpsr的f位清零,则处理器会在指令执行时检查fiq的输入。注意:只有在特权模式下才能改变f位的状态。可由外部通过对处理器上的nfiq引脚输入低电平产生fiq。

  不管是在arm状态还是在thumb状态下进入fiq模式,fiq处理程序均会执行以下指令从fiq模式返回。

  该指令将寄存器r14_fiq的值减去4后,复制到程序计数器pc中,从而实现从异常处理程序中返回,同时将spsr_mode寄存器的内容复制到当前程序状态寄存器cpsr中。

  2. irq(interrupt request)

  irq异常属于正常的中断请求,可通过对处理器的nirq引脚输入低电平产生。irq的优先级低于fiq,当程序执行进入∏q异常时,irq可能被屏蔽。

  若将cpsr的i位置为1,则会禁止irq中断;若将cpsr的i位清零,则处理器会在指令执行完之前检查irq的输入。注意:只有在特杈模式下才能改变i位的状态。

  不管是在arm状态还是在thumb状态下进入irq模式,irq处理程序均会执行以下指令从irq模式返回。

  该指令将寄存器r14_irq的值减4后,复制到程序计数器pc中,从而实现从异常处理程序中返回,同时将spsr_mode寄存器的内容复制到当前程序状态寄存器cpsr中。

  3.abort(中止)

  产生中止异常意味着对存储器的访问失败。arm微处理器在存储器访问周期内检查是甭发生中止异常。中止异常包括两种类型:

  (1)指令预取中止:发生在指令预取时。

  (2)数据中止:发生在数据访问时。

  当指令预取访问存储器失败时,存储器系统向arm处理器发出存储器中止(abort)信号,预取的指令被记为无效;但只有当处理器试图执行无效指令时,指令预取中止异常才会发生;如果指令未被执行,例如,在指令流水线中发生了跳转,则预取指令中止不会发生。若数据中止发生,则系统的响应与指令的类型有关。

  当确定了中止的原因后,无论是在arm状态还是thumb状态,abort处理程序均会执行以下指令从中止模式返回。

  以上指令恢复pc(从r14_abt)和cpsr(从spsr_abt)的值,并重新执行中止指令。

  4.software interrupt(软件中断)

  软件中断指令(swi)用于进入管理模式,常用于请求执行特定的管理功能。无论是在arm状态还是thumb状态,软件中断处理程序均执行以下指令从swi模式返回。

  欢迎转载,信息来源维库电子市场网(www.dzsc.com)



相关IC型号

热门点击

 

推荐技术资料

DFRobot—玩的就是
    如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!