历史上的今天
今天是:2025年02月06日(星期四)
2021年02月06日 | 基于S3C6410的ARM11学习(十六) 外部中断
2021-02-06 来源:eefocus
中断的过程如下:
中断源检测中断信号产生,然后将中断信号发送给中断控制器,中断控制器判断该中断是否被屏蔽,从而决定该中断信号是否要发送给CPU。中断信号发送给CPU后,CPU对中断进行处理,也就是调用中断函数。
上述过程,基本上是嵌入式的通过中断处理过程,只是不同的嵌入式在这三部分配置有区别而已。
S3C6410共有64个中断源。
上图是S3C6410的中断控制器,这里就关心红色框部分。这两个是中断控制器,分别管理各自的32个中断。

这里,就截取了一部分的图。总共有64个中断,每个中断有自己的标号,以及自己的所属组,也是属于哪个中断控制器控制。标号是指在对应的中断控制器寄存器的哪一位或者是哪一个寄存器对应自己。如INT_EINT0,这个是外部中断0,属于VIC0,标号是0。说明VIC0的寄存器的第0位或者是第0个寄存器对应外部中断0这个中断。
本章,是关心外部中断的部分。S3C6410共有127个外部中断,其I0引脚及分组如下:
S3C6410将外部中断分成了10组。每一组有相应的管脚。对于外部中断组0,可以使用GPN0-GPN15这16个管脚。
除了分组,还对组分配了中断号:

属于外部中断组0的27个中断占用了VIC里的4个中断号,分别是外部中断0-3,外部中断4-11,外部中断12-19,外部中断20-27。外部中断组1-9只占用了1个中断号。
为了节约中断,不可能为每个外部管脚都分配一个中断号,所以就会把某几个外部中断给合并成一个中断号。例如,对于外部中断0-3,就合并成了一个中断号,INT_EINT0。当这4个中断有任意一个产生中断时,INT_EINT0会挂起,CPU就会知道产生了外部中断0-3中断,然后去执行中断处理,在中断服务程序中,为了知道具体是哪一个中断,还需要去查询寄存器以知道是哪一个中断产生。
S3C6410中断处理有向量模式和非向量方式。因为要与之前的ARM系列兼容,所以保存了非向量方式。非向量方式,就是当中断产生时,都跳转到中断异常去,然后这个中断异常中,编写程序,判断是哪一个中断产生,然后去执行对应的中断处理程序。但是在非向量模式中,提前设定每个中断对应的入口地址,这样当中断产生的时候,就不用跳转到中断异常去了,直接跳转到对应的中断程序去了。这样中断处理的效率就提高了。
在我的设计中,使用的就是中断向量方式。推荐用中断向量方式。
上一篇:基于ARM 的汽车“黑匣子”设计
下一篇:arm单片机的内核结构
史海拾趣
|
如果没有遵循一些基本的布局指南,PCB设计将会限制D类放大器的性能或降低其可靠性。下面描述了D类放大器一些好的PC板布局实践经验。采用带有两个BTL输出的STA517B(每通道175瓦)数字功率放大器作为范例,但对所有的D类放大器而言,其基本概念是一致 ...… 查看全部问答> |
|
现在大陆市场中,由于监控发展较晚!红外半球摄像机红外灯被大陆的经销商和工程商吵的是如何如何的好,像什么白天一样!晚上没有任何光源,都能很清晰的分晰这个人是谁,这些话虽然让产品卖出去了,可是搞伤了我们技术人员和工程人员,验收那个难啊 ...… 查看全部问答> |
|
求梅兰日兰UPS中文使用说明书 请问哪位师傅手里有梅兰日兰UPS中文使用说明书啊,帮忙给传一下,或者给个网址也行啊,UPS是4.2KW、6KVA,我先谢谢啦!… 查看全部问答> |
|
nand flash里bootloader的结构如下: 0:nboot 1:tocblock1 file 2:eboot 有人这样安装吗? 有人改写过nboot吗? 我的板子是2410的,我从网上找到了2410 BSP里面关于nboot的代码 读了下nboot里面的代码,硬件主要是初始化串口,感觉这些是通用的, ...… 查看全部问答> |
|
WINCE 5.0 WZCEnumInterfaces 无法取得GUID,只取道名字 使用这个名字,调用WZCQueryInterface无法获得WEP Key的信息。 在Windows XP SP2中,使用同样的方法,没有问题。… 查看全部问答> |
|
看了GOOOGLEMAN的文章 http://www.cnblogs.com/wogoyixikexie/archive/2009/05/06/1450503.html 在platform->setting->environment 中设置IMGSDBUS2 = 1 在common.bib中也修改过 根本内容我也修改了BSP.C:\\WINCE500\\PLATFORM\\smdk2440\\DRIV ...… 查看全部问答> |
|
哪为江湖大虾有研究过播放器Mplayer的原代码啊,特别是它Demux是如何处理的,最好能讲讲Mplayer的主处理函数,和详细的Demux过程?小弟不胜感激!… 查看全部问答> |




