打印

ARM中断标志的清除顺序 : SUBSRCPND-->SRCPND-->INTPND

[复制链接]
228|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
河童|  楼主 | 2018-9-28 14:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ARM, pnd, rc, ADC, dc
在看2440--datasheet的中断的时候注意到、必须在清除INTPND之前必须先将SRCPND清除掉,

因为是SRCPND经过仲裁之后导致INTPND的相应位置1.那时并没注意到SUBSRCPND。

今天消耗了一天了解到、SUBSRCPND导致SRCPND中的相应位置1,

所以在清除SRCPND之前必须先将SUBSRCPND清除掉,如果用到子中断的话。



即、中断标志的清除顺序 : SUBSRCPND-->SRCPND-->INTPND。

否则中断源倒是清除了、但是中断标志INTPND并没有被清除,就会被中断锁死。



比如使用ADC中断时、清除顺序 :

rSUBSRCPND = BIT_SUB_ADC_S;

rSRCPND = BIT_ADC;

rINTPND = rINTPND;



在AXD中看到异常向量表中的内容正确(特别注意IRQ)、

又看到IRQ中断向量表中的内容正确、

最后看到ADC中断向量空间中的地址也是中断处理函数的入口地址,

当然进中断就没问题啦。

却不料是出不了中断。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

452

主题

452

帖子

0

粉丝