15.4-uC/OS-III资源管理(二值信号量)

2023-05-30,,

互斥信号量是 uC/OS 操作系统的一个内核对象, 与多值信号量非常相似,但它是二值
的,只能是 0 或 1,所以也叫二值信号量, 主要用于保护资源。

1.如果想要使用互斥信号量,就必须事先使能互斥信号量。 互斥信号量的使能位于
“os_cfg.h”。

2.OSMutexCreate ()

要使用 uC/OS 的互斥信号量必须先声明和创建互斥信号量,调用 OSMutexCreate () 函数
可以创建一个多值信号量。

OSMutexCreate () 函数的定义位于“os_mutex.c”。

其中,调用了 OS_PendListInit() 函数初始化了互斥信号量的等待列表。每个互斥信号量
都有一个等待列表,凡是等待该互斥信号量的的任务都会被插入到这个等待列表,方便高效
管理。 OS_PendListInit() 函数的定义位于“os_core.c”。

3.OSMutexPost ()

OSMutexPost () 函数用于释放(发布,提交) 互斥信号量。OSMutexPost () 函数的定义也位于“os_mutex.c 。

4.OSMutexPend ()

与 OSMutexPost () 互斥信号量释放函数相对应, OSMutexPend() 函数用于申请(等待,
请求) 获取一个互斥信号量。

5.OSMutexPendAbort()

OSMutexPendAbort() 函 数 用 于 中 止 任 务 对 一 个 互 斥 信 号 量 的 等 待 。要 使 用
OSMutexPendAbort () 函数,还 得事先使能 OS_CFG_MUTEX_PEND_ABORT_EN (位于
“os_cfg.h”)。

5.OSMutexDel()

OSMutexDel() 函数用于删除一个互斥信号量。要使用 OSMutexDel() 函数,还得事先使
能 OS_CFG_MUTEX_DEL_EN(位于“os_cfg.h”)。

15.4-uC/OS-III资源管理(二值信号量)的相关教程结束。

《15.4-uC/OS-III资源管理(二值信号量).doc》

下载本文的Word格式文档,以方便收藏与打印。