打印

ucos 移植到stm32中关于关中断的问题??

[复制链接]
4440|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qlyll|  楼主 | 2011-10-1 17:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
stm32中不能够关NMI的中断是吧,而systick(为ucos提供1ms时钟)的中断是NMI的类型
如果用OS_ENTER_CRITICAL();关闭了中断了(只能关闭可屏蔽的中断是吧?),这时systick中断来了,岂不是要执行systick的中断服务程序了吗?因为NMI是无法关闭的。
如何理解。
求解。。
灰常感谢!!!

相关帖子

沙发
李富贵| | 2011-10-1 19:49 | 只看该作者
谁告诉你SysTick是不可屏蔽中断的,你的体育老师吗?

使用特权

评论回复
板凳
qlyll|  楼主 | 2011-10-1 20:02 | 只看该作者
书上写的,书上中断向量表。它是16个cotex-m3内核的nmi中断的一个,难道我看错了?
我用CPSID i 关了中断后,发现systick还是可以进入中断的。

使用特权

评论回复
地板
李富贵| | 2011-10-1 20:19 | 只看该作者
哪本书,赶紧撕掉!
systick属于fault,置位PRIMASK是不球行的,必须置位FAULTMASK才可以。

cpsid f

使用特权

评论回复
5
qlyll|  楼主 | 2011-10-1 20:31 | 只看该作者
我明白了,是我理解错了。
CPSID i,它屏蔽了优先级0以下的中断,运行NMI,hard fault异常。
而systick不属于NMI,hard fault异常,它是优先级为6的中断。
呵呵,谢谢了!

使用特权

评论回复
6
原野之狼| | 2011-10-2 12:28 | 只看该作者
nmi只有一个 然后是各种系统级的异常 然后是其它中断

使用特权

评论回复
7
jack_shine| | 2011-10-2 15:08 | 只看该作者
路过学习

使用特权

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

本版积分规则

0

主题

6

帖子

1

粉丝