通过信号量来调度任务的问题

2019-03-26 15:08发布

各位好,这里有个问题想请教下大家。

是这样的,在工程中创建了3个任务,任务的执行顺序是通过信号量来控制的。

大致框架如下:
  1. void tskFxn0()
  2. {
  3.     for(;;)
  4.     {
  5.          ...
  6.          Semaphore_post(sem_fxn1);
  7.          ...
  8.     }
  9. }

  10. void tskFxn1()
  11. {
  12.     for(;;)
  13.     {
  14.          ...
  15.          Semaphore_pend(sem_fxn1, BIOS_WAIT_FOREVER);
  16.          ...
  17.          Semaphore_post(sem_fxn2);
  18.          ...
  19.     }
  20. }

  21. void tskFxn2()
  22. {
  23.     for(;;)
  24.     {
  25.          ...
  26.          Semaphore_pend(sem_fxn2, BIOS_WAIT_FOREVER);
  27.          ...
  28.     }
  29. }
复制代码其中tskFxn0优先级最低,其他两个任务优先级一样。

问题就是:程序会一直在tskFxn0中,一直post信号,其他任务不能得到信号

此帖出自小平头技术问答
0条回答

一周热门 更多>