微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > Semaphore_post(); 发送的是什么内容?

Semaphore_post(); 发送的是什么内容?

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

/* ======== clockHandler2 ======== */
Void clockHandler2(UArg arg)
{
/* Call Semaphore_post every 16 ms */
Semaphore_post(sem);// 发送的是什么内容?
}

/* ======== hiPriTask ======== */

Void hiPriTask(UArg arg0, UArg arg1)
{
static Int numTimes = 0;
while (1) {
System_printf("hiPriTask here\n");
if (++numTimes < 3) {
Semaphore_pend(sem, BIOS_WAIT_FOREVER);//  此句起的是什么作用? 
}
else {
System_printf("Slice example ending.\n");
System_exit(0);
}
}
}

您可以参考链接 http://processors.wiki.ti.com/images/4/4f/Semaphores.pdf

readlove1 readlove1,

可以看二楼介绍的文档。

简单说就是RTOS中的信号量机制,不同task之间的通信方式。

原理其实很简单,相当于我们程序的设定的一个flag和一个定时器,默认flag=0,如果不为“1“就不执行下面程序,等待定时器一到把flag=1,才执行,Semaphore_post(sem);// 相当于把flag变成1,

Semaphore_pend(sem, BIOS_WAIT_FOREVER);//  BIOS_WAIT_FOREVER就是代表它一直等待,等待信号量sem=1, 变成1后,这个函数会自动把sem清0,

希望这样比喻你能明白,具体API可以看楼上文章详细介绍。

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

网站地图

Top