qlyll 发表于 2011-10-1 17:50

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

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

qlyll 发表于 2011-10-1 20:31

我明白了,是我理解错了。
CPSID i,它屏蔽了优先级0以下的中断,运行NMI,hard fault异常。
而systick不属于NMI,hard fault异常,它是优先级为6的中断。
呵呵,谢谢了!

原野之狼 发表于 2011-10-2 12:28

nmi只有一个 然后是各种系统级的异常 然后是其它中断

jack_shine 发表于 2011-10-2 15:08

路过学习
页: [1]
查看完整版本: ucos 移植到stm32中关于关中断的问题??