UCOS iii 信号量_创建_发送_请求

信号量

  功能: 类似上锁机制,保护共享资源,基本用来任务同步

  分类: 二进制信号量(共享资源区)

     计数型信号量(任务同步)

创建信号量

1 OS_SEM MY_SEM; //信号量控制块,用于访问共享资源
2 
3 OSSemCreate (  (OS_SEM* )&MY_SEM, //信号量控制块,
4 
5                  (CPU_CHAR* )"MY_SEM", //信号量的名字
6 
7                  (OS_SEM_CTR)1, //信号量的值,1是二进制信号量,其他是计数型
8 
9                  (OS_ERR* )&err);
View Code

请求信号量

1 OS_SEM_CTR  OSSemPend (OS_SEM   *p_sem, //信号量控制块
2 
3                        OS_TICK   timeout, //等待信号量的时间,如果没有等到就恢复执行任务 //如果时间为0则一直等待.
4 
5                        OS_OPT    opt, //信号量无效时的选项. 挂起/返回
6 
7                        CPU_TS   *p_ts, //记录接收到信号量的时刻
8 
9                        OS_ERR   *p_err
View Code

发送信号量

1 OSSemPost (OS_SEM  *p_sem, //信号量控制块
2 
3                   OS_OPT   opt, // OS_OPT_POST_1 向等待信号量优先级最高的任务发送
4 
5 // OS_OPT_POST_ALL 所有任务发送
6 
7 // OS_OPT_POST_NO_SCHED 禁止任务调度
8 
9                   OS_ERR  *p_err) //发送(释放)信号量,此时信号量+1
View Code

猜你喜欢

转载自www.cnblogs.com/RcBlog/p/10453277.html