ARM---ucos常用系统函数参考手册(3)

时间:2025-03-12

好东西!


* OS_PRIO_INVALID:参数指定的优先级大于或等于OS_LOWEST_PRIO。

信号量
1 OSSemCreate()
该函数建立并初始化一个信号量,信号量的作用如下:
* 允许一个任务和其他任务或者中断同步
* 取得设备的使用权
* 标志事件的发生
函数原型:OS_EVENT *OSSemCreate(INT16U value);
参数说明:value 参数是所建立的信号量的初始值,可以取0到65535之间的任何值。
返回值:
OSSemCreate() 函数返回指向分配给所建立的信号量的控制块的指针。如果没有可用的控制块,OSSemCreate() 函数返回空指针。

2 OSSemPend()
该函数用于任务试图取得设备的使用权、任务需要和其他任务或中断同步、任务需要等待特定事件的发生的场合。如果任务调用OSSemPend() 函数时,信号量的值大于零,OSSemPend() 函数递减该值并返回该值。如果调用时信号量值等于零,OSSemPend() 函数将任务加入该信号量的等待队列。OSSemPend() 函数挂起当前任务直到其他的任务或中断设置信号量或超出等待的预期时间。如果在预期的时钟节拍内信号量被设置,μC/OS-Ⅱ默认让最高优先级的任务取得信号量并回到就绪状态。一个被OSTaskSuspend() 函数挂起的任务也可以接受信号量,但这个任务将一直保持挂起状态直到通过调用OSTaskResume() 函数恢复该任务的运行。
函数原型:void OSSemPend ( OS_EVNNT *pevent, INT16U timeout, int8u *err );
参数说明:pevent 是指向信号量的指针。该指针的值在建立该信号量时可以得到。(参考OSSemCreate() 函数)。
timeout 允许一个任务在经过了指定数目的时钟节拍后还没有得到需要的信号量时恢复就绪状态。如果该值为零表示任务将持续地等待信号量,最大的等待时间为65535个时钟节拍。这个时间长度并不是非常严格的,可能存在一个时钟节拍的误差。
err 是指向包含错误码的变量的指针,返回的错误码可能为下述几种:
* OS_NO_ERR :信号量不为零。
* OS_TIMEOUT :信号量没有在指定数目的时钟周期内被设置。
* OS_ERR_PEND_ISR :从中断调用该函数。虽然规定了不允许从中断调用该函数,但μC/OS-Ⅱ仍然包含了检测这种情况的功能。
* OS_ERR_EVENT_TYPE :pevent 不是指向信号量的指针。
返回值:无

3 OSSemPost()
该函数用于设置指定的信号量。如果指定的信号量是零或大于零,OSSemPost() 函数递
增该信号量的值并返回。如果有任何任务在等待该信号量,则最高优先级的任务将得到信号量并进入就绪状态。任务调度函数将进行任务调度,决定当前运行的任务是否仍然为最高优先级的就绪任务。
函数原型:INT8U OSSemPost(OS_EVENT *pevent);
参数说明:pevent 是

ARM---ucos常用系统函数参考手册(3).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219