abnerle 发表于 2012-3-12 21:13:27

为什么UCOS的信号量已经有效了,而等待任务的信号量却不执行???

2个任务

tsak1  优先级6
task2 优先级8

OS_EVENT* SEM1;   

SEM1=OSSemCreate(0);   

task1(void)
{
  for(;;)
   {
    printf("task1 ruing \r\n");
    OSSemPost(SEM1);
        OSTimeDlyHMSM(0,0,0,600);
   }
}

task2(void)
{
  for(;;)
    {
        OSSemPend(SEM1,0,&err);    
         printf("task2 ruing \r\n");
         OSTimeDlyHMSM(0,0,0,20);
       }
}

task2 第一次执行了一次,然后始终没有执行,暂停查看OSEventCnt的值为123, 按理说这个信号量已经有效了,延时也是足够的,为什么task2得不到运行????

发表于 2012-3-13 10:32:41

RE:为什么UCOS的信号量已经有效了,而等待任务的信号量却不执行???

你看一下是不是死到这个里面了.
OSSemPend(SEM1,0,&err);   
仔细看一下OSSemPend入口参数的说明.
页: [1]
查看完整版本: 为什么UCOS的信号量已经有效了,而等待任务的信号量却不执行???