robotouch 发表于 2014-3-4 20:34 
根据我个人的理解
在中断服务程序ISR中,如果可能引起任务的切换,需要加入OSINTEnter和OSINTExit
如果不 ...
中断服务程序如果在执行中,还发生有其他的任务就绪了,那只能是该ISR被更高优先级的中断打断了,那个更高优先级的ISR调用了诸如POST等函数使新的任务就绪。当然,这种情况下,本中断返回后,还是会切换到那个最高优先级的任务的。
例如,在32下,使用PENDSV中断服务程序做任务切换的,它优先级最低,这样,高优先级的中断POST信号量,进行那个任务切换,触发PENDSV中断。而PENDSV比本中断优先级低,因此要等本ISR完成,才能进行任务切换,
所以,是完美的解决
|