1、对于s3c2440,说明一个很奇怪的现象,<span style="font-family: Arial, Helvetica, sans-serif;">一般主函数中(防止其他程序未清除中断)和中断程序的最后应该对中断寄存器进行清除。然而</span>很多网上资料,甚至飞凌学习板自己的光盘资料代码,在对清除中断时的操作都是错误的,他们的清除操作都是对<span style="font-family: Arial, Helvetica, sans-serif;">SUBSRCPND、</span><span style="font-family: Arial, Helvetica, sans-serif;">SRCPND相应位写零,而对</span><span style="font-family: Arial, Helvetica, sans-serif;">INTPND相应位写1,或者都写零。然而实践证明清除中断的正确操作是对这些寄存器都写1!!!(可以参照下面程序中的清除中断子函数)</span>
<span style="font-family: Arial, Helvetica, sans-serif;">2、还有一点就是,ARM对中断的响应是利用中断控制器、中断向量表和中断函数。所以在主函数中应该把涉及到的中断函数名(也就是中断函数的地址)写到相应的中断向量表中去,这样响应中断时,CPU才能根据中断向量表中的地址(令PC=该地址)去跳转到该地址处执行相应的中断函数。</s