==========================================

转载时请注明出处和作者联系方式

文章出处:http://blog.csdn.net/longintchar

作者联系方式:longintchar@163.com

=====================================



肯定有的朋友和我一样,对2440里面的中断寄存器迷惑,屡不清脉络。结合网上资料和自己的琢磨,我大概搞清楚了。先上图,以飨读者。

1.  中断分为两大类

(1)外部中断

个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。这些中断对应的是片子上的引脚,用的时候,需要把引脚配置为中断模式,并且不要上拉。他们的触发方式由寄存器EXTINT0-EXTINT2设置(比如上升沿,下降沿等)。

EINTPEND:这个是中断挂起寄存器,清除时要写1。当一个外部中断(EINT4-EINT23)发生后,那么相应的位会被置1。   

EINTMASK:这个是屏蔽中断用的,尽管 EINTPEND你置位了,但是这个寄存器可以把你屏蔽掉。如果你没有被屏蔽,那么恭喜你闯入下一关—— SRCPND。

对于EINT4-EINT23,他们比较幸运,根本不受EINTPEND和EINTMASK的控制,直接进入SRCPND关卡与其他中断源“PK”。

(2)内部中断

带子中断的内部中断有15个(见图表1),他们受控于寄存器SUBSRCPND和 INTSUBMSK,这两个寄存器的功能和上面的EINTPEND和EINTMASK类似,如果能闯过这两关,自然进入下一关—— SRCPND。

对于不带子中断的内部中断(一共20个),也算是种子选手了,不受上面2个寄存器的控制,直接进入SRCPND关卡与其他中断源“PK”。



2. SRCPND平台来PK,快中断耍大牌

好了,现在闯入SRCPND关卡的选手开始PK了。规则是什么呢?

SRCPND:来自四个参赛组的中断源,如果占据天时地利的话,会在这个寄存器占有一席之地。接下来,考察一下他们的中断模式。

 INTMOD:一个中断可以是普通中断,也可以是快中断。需要在这里设置,但最多只能有一个快中断。

如果有幸被设置成唯一的快中断,那么你就坐上了中断服务的快车,享受最高优先级,系统优先响应你的需求,进入FIQ服务函数哦!如果没有,也不要灰心,还有机会。

3. 普通中断竞争激烈

 INTMSK
:中断屏蔽寄存器。在SRCPND中出现的普通中断,又要在这个平台筛选一下,如果没有被屏蔽,恭喜进入下一关哦。

 PRIORITY:优先级寄存器。来到这一关的中断源会决一死战,只能有一个胜出。

4. 最后的胜利

上一轮胜出的选手也就是最后的赢家了,得到的奖赏就是 INTPND 寄存器的对应位置1,同时 INTOFFSET 寄存器保存对应的值(0-31)。当然,最大的实惠就是进入IRQ服务函数。

