VIC所包含多个寄存器,所有寄存器都为字寄存器。不支持字节和半字的读和写操作。下面按照VIC逻辑中的使用顺序对VIC寄存器进行描述,该顺序为:从与中断请求输入最密切的寄存器到由软件使用的最抽象的寄存器。
1.软件中断寄存器VICSoftInt
在执行任何逻辑之前,将该寄存器的内容与32个不同外设的中断请求相或。VICSoftInt寄存器的功能如表3-20所列。
表3-20 VICSoftInt寄存器功能
2.软件中断清零寄存器VICSoftIntC1
该寄存器在不需读取软件中断寄存器的情况下,可用软件清零软件中断寄存器中的一个。VICSoftIntC1寄存器的功能如表3-21所列。
表3-21 VICSoftIntC1寄存器功能
3.所有中断状态寄存器VICRawIntr
该寄存器读取所有32个中断请求和软件中断的状态,不管中断是否使能或分类。VICRawIntr寄存器的功能如表3-22所列。
表3-22 VICRawIntr寄存器功能
4.中断使能寄存器VICIntEnable
该寄存器使能分配为FIQ或IRQ的中断请求或软件中断。VICIntEnable寄存器的功能如表3-23所列。
表3-23 VICIntEnable寄存器功能
5.中断使能清零寄存器VICIntEnC1
该寄存器在不需要读取中断使能寄存器的情况下,可用软件清零其中的一个或多个位。VICIntEnC1寄存器的功能如表3-24所列。
表3-24 VICIntEnC1寄存器功能
6.中断选择寄存器VICIntSelect
该寄存器将32个中断请求分别分配为FIQ或IRQ。VICIntSelect寄存器的功能如表3-25所列。
表3-25 VICIntSelect寄存器功能
7.IRQ状态寄存器VICIRQStatus
该寄存器读取使能并分配为IRQ的中断请求状态,不区分向量和非向量IRQ。VICIRQStatus寄存器的功能如表3-26所列。(www.daowen.com)
表3-26 VICIRQStatus寄存器功能
8.FIQ状态寄存器VICFIQStatus
该寄存器读取使能并分配为FIQ的中断请求状态。如果有超过一个请求分配为FIQ,FIQ服务程序可读取该寄存器来确定是哪个请求被激活。VICFIQStatus寄存器的功能如表3-27所列。
表3-27 VICFIQStatus寄存器功能
9.向量控制寄存器VICVectCnt10~VICVectCntl15
每个寄存器控制16个向量IRQ slot中的一个。slot0最高,slot15最低。在VICVectCnt1寄存器中禁止一个向量IRQ slot不会禁止中断本身,中断只是变为非向量的形式。VICVectCnt10~15寄存器的功能如表3-28所列。
表3-28 VICVectCntl0~15寄存器功能
10.向量地址寄存器VICVectAddr0~VICVectAddr15
这些寄存器保存16个向量IRQ slot中断服务程序的地址,VICVectAddr0~15寄存器的功能如表3-29所列。
表3-29 VICVectAddr0~15寄存器功能
11.默认向量地址寄存器VICDefVectAddr
该寄存器保存非向量IRQ中断服务程序的地址,VICDefVectAddr寄存器的功能如表3-30所列。
表3-30 VICDefVectAddr寄存器功能
12.向量地址寄存器VICVectAddr
当发生一个IRQ中断时,IRQ服务程序可读取该寄存器并跳转到读出的地址,VICVectAddr寄存器的功能如表3-31所列。
表3-31 VICVectAddr寄存器功能
13.保护使能寄存器VICProtection
运行在用户模式下的软件使用该寄存器来控制对VIC寄存器的访问,VICProtection寄存器的功能如表3-32所列。
表3-32 VICProtection寄存器功能
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。