当前位置: 技术问答>linux和unix
ucosII 移植到arm 用ads,关于关中断、开中断
来源: 互联网 发布时间:2016-06-30
本文导语: 关中断后,修改优先级就绪表,然后开中断 结果就绪表又还原到修改之前的效果。 而且这中情况,出现在低优先级任务创建高优先级任务;高优先级创建低优先级任务时,没有这种错,为什么? 还有,关开中断后,...
关中断后,修改优先级就绪表,然后开中断
结果就绪表又还原到修改之前的效果。
而且这中情况,出现在低优先级任务创建高优先级任务;高优先级创建低优先级任务时,没有这种错,为什么?
还有,关开中断后,是不是自动将当前任务的TCB、prio 赋给 OSTCBCur,OSPrioCur?
结果就绪表又还原到修改之前的效果。
而且这中情况,出现在低优先级任务创建高优先级任务;高优先级创建低优先级任务时,没有这种错,为什么?
还有,关开中断后,是不是自动将当前任务的TCB、prio 赋给 OSTCBCur,OSPrioCur?
|
低优先级的任务创建了高优先级任务后,会发生任务切换,即被抢占,此时低优先级的任务会被pending,你修改优先级就绪表也许尚未完成;高优先级创建低优先级时,低优先级任务虽然创建但是需要高优先级任务结束后才能发生任务切换,此时优先级表修改完成。
关中断的时候什么都不会变,开中断后很多任务会被打断,尤其是动态更改优先级这种情况很复杂很耗费资源,也有可能会失败。
你为什么这样做?要解决优先级反转吗?
关中断的时候什么都不会变,开中断后很多任务会被打断,尤其是动态更改优先级这种情况很复杂很耗费资源,也有可能会失败。
你为什么这样做?要解决优先级反转吗?
|
没玩过uCOS,
帮顶了
帮顶了
|
http://www.wpanclub.com/?uid-4070-action-viewspace-itemid-2035
|
帮up
|
莫非你修改的是中断栈中的临时变量或者是寄存器?
在什么cpu上?
代码呢?
在什么cpu上?
代码呢?
|
你确认你修改值成功了么