TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320C6748: 6748 Semaphore问题咨询

Part Number:TMS320C6748

从结果看,程序运行后先进入了高优先级的TASKLED2,再进入TASKLED1,很奇怪为什么不会再一次进入TASKLED1呢?若是修改TASKLED2 的睡眠时间为Task_sleep(1000);则能再一次进入TASKLED1,如下:

问题:请问这是什么原因导致的呢?

Nancy Wang:

根据您贴出的代码来看,有可能是Task_sleep(1)时间太短了,一直被task2抢占,从打印信息看task2的计数值总为4,看上去像semaphore没有被post,程序运行的时候观察一下灯闪烁的情况。

,

user6549373:

确实是semaphore没有被post,那么Task优先级会抢占Delay的运行吗?为什么当Delay(1)时能正常触发Task1,但无法再一次触发呢?

,

Nancy Wang:

user6549373 说:Task优先级会抢占Delay的运行吗?

task sleep意味着当前任务被block,去执行低优先级任务,但当task2休眠时间到了,高优先级的task2就会继续执行当前任务,不管task1是否执行结束。

user6549373 说:为什么当Delay(1)时能正常触发Task1,但无法再一次触发呢?

可能需要借助工具来分析看看了。

software-dl.ti.com/…/rov.html

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C6748: 6748 Semaphore问题咨询
分享到: 更多 (0)