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.

C6678 Semaphore机制



片子是6678,使用环境是CCS5.3,将一个Semaphore 配置为Binary(FIFO)类型,有两个TaskA和TaskB,TaskA触发TaskB,

即TaskA中Semaphore _post(Semaphore),TaskB中Semaphore _pend(Semaphore);

问题:

1、Semaphore 配置为Binary(FIFO)类型,这个类型怎么理解,有FIFO先进先出的概念,这个FIFO的深度为多少?这个信号量是触发TaskB任务使用的,这个FIFO的意思是触发TaskB的post的队列,还是有多少个TaskB需要执行的队列?

2、假设TaskA发送Semaphore _post(Semaphore)命令时,TaskB还在运行,那这个触发消息会进入FIFO队列中,等待TaskB运行完么?

3、假设有第三个TaskC,也有Semaphore _post(Semaphore),TaskA和TaskC先后会发送Semaphore _post(Semaphore),任务A和任务C发送post间隔时间很短,其中一个发送触发了任务B,紧接着另一个就发送了post,这样的情况,任务B会运行两次么?

4、对于Semaphore的类型解析在数据手册中写的不是很清楚,有更详细的文档可参考么?