我在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())它不会在第二次调用时遇到超时,而是无限阻塞。
我检查了我能做的,但仍然找不到问题...谁能解释一下这里发生了什么?
非常感谢,
迈克尔
尝试添加时间
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);
...