欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

关于arm中断的一个有关问题

更新时间: 2014-01-05 03:18:59 责任编辑: Author_N1

 

关于ARM中断的一个问题,请教大家
请问,为什么 ARM 中断处理函数中,不像 51 那样,开始关总中断,函数末尾再开总中断呢?
--参考方法--
51 中断处理函数中,开始关总中断,是不是为了防止中断嵌套?

CE 是多任务的,所以不需要这样。
--参考方法--
51中只是单线程操作,没有使用操作系统,而ARM中一般应用于多线程操作,基于操作系统,不能把所有的中断都关了,要不会影响到其他功能
--参考方法--
这个看你怎么取决了,这个叫内核可重入,IA体系(x86)都是来中断了,硬件来关掉所有中断,sti ,这个只是关硬中断,因为硬中断是随机的,你要打开就打开呗,你打开的话你就得设计一个策略,能保证内核栈不被冲掉, linux 内核在没有 half bottom 的概念之前都是内核非可重入的,就是内核只能进入一次。

ARM体系也是一样,硬件关掉了硬中断,切换到 irq/fiq 模式,这个时候一般是做简单的 push {} 再切到 svc 模式,你要打开也可以打开嘛。
--参考方法--
可以自己开关中断,不过有些芯片有一个不可屏蔽中断不行,其他的可以根据中断优先级在,basepri寄存器中(cortem-m3内核)开关自己想要的中断
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:18:59
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20666/
本文WWW.DOC100.NET DOC100.NET版权所有。