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得不到运行???? |
RE:为什么UCOS的信号量已经有效了,而等待任务的信号量却不执行???
OSSemPend(SEM1,0,&err);
仔细看一下OSSemPend入口参数的说明.