|
最近在网络上逛逛的时候发现了UCOS II V2.86有一个BUG,会导致系统优先级调度失败的BUG,就是低优先级的任务一直占用CPU,而高优先级的任务即使就绪了也无法执行! 刚开始我也不信,因为这个版本的UCOS已经使用过两年了,基本没有问题。不过最近发现了确实有这个问题,当我禁止了内部看门狗之后,发现了一个很费解的问题之后才验证出这个BUG的。3 W8 M7 @" v% j5 F/ ^! y6 I UCOS II V2.86的BUG就是出现在OS的 OS_CORE.C 文件中,函数OSIntExit 和 OSStart 中,由于对高优先级的判断和调度弄反了,导致小微概率的调度失败。5 V- U- a/ W4 G& i2 ^' i 这个BUG很少能找得到哦,我居然这么衰遇上了~真悲剧! 特发帖提醒! 希望给那些陷在BUG中获救无望的同学一点希望。+ q5 p4 \; k# p/ v9 S4 v7 J9 f 修正这个BUG也很简单,就是把OS_CORE.C 文件中的函数修改两个地方9 b/ Q1 C: d! Y0 t2 A: ~1 p |
微信公众号
手机版
RE:UCOS II V2.86 的 漏洞修补
RE:UCOS II V2.86 的 漏洞修补
回复:UCOS II V2.86 的 漏洞修补
能给个链接不?3Q
百度贴吧里面有:" q% @7 x* {2 s0 S9 {9 U- a
https://tieba.baidu.com/f?kw=stm32isp&from=prin0 J8 Q/ j3 A( ^: S0 T
或者百度搜索 UCOS BUG3 i7 H5 J/ ]2 c; T
回复:UCOS II V2.86 的 漏洞修补