ucos 移植到stm32中关于关中断的问题??
stm32中不能够关NMI的中断是吧,而systick(为ucos提供1ms时钟)的中断是NMI的类型如果用OS_ENTER_CRITICAL();关闭了中断了(只能关闭可屏蔽的中断是吧?),这时systick中断来了,岂不是要执行systick的中断服务程序了吗?因为NMI是无法关闭的。
如何理解。
求解。。
灰常感谢!!! 谁告诉你SysTick是不可屏蔽中断的,你的体育老师吗? 书上写的,书上中断向量表。它是16个cotex-m3内核的nmi中断的一个,难道我看错了?
我用CPSID i 关了中断后,发现systick还是可以进入中断的。 哪本书,赶紧撕掉!
systick属于fault,置位PRIMASK是不球行的,必须置位FAULTMASK才可以。
cpsid f 我明白了,是我理解错了。
CPSID i,它屏蔽了优先级0以下的中断,运行NMI,hard fault异常。
而systick不属于NMI,hard fault异常,它是优先级为6的中断。
呵呵,谢谢了! nmi只有一个 然后是各种系统级的异常 然后是其它中断 路过学习
页:
[1]