码迷,mamicode.com
首页 > 其他好文 > 详细

16.4-uC/OS-III同步 (任务信号量)

时间:2018-08-07 13:17:26      阅读:997      评论:0      收藏:0      [点我收藏+]

标签:个数   16.4   sse   mil   内核对象   oss   bsp   信号量   str   

信号量和消息队列均是单独的内核对象,是独立于任务存在的。

任务信号量 仅发布给一个特定任务
任务消息队列 可以发布给多个任务。
任务信号量伴随任务存在,只要创建了任务,其任务信号量就是该任务的一个数据成员,
任务信号量的数据成员被包含在任务控制块里。

1.OSTaskSemPost ()
OSTaskSemPost () 函数用于给一个任务发布任务信号量。 OSTaskSemPost () 函数的定义也位于“os_task.c”。
不管是否使能了中断延迟发布,最终都是调用 OS_TaskSemPost() 函数进行发布
信号量。

只是使能了中断延迟发布的发布过程会比较曲折 .

2.OSTaskSemPend ()
OSSemPost () 多值信号量发布函数相对应, OSTaskSemPend () 函数用于等待任务信
号量。

3.OSTaskSemPendAbort ()
OSTaskSemPendAbort() 函数用于中止一个任务对其任务信号量的等待。要使用
OSTaskSemPendAbort() 函数,还得事先使能 OS_CFG_TASK_SEM_PEND_ABORT_EN(位于
os_cfg.h”)。


任务信号量跟多值信号量极其相似。本质区别在于,任务信号量时一个任务的特有属性,
是某一个任务的信号量,其他任务均可以发布这个信号量,但只有该任务才能接收这个信
号量。 多值信号量却是一个独立的内核对象,任何任务均可以发布和接收多值信号量。因
此,任务信号量不需像多值信号量那样单独创建,只要创建了任务,就同时创建了其任务
信号量。

 

16.4-uC/OS-III同步 (任务信号量)

标签:个数   16.4   sse   mil   内核对象   oss   bsp   信号量   str   

原文地址:https://www.cnblogs.com/xigongxiaosha/p/9435805.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!