S3C2440的中断机制

        中断对于任何控制器都是非常重要的,控制器的中断机制直接决定了该控制器的实时响应能力,并对于软件的设计也有直接影响,所以当初开始学arm9的时候,我特别注意了中断部分,实际上,我感觉在学一款新的控制器的时候,首先要看的就三个部分:时钟机制,存储器机制,中断机制,把这三个最重要的机制看明白了,剩下的外设用到时查看手册就可以了。(今天在用到s3c2440的中断时,感觉生疏了好多,所以感觉写个总结,方便日后复习。。。)

对于任何一个控制器来说,中断一般会有以下几个部分需要控制:

       (1)分别控制各中断的寄存器

       (2)控制中断的总开关

       (3)控制各中断的优先级寄存器

       (4)记录中断产生的寄存器

    控制器的中断机制其实都不复杂(我接触到的控制器中,感觉cortex-m3系列的中断是有点小麻烦的,当然这也是这个系列控制器最突出的优势),主要是要找出配置流程,但总的流程都差不多。

        实际上,如果把自己想象成是一个CPU,然后把中断机制比喻成一场"选秀节目",可以这么描述:

    首先得对这些(中断一般会有很多)“中断”进行一个"海选",“海选”就对应着上面4个部分第一项,“海选”完了以后再搞个“PK”,以便能更好的排名,“PK”赛里的评定规则(这个规则跟潜规则一样,是可操作和设定的)就是中断优先级控制寄存器,评出来的“冠军”最后被标记到一个名单上,这个名单就相当于是上面4个部分第四项,比如这个名单上共有32个人名,“PK”赛完了以后,在“冠军”的后面画个记号(注意是画个记号,而不是写上名字,并且每个人的名字顺序也是固定的,因为数字电路只能处理0或1),表明这个人是冠军。最后这个冠军终于产生了,马上要送到你面了,他们正带着“冠军”来到你的门外,但你可以根据心情的好坏来选择开门或不开门,你不开门,则“冠军”的光辉历程到此结束,比赛也结束了,若你开着门,则"冠军"被送到你房间里,任你处理(如果可以的话,时间最好不要太久,因为你可能还有很多别的事要处理)。开门或不开门就相当于是上面4个部分第二项。当然你处理完了,记得把那个名单上的记号去掉(对应清零中断标志),这样下次比赛的时候,新的冠军和旧的冠军不会有冲突。

       当然上面描述的是一个比较简单的中断机制,实际的中断机制跟实际的“选秀”一样复杂,比如选手可能是个“组合”(对应子中断),而你最后又只想要一个,那么组合里的单个选手可能需要先把“自己人”PK掉,淘汰赛也可能不会只有一场(对应更细粒度的中断控制),而且还可能会有获得“直接通行证”的(对应一些特殊的紧急中断)(不管她是靠拼爹或某某规则,总之她来了)。所以具体的控制器的中断机制需要依据这个总的思路去仔细对照。

       以前看芒果台的选秀节目时,总被那些淘汰规则搞晕,从上面描述其实也可看出,要想用文字来描述这个机制会很麻烦,也不利于日后再复习(谁都不愿老去读这么多的文字),后来我发现现在的选秀节目子介绍规则时,一般会用一个图来描述,而起真的能让我明白了。所以用图来描述中断机制应该再合适不过了。

   对照datasheet可以绘制出下面的一个流程图。

        这个图中没地方放INTOFFSET这个寄存器了,这个寄存器用来记录IRQ中断,表明哪个IRQ发生了。


       有了这个图,以后再复习起来就方便多了。。。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值