s3c2440一共有60个中断源,其中有15个子中断源,它们与subsrcpnd寄存器中的每一位相对应,其他45个中断源与srcpnd中的每一位相对应。要注意的是eint4~7对应的是同一位srcpnd,而eint8~23对应的也是srcpnd一位。
1 s3c2440的中断寄存器
中断分两大类:外部中断和内部中断。
1.1 外部中断寄存器
24个外部中断占用gpf0-gpf7(eint0-eint7),gpg0-gpg15(eint8-eint23)。用这些脚做中断输入,则必须配置引脚为中断,并且不要上拉。具体可参考datesheet数据手册。
寄存器:
extint0-extint2:分别设置eint0—eint7、eint8—eint15、eint16—eint23的触发方式(高电平触发、低电平触发、下降沿触发、上升沿触发)。
eintflt0-eintflt3:控制滤波时钟和滤波宽度。
eintpend:这个是中断挂起寄存器,清除时要写1,后面还有几个是写1清除。当一个外部中断(eint4-eint23)发生后,那么相应的位会被置1。为什么没有eint0-eint3,因为它们分别由srcpnd寄存器的后4位控制。
eintmask:这个简单,是屏蔽中断用的,也就是说位为1时,此次中断无效。
1.2 内部中断寄存器
内部中断有8个寄存器。
寄存器:
subsrcpnd:当一个中断发生后,那么相应的位会被置1,表示一个中断发生了。
intsubmsk:与上一个是一样的,中断屏蔽寄存器。
srcpnd:当一个中断发生后,那么相应的位会被置1,表示一个或一类中断发生了。
intmsk:用来屏蔽srcpnd寄存器所标识的中断。但只能屏蔽irq中断,不能屏蔽fiq中断。
intmod:当intmod中某位被设置为1时,它对应的中断被设为fiq,cpu将进入快速中断模式。
priority:用于设置irq中断的优先级。具体使用方法可参考芯片手册。
intpnd:中断优先级仲裁器选出优先级最高中断后,这个中断在intpnd寄存器中的相应位被置1,随后,cpu进入中断模式处理它。同一时间内,此寄存器只有一位被置1。
intoffset:用来表示intpnd寄存器中哪位被置1了,即记录intpnd中位[x]为1的位x的值。清除intpnd、srcpnd时自动清除。
1.3 各寄存器关系:
2 中断过程
2.1 内部中断过程
a 如果是不带子中断的内部中断:发生后srcpnd相应位置1,如果没有被intmsk屏蔽,那么等待进一步处理。
b 如果是带子中断的内部中断:发生后subsrcpnd相应位置1,如果没有被intsubmsk屏蔽,那么srcpnd相应位置1,等待进一步处理,几个subsrcpnd可能对应同一个srcpnd,对应表如下:
2.2 外部中断过程
a 如果是外部中断:eint0-eint3发生后srcpnd相应位置1,如果没有被intmsk屏蔽,那么等待进一步处理。eint4-eint23发生后eintpend相应位置1,如果没有被eintmask屏蔽,那么srcpnd相应位eint4-7 或eint8-23置1,如果没有被intmsk屏蔽,等待进一步处理,几个eintpend对应同一个srcpnd,对应表如下:
三种中断都等待进一步处理了。接下来从srcpnd往下看,看intmsk。如果中断被屏蔽了,就不用说了(注意:快中断也能被屏蔽)。如果没有被屏蔽,那么会进一步到intmod。如果是快中断,那么直接出来,进入fiq(即cpu进入快中断模式处理)。如果是普通中断,那么srcpnd可以有多为置1(fiq只能有一个),这时就会经过priority选出一个优先级高的,然后把根据选出的中断把intpnd相应位置1(注意:只能选出一个),进入irq,让cpu处理。
2.3 中断的开启
a.如果是不带子中断的内部中断,只需设置intmsk,让它不屏蔽中断就可以了。
b 如果是带子中断的内部中断,需设置intsubmsk和intmsk,让它们不屏蔽中断就可以了。
c 如果是外部中断,对于eint8-23需要设置eintmask和intmsk。对于eint0-eint3只需设置intmsk。
2.4 中断的清除
a.如果是不带子中断的内部中断,只需清除srcpnd,注意清除需位置1。
b 如果是带子中断的内部中断,需清除srcpnd和subsrcpnd,注意先清除subsrcpnd,再清除srcpnd。因为,如果你先清除srcpnd的话,然后在清除subsrcpnd的过程中,srcpnd会以为又有中断发生,又会置1。也就是说一次中断会响应两次。所以必须先掐断源头。
c 如果是外部中断,对于eint8-23需要清除eintpend和srcpnd(同样注意顺序)。对于eint0-eint3只需清除srcpnd。
俄罗斯与华为合作开发建设联网/智慧高速公路
iphone8什么时候上市?iphone8最新消息:iphone8消息终极曝光,设计不再有后指纹
微波消解仪市场广阔 企业应加速布局
区块链技术未来10-15年的发展指向标
5G竞争,网络建设先行!中国移动决心在5G时代争先
S3C2440的中断寄存器的分类及中断的过程分析
可调电源幅值、频率的陀螺电机
逆变器OEM/ODM生产厂家哪家好
无线对讲机日常使用中的常见问题及正确的操作方法经验分享(下)
使用oprofile对软件做profiling
硅谷走下神坛,科技精英回流中国
Qorvo可扩展电源供应和管理平台可最大限度地减少能源消耗
怎样成为一名合格的算法工程师
电脑主机降低噪音的方法讲解
OpenDaylight中的Karaf
架空地线的作用是什么
2021行家说显示年:合易科技带你遇见技术未来
电子芯闻早报:亿航Ghost 2.0,大疆Phantom X
板级埋人式封装工艺流程与技术
关于AR你需要了解的10个关键数据