|
OSQPostFront()
|
名称:OSQPostFront()
所属文件:Os_q.c 原型:uint8 OSQPostFront(uint8 OS_Q_MEM_SEL *Buf,uint8 Data) 功能描述:OSQPostFront()通过消息队列向任务发送消息。与OSQPost()不同的是,OSQPostFront()把将要发送的消息放在消息队列的最前端,也就是按照后入后出的工作方式,而不是先入先出的工作方式。 编译开关:EN_OS_Q_POST_FRONT 调用者:用户任务 参数:Buf:指向队列的指针 Data:消息数据 返回值:OS_Q_FULL:队列已满 OS_Q_OK:发送成功 调用模块:OSQIntPostFront,OSSched 注意:先建立消息队列再使用。 示例 void Task(void) { while(1) { if(OSQPostFront(SerialData,GetSerial())==OS_Q_OK) { /*将消息放入消息队列中*/ } else { /*消息队列已满*/ } } } |
|
OSQSize()
|
名称:OSQSize() |
|
OSRunningTaskID()
|
名称:OSRunningTaskID()
所属文件:os.h 原型:宏 功能描述:OSRunningTaskID()返回当前正在运行的任务的ID.任务的ID与任务优先级一一对应,ID为0的任务优先级最高。任务的ID 在运行中不能改变。 编译开关:无 调用者:用户任务、内核函数 参数:无 返回值:当前正在运行的任务的ID 示例: void TaskB(void) { while(1) { ShowChar = OSRunningTaskID()+'0'; OSSendSignal(0); OSWait(K_TMO,1); } } |
|
OSSemAccept()
|
名称:OSSemAccept()
所属文件:Os_sem.c 原型:uint8 OSSemAccept(uint8 index) 功能描述:OSSemAccept()函数查看设备是否就绪或事件是否发生。与OSSemPend()不同,如果设备没有就绪,则OSSemAccept()函数并不使当前任务睡眠。一般在中断中用该函数查询信号量。 编译开关:EN_OS_SEM_ACCEPT. 调用者:用户任务 参数:index:信号量索引 返回值:NOT_OK:参数错误 OS_SEM_OK:得到信号量 OS_SEM_NOT_OK:没有得到信号量 调用模块:OSClearSignal,OSSched,OS_ENTER_CRITICAL,OS_EXIT_CRITICAL 注意:必须先建立信号量,然后再使用 void Task(void) { while(1) { if(OSSemAccept()==OS_SEM_OK) /* 查看设备是否就绪或事件是否发生*/ { /*就绪就执行代码*/ } } } |
|
OSSemCreate()
|
名称:OSSemCreate() |
|
OSSemIntPost()
|
名称:OSSemIntPost() |
|
OSSemPend()
|
名称:OSSemPend()
所属文件:Os_sem.c 原型:uint8 OSSemPend(uint8 index,uint8 Tick) 功能描述:OSSemPend()用于任务试图取得设备的使用权,需要和其它任务或中断同步,任务需要等待特定事件发生的场合。如果任务需要调用OSSemPend()函数时,信号量的值大于0,则OSSemPend()函数递减该值并返回OS_SEM_OK.如果该值等于0,则OSSemPend()函数将当前任务加入该信号量的等待队列,并使当前任务睡眠,直到其它任务或中断置起信号量或超出预定时间。如果多个任务等待同一个信号量,则当信号量被置起时,RTOS是其中优先等级最高的任务取得信号量并恢复执行。 编译开关:EN_OS_SEM_PENT 调用者:用户任务 参数:index:信号量索引 Tick:等待时间 返回值:NOT_OK:参数错误 OS_SEM_OK:收到信号量 OS_SEM_TMO:超时 OS_SEM_NOT_OK:没有得到信号量 调用模块:OSRunningTaskID,OSClearSignal,OSSched,OS_ENTER_CRITICAL,OS_EXIT_CRITICAL 注意:先建立信号量再使用。不允许中断调用该函数。 示例 void TaskA(void) { while(1) { OSSemPend(0,0); ... /*只有得到信号量置起,该任务才能执行*/ ... } } 例2: /* 分配信号量索引 */ #define IICSem 0 #define PCF8563Sem 1 ..... /* 初始化使用到的信号量 */ OSSemCreate(IICSem, 1); //初始值均为 1 OSSemCreate(PCF8563Sem, 1); ..... while (1) { ...... OSSemPend(PCF8563Sem,0); /*无限等待信号量PCF85863Sem */ /*得到信号量才能执行 */ .......... OSSemPost(PCF8563Sem); /* 置起信号量,其它任务可用 */ } |
|
OSSemPost()
|
名称:OSSemPost()
所属文件:Os_sem.c 原型:uint8 OSSemPost(uint8 index) 功能描述:OSSemPost()置起指定的信号量。如果指定的信号量是0或大于0,则OSSemPost()函数递增该信号量并返回。如果有任何在等待信号量,则最高优先级的任务将得到信号量并进入就绪状态。任务调度函数将进行任务调度,决定当前运行的任务是否依然为最高优先级就绪状态的任务 编译开关:EN_OS_SEM_POST 调用者:用户任务 参数:index:信号量索引 返回值:NOT_OK:参数错误 OS_SEM_OK:发送成功 调用模块:OSSemIntPost,OSSched 注意:先建立信号量再使用,中断中不允许调用该函数。 示例: void TaskA(void) { OSSemCreate(0,1); while(1) { OSSemPend(0,0); /*使用设备*/ OSSemPost(0); .. } } 例2: /* 分配信号量索引 */ #define IICSem 0 #define PCF8563Sem 1 ..... /* 初始化使用到的信号量 */ OSSemCreate(IICSem, 1); //初始值均为 1 OSSemCreate(PCF8563Sem, 1); ..... while (1) { ...... OSSemPend(PCF8563Sem,0); /*无限等待信号量PCF85863Sem */ /*得到信号量才能执行 */ .......... OSSemPost(PCF8563Sem); /* 置起信号量,其它任务可用 */ } |
ucos-9-ucosII 函数列表2
原创dong4716138 ©著作权
©著作权归作者所有:来自51CTO博客作者dong4716138的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
vim内置函数列表2.
vim内置函数列表
vim 编辑器 函数 搜索 浮点 -
libnet 函数列表
libnet提供的接口函数按其作用可分为四类:* 内存管理(分
网络编程 libnet 路由协议 多数据 内存释放 -
sql函数列表
表达式:是常量、变量、列或函数等与运算符的任意组合。以下参数中表达式类型是指表达式经运
sql 字符串 数据类型 浮点 -
OpenGL库函数列表
OpenGL库函数列表
函数 职场 列表 休闲 OpenGL -
vim 函数列表插件
1.apt-get install exuberant-ctags 2.unzip taglist_42.z
vim javascript 资源下载