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

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

文章出处:http://blog.csdn.net/longintchar
作者联系方式:longintchar@163.com

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


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

1.  中断分为两大类

(1)外部中断

24个外部中断占用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. 51单片机中断相关寄存器

    52单片机中断级别 中断允许寄存器IE EA--全局中断                ES--串口中断 ET2--定时器2中断         EX1--外部中断1 ET1--定时器1 中断     ...

  2. ARM Cortex-M3与Cortex-M4中断相关寄存器

    NVIC寄存器列表 中断使能寄存器 设置中断挂起和清除中断挂起 中断活跃状态寄存器 中断优先级寄存器 软件触发中断寄存器 中断控制器类型寄存器 SCB寄存器 中断控制和状态寄存器(ICSR).向量表偏 ...

  3. Linux DTS中和中断相关属性的解释和用法

    Linux DTS中和中断相关属性的解释和用法 前言 中断控制器的硬件结构(基于Exynos4412 ARMv7) GIC Interrupt Combiner DTS对中断的描述 DTS中断实例解析 ...

  4. 飞腾CPU相关寄存器描述(持续更新)

    飞腾CPU相关寄存器描述(持续更新) SPSel堆栈寄存器选择寄存器 EL1/2/3都可以读写 32位长度. SP, bit[0], 控制堆栈寄存器的选择. 0-->CPU无论处于什么权限级,堆 ...

  5. OpenHarmony HDF 按键中断开发基于小熊派hm micro

    文章目录 一.驱动代码 1.1.button驱动 1.2 gpio驱动 1.2.1.gpio核心层 1.2.2.gpio驱动 二.中断处理过程 三.小结 本章使用gpio中断来实现按键驱动,重点在于理 ...

  6. ARM7的相关寄存器

    本文转自百度文档 ARM7的相关寄存器     在汇编语言中寄存器 R0-R13 为保存数据或地址值的通用寄存器.它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令 ...

  7. S3C2440中断解析和基于WINCE操作系统的中断分析(整理于网络,用于按键中断使用)

    在调试CAN总线的时候,遇到了操作系统的中断,为了彻底的弄清楚中断是怎么回事?我先从底层的中断开始研究,在这里我们只讨论外部中断,下面就结合S3C2440TEST测试程序来分析一下中断是怎么执行的:我 ...

  8. STM32 定时器中断相关知识及配置

    实验工具:MDK5,STM32F103ZET6开发板 使用固件库编程 上一次学习的是利用定时器4,CH2通道产生PWM波来控制LED灯的闪烁,具体可以参考鱼撞烟花,在最后有代码连接. 这次学习定时器的 ...

  9. 【嵌入式开发】ARM 关闭中断 ( CPRS 中断控制位 | 中断使能寄存器 | 中断屏蔽寄存器 | 关闭中断 | 汇编代码编写 )

    一. 中断控制 ( 基于 S3C6410 开发板 ) 1. 关闭中断的两个步骤 (1) 关闭中断步骤 2. CPRS 寄存器中的中断控制位 (1) CPRS 寄存器简介 (2) CPRS 寄存器 中断 ...

最新文章

  1. 科普长文揭秘生命为何会具有主观能动性
  2. matlab生成西门子plc源文件,西门子PLC如何把DB快做成源文件
  3. 高级程序员要有动态调整责权和成员工作状况的能力
  4. 如何用iOS工程生成iOS模拟器包
  5. [Stage3D]硬件加速的径向模糊
  6. 图像(帧)分块机制(patch mechanism)
  7. 从分析***方式来谈如何防御DDoS***
  8. 聊聊我在美团做算法的感受
  9. CS224N笔记——依存句法分析
  10. 190104每日一句
  11. 网页设计中常用的Web安全字体
  12. 进位位判别法_判断加减法溢出时,可采用判断进位的方式,如果符号位的进位为C...
  13. 计算机c盘加容量,win7 增加c盘空间方法_win7 如何增加c盘容量-win7之家
  14. Yolov3中xmin,ymin,xmax,ymax的疑惑
  15. 数据资产管理的5个步骤和6个要素
  16. librtmp h265 推流
  17. 淘宝母婴用品数据分析
  18. 抢占国内射频前端主序市场,「慧智微」的打法是推可重构射频前端架构
  19. 大字段如何对查询产生影响
  20. C++ 四舍五入与不四舍五入

热门文章

  1. VMware安装Linux ubuntu虚拟机
  2. Pycharm中Python3连接Oracle
  3. EasyNVR支持的摄像机、NVR设备接入类型以及关于国标设备是否支持接入EasyNVR无插件流媒体服务器...
  4. ElasticSearch 2 (37) - 信息聚合系列之内存与延时
  5. 【转】获取命名空间、类名、方法名
  6. Array.prototype.slice.call(arguments)对象转成数组
  7. ubuntu12.10安装openssh-server与本身的软件冲突
  8. Asp.net高级程序设计之服务器控件(4)
  9. 梯度下降法,牛顿法,高斯-牛顿迭代法,附代码实现
  10. java lamda循环条件_Java lambda 循环累加求和代码