工具/软件:TI-RTOS
大家好、有人能解释一下二进制信标是如何工作的???
如果信标已经过发布、然后再发布一个信标、这是否意味着二进制信标现在不可用? 如 In count = 0?
此致、
Mitesh
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:TI-RTOS
大家好、有人能解释一下二进制信标是如何工作的???
如果信标已经过发布、然后再发布一个信标、这是否意味着二进制信标现在不可用? 如 In count = 0?
此致、
Mitesh
下面是二进制信号量的一些不同情形。 注意:计数= 0表示信标不可用(即、如果您调用挂起、则您将阻止或返回 false、如果您指定了零超时)。 计数= 1表示信号量可用
使用案例
计数= 0、调用带有超时的 Semaphore_pend、没有人调用 semaphore_post:您阻止(和其他运行的内容)、直到超时到期且返回代码为 false。 计数仍然为0。
计数= 0、调用超时为零的 Semaphore_pend:返回代码为 false 时、立即返回。 计数仍然为0。
计数= 0、调用带有超时的 Semaphore_pend、有人在您过期前调用 Semaphore_post:您阻止、直到发出 semaphore_post 调用。 如果优先级较高、则开始运行。 否则、您将处于就绪状态。 返回代码为 true、计数仍为0。
计数= 0、没有人正在调用 Semaphore_pend、有人调用 semaphore_post:计数变为1。
5。计数= 1、没有人正在调用 Semaphore_pend、有人调用 semaphore_post:计数保持为1。 (在这里、计数信标将变为2)。
当您只需要执行操作而不关心多少次时、二进制信标会很有用。 我的例子是,我请我的十几岁的孩子把垃圾带走。 我必须多次询问他们(例如、多个 Semaphore_post)。 他们最终将垃圾取出一次。 让他们在一个晚上将其取出 N 次是没有意义的(但他们可能会因为响应缓慢而失去计算机权限:)。
Todd