|
发表于 2017-4-11 10:08:33
|
显示全部楼层
回 seansun77 的帖子
seansun77:现在实验有三个taskA, taskB, taskC, 可能同时控制一个串口周边模组, 用Semaphore作互斥保护..
删除两个taskvTaskDelete(xHandleTaskA) 和 vTaskDelete(xHandleTaskB) ,
在taskC调用xSemaphoreTake有时会卡住, 改为先强制调用xSemaphoreGive也是有时会卡住...
所以我怀疑是原本的 .. (2017-04-10 12:38)  现在是采用的这种互斥信号量吗
xMutex = xSemaphoreCreateMutex();
不采用二值信号量,试试,是不是同样的问题。(估计是同样的问题,因为这些信号量本章都是消息队列)
另外,还是不行的话,那就等你这个要随意删除的任务也获得信号量了再对其它任务做删除。保证资源被释放了。这些资源的占用,估计FreeRTOS都不管,而uCOS一般都是做了处理的。 |
|