打印
[其他ST产品]

STR71X系列ARM如何关IRQ中断比较可靠?

[复制链接]
2526|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wikee|  楼主 | 2007-2-27 15:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STR71X系列ARM如果在主程序中关IRQ,会把中断挂起位清空,如果之前已经有中断产生,导致IRQ线已经拉低,可能导致中断堆栈出错。(STR71X。。原理与实践)这本书的P102页,第5段。

应该怎样做,才能比较好的关闭中断呢?在主程序中有一个函数需要暂时关中断。

目前想的方法:工作在系统模式,而不是用户模式,设一个函数使能或清零ARM内核的IRQ禁止位,达到关闭IRQ中断的目的。这种方法不是关闭EIC的IRQ_EN位,不清楚是否会导致EIC控制器产生错误。如果工作在用户模式,还需要SWI切换模式,再关IRQ,就比较麻烦了。

请教这样做过的高手。
沙发
ryansheng| | 2007-2-28 09:41 | 只看该作者

Re

在IAR下可直接调用库函数__disable_interrupt()和__enable_interrupt(),也可以自己写汇编来修改CPSR.

使用特权

评论回复
板凳
wikee|  楼主 | 2007-2-28 14:12 | 只看该作者

d

是在KEIL中实现。不知IAR中的这两个函数是怎么实现的?

使用特权

评论回复
地板
yzhu| | 2007-3-5 20:54 | 只看该作者

在调试时打开反汇编模式不就知道了?

使用特权

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

本版积分规则

5

主题

17

帖子

0

粉丝