uCOS-III 下的信号量



我在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);
...

相关内容

  • 没有找到相关文章

最新更新