S3C2440 中断相关寄存器小探的更多相关文章

  1. s3c2440中断控制器操作

    一.ARM中断体系结构 arm有7中异常工作模式 用户模式.快中断模式.管理模式.数据访问终止模式.中断模式.系统模式.未定义指令终止模式. 几种模式有什么不同呢, 1.不同的寄存器 2.不同的权限 ...

  2. DSP EPWM学习笔记2 - EPWM相关寄存器设置问题解析

    DSP EPWM学习笔记2 - EPWM相关寄存器设置问题解析 彭会锋 本篇主要针对不太熟悉的TZ 故障捕获 和 DB 死区产生两个子模块进行学习研究 感觉TI的寄存器命名还是有一定规律可循的 SEL ...

  3. LGDT/LIDT-加载全局/中断描述符表寄存器

    将源操作数中的值加载到全局描述符表寄存器 (GDTR) 或中断描述符表寄存器 (IDTR).源操作数指定 6 字节内存位置,它包含全局描述符表 (GDT) 或中断描述符表 (IDT) 的基址(线性地址 ...

  4. WinForms C#:html编辑器工程源码,含直接写WebBrowser的文件流、IPersistStreamInit接口的声明和一些相关的小方法

    原文:WinForms C#:html编辑器工程源码,含直接写WebBrowser的文件流.IPersistStreamInit接口的声明和一些相关的小方法 首先多谢朋友们的捧场: 今天给大家带来一个 ...

  5. STM32 通用定时器相关寄存器

    TIMx_CR1(控制寄存器1) 9-8位:CKD[1:0]时钟分频因子,定义在定时器时钟(CK_INT)频率与数字滤波器(ETR,TIx)使用的采样频率之间的分频比例. 定义:00(tDTS = t ...

  6. SD/MMC相关寄存器的介绍

    1.SD卡内部架构 在熟悉SD/MMC相关寄存器之前,我们先来看看SD卡的内部架构是怎么样的,如下图所示: 2.SD/MMC相关寄存器的介绍 从上图中总结出:SD卡内部有7个寄存器. 一.OCR,CI ...

  7. STC12C5A60S2 常用的中断源和相关寄存器

    1) 中断源 STC12C5A60S2共有十个中断源,每个中断源可设置4类优先级:当相同优先级下各中断优先级由高到低依次如下: 1.1)INT0(外部中断0) 中断向量地址 0003H, C语言编程: ...

  8. S3C2440中断

    韦东山老师一期中断课程学习: 总结: 程序启动后工作流程,程序从0地址开始执行Reset  --> 重定位  -->ldr pc,=main [绝对跳转到SDRAM中执行main()函数] ...

  9. 朱晔和你聊Spring系列S1E5:Spring WebFlux小探

    阅读PDF版本 本文会来做一些应用对比Spring MVC和Spring WebFlux,观察线程模型的区别,然后做一下简单的压力测试. 创建一个传统的Spring MVC应用 先来创建一个新的web ...

随机推荐

  1. 基于注解的DI(DI:Dependency Injection 依赖注入)

    注解方式xml里面就不需要注册bean了. 构建注解需要 1.导入spring-aop-4.2.1.RELEASE.jar 包  2.需要更换配置文件头,即添加相应的约束. 现在的Student类就要 ...

  2. web.xml文件的Url-pattern 节点配置

  3. iOS组件化方案

    一.蘑菇街url-block方案 这是蘑菇街中应用的一种页面间调用的方式,通过在启动时注册组件提供的服务,把调用组件使用的url和组件提供的服务block对应起来,保存到内存中.在使用组件的服务时,通 ...

  4. 国内物联网平台(6):庆科云FogCloud

    国内物联网平台(6)——庆科云FogCloud 马智 平台定位 FogCloud 快速接入智能硬件 FogCloud为开发者提供便捷的智能硬件接入服务,真正实现敏捷开发,快速迭代. FogCloud提 ...

  5. 抽象类(abstract)【转】

    抽象类(abstract) abstract修饰符可以和类.方法.属性.索引器及事件一起使用.在类声明中使用abstract修饰符以指示某个类只能是其它类的基类.标记为抽象或包含在抽象类中的成员必须通 ...

  6. vs code进行c/c++开发

    vs code是微软公司开发的跨平台编辑器,丰富的插件功能可以满足各种编程语言的编码,编译和调试.由于vs code本身只是一个编辑器,所以你需要准备编译工具链.本文针对的是windows系统,我这里 ...

  7. Mybatis的输出结果封装

    resultType属性可以指定结果集的类型,它支持基本类型和实体类类型. 需要注意的是,它和parameterType一样,如果注册过类型别名的,可以直接使用别名. 没有注册过的必须使用全限定类名. ...

  8. Ubuntu小记

    一. Ubuntu分区记忆 参考教程调整: 1. /boot用于安装grub,设为主分区 2. /根目录20G一般足够 3. /home剩下的给home 4. swap空间=物理内存 挂载点 大小 类 ...

  9. [BZOJ4521][Cqoi2016]手机号码 (数位dp)

    题目描述 人们选择手机号码时都希望号码好记.吉利.比如号码中含有几位相邻的相同数字.不含谐音不吉利的数字等.手机运营商在发行新号码时也会考虑这些因素,从号段中选取含有某些特征的号码单独出售.为了便于前 ...

  10. Linux配置国内的Yum源

    因为Linux默认的yum源是国外的源,所以会有卡顿,缓慢的情况.而国内的Yum源相对速度较快,现在也比较成熟,所以给Linux更换国内Yum源是一个很好的选择. 1.  备份(备份之前需要yum i ...