
最近在网络上逛逛的时候发现了UCOS II V2.86有一个BUG,会导致系统优先级调度失败的BUG,就是低优先级的任务一直占用CPU,而高优先级的任务即使就绪了也无法执行! 刚开始我也不信,因为这个版本的UCOS已经使用过两年了,基本没有问题。不过最近发现了确实有这个问题,当我禁止了内部看门狗之后,发现了一个很费解的问题之后才验证出这个BUG的。 UCOS II V2.86的BUG就是出现在OS的 OS_CORE.C 文件中,函数OSIntExit 和 OSStart 中,由于对高优先级的判断和调度弄反了,导致小微概率的调度失败。 s* L$ S5 d- a 这个BUG很少能找得到哦,我居然这么衰遇上了~真悲剧! 特发帖提醒! 希望给那些陷在BUG中获救无望的同学一点希望。 修正这个BUG也很简单,就是把OS_CORE.C 文件中的函数修改两个地方 9 ^3 f% _- h* i( o( u% ~! e6 I3 f6 K |
RE:UCOS II V2.86 的 漏洞修补
RE:UCOS II V2.86 的 漏洞修补
回复:UCOS II V2.86 的 漏洞修补
能给个链接不?3Q/ i1 W/ \$ k9 k( X, W
百度贴吧里面有:
https://tieba.baidu.com/f?kw=stm32isp&from=prin
或者百度搜索 UCOS BUG
回复:UCOS II V2.86 的 漏洞修补