我在Arm Cortex M4下使用uCOS-III,并有以下问题:
如果在同一任务中执行两次OSSemPend(),如
timeout = 100; /* 0.1 s */
OSSemPend(rtos_sem_p, timeout, OS_OPT_PEND_BLOCKING, NULL, &err);
...
OSSemPend(rtos_sem_p, timeout, OS_OPT_PEND_BLOCKING, NULL, &err);
...(如果不发出OSSemPost()),它将不会在第二个调用中遇到超时,而是无限阻塞。
我已经查过了,但还是找不到问题.有人能解释一下这里发生了什么吗?
非常感谢,
迈克尔
发布于 2022-04-18 16:10:38
试着增加时间
CPU_TS ts;
timeout = 100; /* 0.1 s */
OSSemPend(rtos_sem_p, timeout, OS_OPT_PEND_BLOCKING, &ts, &err);
...
OSSemPend(rtos_sem_p, timeout, OS_OPT_PEND_BLOCKING, &ts, &err);
...https://stackoverflow.com/questions/36833881
复制相似问题