os_sem信号量源码注释

os_sem信号量源码注释

ID:18655294

大小:91.50 KB

页数:12页

时间:2018-09-20

os_sem信号量源码注释_第1页
os_sem信号量源码注释_第2页
os_sem信号量源码注释_第3页
os_sem信号量源码注释_第4页
os_sem信号量源码注释_第5页
资源描述:

《os_sem信号量源码注释》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1/*2*************************************************************************************3*uC/OS-II实时控制内核4*主要的包含文件5*信号量程序函数6*7*文件:OS_SEM.C信号量程序函数8*作者:JeanJ.Labrosse9*中文注解:钟常慰zhongcw@126.com译注版本:1.0请尊重原版内容10********************************************

2、*****************************************11*/1213#ifndefOS_MASTER_FILE//是否已定义OS_MASTER_FILE主文件14#include"includes.h"//包含"includes.h"文件,部分C语言头文件的汇总打包文件15#endif//定义结束1617#ifOS_SEM_EN>0//条件编译:当OS_SEM_EN允许产生信号量程序代码18/*19**********************************

3、***************************************************20*无条件地等待请求一个信号量21*22*描述:该函数是查看资源是否使用或事件是否发生。中断调用该函数查询信号量。23*不同于OSSemPend()函数,如果资源不可使用,OSSemAccept()函数并不挂起任务。2425*参数:pevent指向需要保护地共享资源地信号量。当建立信号量时,用户得到该指针26*27*返回:当调用OSSemAccept()函数时;28共享资源信号量的值>0,则说

4、明共享资源可以使用,这个值被返回调用者,信号量的值减1;29共享资源信号量的值=0,则说明资源不能使用,返回0。30*************************************************************************************31*/3233#ifOS_SEM_ACCEPT_EN>0//允许生成OSSemAccept()函数34INT16UOSSemAccept(OS_EVENT*pevent)//无条件地等待请求一个信号量函数35{3

5、6#ifOS_CRITICAL_METHOD==3//中断函数被设定为模式337OS_CPU_SRcpu_sr;38#endif39INT16Ucnt;//信号量的内容暂时存储变量404142#ifOS_ARG_CHK_EN>0//所有参数必须在指定的参数内43if(pevent==(OS_EVENT*)0){//当信号量指针为NULL时,返回0,空指针44return(0);45}46if(pevent->OSEventType!=OS_EVENT_TYPE_SEM){//当事件类型≠信号量类

6、型47return(0);//返回048}49#endif50OS_ENTER_CRITICAL();//关闭中断51cnt=pevent->OSEventCnt;//取信号值52if(cnt>0){//当信号值>0时,该值有效53pevent->OSEventCnt--;//信号量减154}55OS_EXIT_CRITICAL();//打开中断56return(cnt);//返回信号值57}58#endif5960/*$PAGE*/?61/*62************************

7、*******************************************************************建立一个信号量63*64*描述:建立并初始化一个信号量。信号量的作用为:65*1、允许一个任务与其它任务或中断同步;66*2、取得共享资源的使用权;67*3、标志事件的发生68*69*参数:cnt建立信号量的初始值,可以为0~65535的任何值70*71*注意:必须先建立信号量,然后才能使用72*73*返回:!=(void*)0返回指向分配给所建立的消息邮箱的事件

8、控制块指针;74*==(void*)0如果没有可用的事件控制块,返回空指针75********************************************************************************************76*/7778OS_EVENT*OSSemCreate(INT16Ucnt)//建立并初始化一个信号量(输入一个信号量值)79{80#ifOS_CRITICAL_METHOD==3//中断函数被设定为模式381OS_CPU_SRcpu_

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。