历史上的今天
今天是:2025年01月18日(星期六)
2021年01月18日 | 快速学Arm(27)--向量中断控制器VIC(5)
2021-01-18 来源:eefocus
接着上篇,再继续讲,我们再看一下IRQ.被设置为IRQ的中断源是可以进行优先级设置的.
在中断源表中,32个中断源都可以被分配为IRQ,那么这些中断源同时到达的时候,先处理哪一个中断?因此不同的IRQ要被分配不同的优先级,而IRQ是,而已被分配(0~15)供16个优先级,其中0优先级最高,而15优先级最低.
当有多个中断请求被分配为IRQ时,VIC会将它们"相或"后,在向处理器发送IRQ信号.

要让外设的中断请求得到响应,需要进行初始化操作.其流程是这样的.

我们再讲一下IRQ中断请求响应的过程,看一下下面的图:

我们来叙述一下:
1.用户正在执行.
2.发送外部中断0中断
3.VIC硬件自动将中断服务程序地址装入到VICVectAddr寄存器中.例如将VICVectAddr14的内容装入到VICVectAddr寄存器中.
4.执行流转至向量表IRQ入口处.
5.在IRQ入口,读取VICVectAddr里的服务程序地址:LDR PC,[PC,#-0x120]
6.中断服务程序结束,继续执行被中断的用户代码.
FIQ优先级最高,响应最迅速,常用于处理系统中最重要紧急的中断事务.一般来说都是用于一些安全处理.FIQ之所以比较快,是因为ARM为FIQ设计了8个专用的寄存器,发送FIQ中断时这8个寄存器无需压站,这使得处理速度被大大提高,中断延迟被缩短.在主函数中使能FIQ中断,然后编写FIQ处理程序即可使用FIQ.下面给出一个FIQ在EInt0中断请求处理中的应用例子:

1.首先通过VICIntSelect选择EINT0的中断类型.
2.使能中断:VICIntEnable=1< 可以将中断请求分配为向量IRQ.优先级也可以在16个中断优先级中进行选择,同时,也可以通过编程屏蔽任一优先级的向量IRQ.每一个中断源都有一个专门的中断优先级寄存器和向量地址寄存器. 1.选择中断类型 2.IRQ设置 3.清除中断标志 4.使能中断. T0IR=0x01 //清除中断标志. VICVectAddr=0 //通知VIC中断结束
每个通道对应着前一篇中的中断源表.下面以向量IRQ在定时器0中断请求处理内的应用为例来描述IRQ的操作.

中断响应完成后,还需要执行以下的操作:
史海拾趣
|
protel dxp中为什么没有intel的元件,到那可以下载到啊,谁能告诉我一下。 另外,在99se中有元件库Intel Databooks.ddb,怎么把他导入dxp中使用。… 查看全部问答> |
|
一、前言 模拟传感器的应用非常广泛,不论是在工业、农业、国防建设,还是在日常生活、教育事业以及科学研究等领域,处处可见模拟传感器的身影。但在模拟传感器的设计和使用中,都有一个如何使其测量精度达到最高的问题。而众多的 ...… 查看全部问答> |
|
Altium Designer Summer 08 集成库 pcb封装 sch封装 这是Altium Designer Summer 08 集成库 是三年用这个软件自己做的所有封装,里面基本上涵盖了所有的常用元件,单片机封装,很实用。对于单片机学习者相当的有帮助! [ 本帖最后由 water1987 于 2010-1-11 10:40 编辑 ]… 查看全部问答> |
|
现在想做一个加油站的加油数据采集和无线传输,数据采集和数据传输功能需要哪些设备?特别是无线数据传输这块,预计采用GPRS网络进行传输,不知道完成这个传输功能应该采用什么设备? 1.是基于GPRS网卡的二次开发? 2.直接使用GPRS DTU,这个价格 ...… 查看全部问答> |
|
我在课件上看到,STC89C52RC单片机的地址,只有80H-FFH这段地址能用程序来控制, 这就是在REG52.H头文件中被定义了,至于00H-7EH这段是被称为\"直接或间接寻址寄存器\", 一共分为四个区的,请问这四个区, 既然不能被程序控制,那么它是用在存放什么数据的 ...… 查看全部问答> |
|
前段时间抄了一块超声波电子白板的原理图,现在样品也做出来了,不过对超声波信号接收总是存在波动。估计是前端接收到的超声波信号放大处理存在问题,请哪位大神帮我分析下下面超声波信号的放大处理电路。 1.MK是超声波接收头,频率40K。 2.DS1 ...… 查看全部问答> |




