|
发表于 2011-6-15 20:53:57
|
显示全部楼层
回复【1楼】9509238
-----------------------------------------------------------------------
回复【1楼】9509238
v2.88的合理一些,因为始终应该保持ostcbhighrdy与ospriohighrdy是对应的.而v2.86却有这个漏洞存在,虽然该错误导致的事故概率很小,但还是被micrium改正了,说明他们的态度是很好的!micrium的东西,值得信赖.
-----------------------------------------------------------------------
这两天我是遇到了这个问题的。我用的Cortex-M3的核,版本是V252。
出现的现象是:系统运行一段时间后,只有task_idle()任务在跑,其它任务得不到执行。在仿真环境下看,OSPrioCur为0x00(最高优先级),而OSTCBCur->OSTCBPrio却为0x3F(task_idle任务)。
在调用OS_Sched()时,if (OSPrioHighRdy != OSPrioCur)始终为false。故切换不了。
最常出现在中断触发频率很高,在中断中调用了OSSemPost()或OSQPost()就容易出现。
按楼上说的改了,问题就解决了。但心里不安,请大虾们告诉我导致上述问题的起因是什么?
有知道请用邮件告诉我:hevake_lcj@126.com QQ:527020730 |
|