微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > task阻塞

task阻塞

时间:12-23 整理:3721RD 点击:

大家好!

任务中加入Semaphore_pend时,此时任务应该进入block阻塞态,但在debug时,ROV中显示此任务一直处于RUNNING态,为什么呢?难道信号量创建失败?

另外是CCS DEBUG中,是否能够查看信号量的值,例如POST,PEND

如果task被semphore_pend挂起,在ROV中该task的状态应该显示为blocked,并且会看到blocked的原因是在等待某个semphore。如果你在ROV中看到task仍然处于running状态,说明该task并没有被semphore_pend挂起,请检查程序的逻辑,比如是不是有地方在不停的post该semphore等。

在CCS的ROV中可以查看semphore的值,尤其是当你定义的semphore是count类型时,可以通过ROV查看当前post-pend的次数

芯片,例程?

CCS中如何查看semphore的值和post-pend的次数?

另外我发现,创建semphore和pend,post必须在同一文件中才能执行,在不同文件中执行post,程序后死,而且不能单步执行了,是不是?

那么如何在不同文件中调用post,pend?

是在历程的基础上搭建自己的工程

你用的什么芯片?哪个例程?

如上图所示,如果你的semphore是counting模式的,每post一次,计数加1,每pend一次,计数减1,当计数减到0时,task就会blocked。

你可以参考

http://www.ti.com/lit/ug/spruex3q/spruex3q.pdf

了解更多关于semphore的信息。

如果想在多个文件之间使用同一个semphore,需要在其他文件中extern semphore相关的变量。

你好!flex,谢谢你了

我用的是CC1310,我按照你的在试试!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top