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)
上一篇:ARM指令介绍
上一篇:ARM异常的响应及返回
热门点击
- ARM通用寄存器
- FIQ异常的描述
- Viterbi译码
- ARM程序状态寄存器
- ARM时序
- ARM乘法指令
- Thumb状态下的寄存器
- ARM异常的响应及返回
- ARM状态寄存器访问指令
- 常用自动控制系统设计的案例要求和应用对象
推荐技术资料
- DFRobot—玩的就是
- 如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]