fetish 发表于 2011-5-15 22:13:12

发现UC/OS2.86的bug,修改了以后产生一个很奇怪的疑问,为什么这个bug只在Cortex-M3内核

bug就是高优先级任务就续却进不去,在os_core.c里面
voidOSIntExit (void)
voidOSSched (void)
两个函数中:OSTCBHighRdy= OSTCBPrioTbl;这一句往前提一行就行。
在ReleaseNote.pdf有这么一句:
CHANGES TO V2.87
You should follow these steps in order to upgrade from a previous version to V2.87.
1) OS_CORE.C:
OSIntExit() and OS_Sched() have changed slightly because of a boundary condition found with the Cortex-M3 port. Specifically, we needed to move the statement:
OSTCBHighRdy = OSTCBPrioTbl;
Before testing for the priority.
也就是说这个bug只有Cortex-M3才有,太神奇了。

谁知道是什么原因导致的?
页: [1]
查看完整版本: 发现UC/OS2.86的bug,修改了以后产生一个很奇怪的疑问,为什么这个bug只在Cortex-M3内核