zoukankan      html  css  js  c++  java
  • S3C2440 中断相关寄存器小探

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

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

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

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


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



    1.  中断分为两大类

    (1)外部中断

    24个外部中断占用GPF0-GPF7EINT0-EINT7),GPG0-GPG15EINT8-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服务函数。




  • 相关阅读:
    P3384 【模板】树链剖分
    AW136 邻值查找 (【模板】set)
    android布局自适应
    android HttpClient接口实现网络通信
    android加载html,以及js通讯
    mktime 和strtotime获取今日、昨日、上周、本月的起始时间戳和结束时间戳,
    mysql查询今天,昨天,近7天,近30天,本月,上一月数据方法
    瀑布流(masonry和infinitescroll)、(grid-a-licious)
    使用 JavaScript 修改浏览器 URL 地址栏
    测试UTF8编码的文件是不是加了BOM
  • 原文地址:https://www.cnblogs.com/longintchar/p/5224449.html
Copyright © 2011-2022 走看看