文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>FIQ,向量中断IRQ,非向量中断IRQ

FIQ,向量中断IRQ,非向量中断IRQ

时间:2010-03-15  来源:zxg623

1.概述

VIC最多可以有32个中断请求输入,可将其通过配置分成3类:FIQ,向量中断IRQ,非向量中断IRQ。

 

2.对比

A:三者优先级不同

FIQ与向量IRQ的优先级可以通过配置相应的SFR来调整,但非向量中断IRQ不可以。其中FIQ优先级最高,其次是向量IRQ,非向量IRQ最低。其中向量IRQ的优先级又分为16个slot,slot0的优先级在向量IRQ中最高,slot15最低。

B:入口地址不同

此部分要结合异常向量表来理解,在7种异常中,IRQ与FIQ分别占2种,入口地址分别是:0X00000018,0X0000001C。也就是当发生这2种异常的时候,PC会自动转到这2个地址来。可以参考一般的部分启动代码:

........

LDR PC, [PC,#-0XFF0]    ;IRQ

LDR PC, FIQ_Addr             ;FIQ

......

 

这里FIQ很好理解,但这里的IRQ为什么要PC-0XFF0呢?

结合ARM7的三级流水线,这个问题应该就很简单了,当程序跳到0X18执行指令的时候,PC应该是0x18+8=0x20,然后0x20-0xff0=0xfffff030,此处0XFFFFF030正好是VICVectAddr的地址,意思就是通过一条简单的ARM指令,实现了IRQ的程序跳转

 

3.向量IRQ与非向量IRQ的定义与区别

A : 这里主要针对向量IRQ与非向量IRQ来说。在所有的中断源中(ARM7为19个),如果被定义为向量IRQ,那么没有被定义的中断源所引起的中断,全部为非向量中断。

B:每个向量IRQ都可以分配一个入口地址,但所有的非向量IRQ使用一个入口地址。

 

相关阅读 更多 +
排行榜 更多 +
弓箭手战士酷跑

弓箭手战士酷跑

飞行射击 下载
三角洲行动全面战场攀升A点进攻指南

三角洲行动全面战场攀升A点进攻指南

飞行射击 下载
僵尸射手世界大战

僵尸射手世界大战

飞行射击 下载