打印

uCOS-III源码精读以后找到的bug,大家一起来讨论下

[复制链接]
380|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
丑帅丑帅的|  楼主 | 2020-3-28 15:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、flag.c中:
void  OS_FlagTaskRdy (OS_TCB    *p_tcb,
                       OS_FLAGS   flags_rdy,
                       CPU_TS     ts)
{
   p_tcb->FlagsRdy   = flags_rdy;
p_tcb->PendStatus= OS_STATUS_PEND_OK;                 p_tcb->PendOn     = OS_TASK_PEND_ON_NOTHING;           
   p_tcb->TS         = ts;
   switch (p_tcb->TaskState) {
       case OS_TASK_STATE_RDY:
       case OS_TASK_STATE_DLY:
       case OS_TASK_STATE_DLY_SUSPENDED:
       case OS_TASK_STATE_SUSPENDED:
            break;

       case OS_TASK_STATE_PEND:
       case OS_TASK_STATE_PEND_TIMEOUT:
            OS_TaskRdy(p_tcb);
            p_tcb->TaskState = OS_TASK_STATE_RDY;
            break;

       case OS_TASK_STATE_PEND_SUSPENDED:
       case OS_TASK_STATE_PEND_TIMEOUT_SUSPENDED:
             p_tcb->TaskState =OS_TASK_STATE_SUSPENDED;    //这里应该有                   //OS_TickListRemove(p_tcb);

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

741

主题

742

帖子

0

粉丝