|
OSSemQuery()
|
名称:OSSemQuery()
所属文件:Os_sem.c 原型:uint8 OSSemQuery(uint8 index) 功能描述:OSSemQuery()函数获取某个信号量的值 编译开关:EN_OS_SEM_QUERY 调用者:用户任务 参数:index:信号量索引 返回值:信号量的值 调用模块:OS_ENTER_CRITICAL, OS_EXIT_CRITICAL 注意:先建立信号量再使用。 void Task(void) { while(1) { if(OSSemQuery(0)>0) { /*有信号量时处理信号量*/ } else { /*没有信号量时进行其它处理*/ } } } |
|
OSSendSignal()
|
名称:OSSendSignal()
所属文件:Os_core.c 原型:void OSSendSignal(unit8 TaskId) 功能描述:OSSendSignal()无条件使指定任务就绪。如果指定任务的优先级比当前任务的优先级高,则高优先级的任务得以执行。 编译开关:无 调用者:用户任务 参数:TaskId: 任务ID 返回值:无 调用模块:OSSched 示例: void Task(void) { while(1) { ShowChar = OSRunningTaskID()+'0'; OSSendSignal(0); OSWait(K_TMO,1); } } |
|
OSStart()
|
名称:OSStart() |
|
OSTimeTick()
|
名称:OSTimeTick()
所属文件:Os_cpu.c 原型:void OSTimeTick(void) 功能描述:每次系统节拍,small RTOS都执行OSTimeTick()函数。OSTimeTick()检查处于延时状态的任务是否到达延时时间,或者是正在等待的任务是否9超时。 编译开关:无 调用者:时钟中断或用户任务 参数:无 返回值:无 调用模块:无 注意:在任务或中断都可以调用OSTimeTick(),若在任务中调用,则任务的优先级应该很高(任务ID值很小),这是因为OSTimeTick()负责所有任务的延时操作。 示例: #if EN_OS_INT_ENTER >0 #pragma disable /*除非最高优先级中断,否则必须加上这一句*/ #endif void OSTickISR(void) interrupt OS_TIME_ISR { #if TICK_TIMER_SHARING>1 static uint8 TickSum="0"; TickSum = (TickSum +1)% TICK_TIMER_SHARING if(TickSum!=0) return; #endif #if EN_OS_INT_ENTER>0 OS_INT_ENTER(); //中断开始处理 #endif #if USER_TICK_TIMER_EN == 1 UserTickTimer(); //用户函数 #endif #if EN_TIMER_SHARING >0 OSTimeTick(); //调用系统时钟处理函数 #else OSIntSendSignal(TIME_ISR_TASK_ID); #endif OSIntExit();//中断处理结束 } |
|
OSTaskDel()
|
名称:OSTaskDel()
所属文件:Os_Core.c 原型:uint8 OSTaskDel(uint8 TaskID) small 功能描述:删除任务 例: void TaskB(void) { uint8 i; for (i = 0; i < 10; i++) { PC_DispChar(20, 10, (i % 10) + '0', DISP_FGND_LIGHT_GRAY); OSWait(K_TMO, 15); } OSTaskDel(OSRunningTaskID()); } void TaskD(void) { uint8 i; for (i = 0; i < 30; i++) { PC_DispChar(20, 5, (i % 10) + '0', DISP_FGND_LIGHT_GRAY); OSWait(K_TMO, 20); } OSTaskDel(0); } |
|
OSTaskSpend()
|
函数名称: OS_TaskSuspend 功能描述: 使指定任务休眠,但不进行任务切换 输 入: TaskID : 任务ID 原型:void OS_TaskSuspend(uint8 TaskID) small; 例: OS_TaskSuspend(OSRunningTaskID()); /* 任务进入等待状态 */ |
|
OSVersion()
|
名称:OSVersion()
所属文件:Os.h 原型:宏 功能描述:取得当前RTOS的版本号 编译开关:无 调用者:用户任务、内核函数 参数:无 返回值:SMALL RTOS的版本号为*100,如果当前版本号为1.21,则返回121 调用模块:无 |
|
OSWait()
|
名称:OSWait()
所属文件:Os.c 原型:uint8 OSWait(uint8 typ,uint8 ticks) 功能描述:OSWait()函数使当前任务睡眠,它可以由以下方式恢复执行:指定typ 为等待超时,在一个时间间隔后被唤醒;指定typ为等待信号,另一个任务或中断可以把它唤醒(通过OSSendSignal()或OSIntSendSignal或是它们的组合),若其中任意一个事件出现,则任务恢复执行。 编译开关:无 调用者:用户任务、内核函数 参数:typ:等待事件类型。 K_SIG:等待信号; K_TMO:等待超时, 或者是其中任意值的按位“或” 返回值:NOT_OK:参数错误 TMO_EVENT:超时到 SIG_EVENT:有信号 调用模块:OSIntSendSignal, OSSched. 示例: void TaskB(void) { while(1) { ShowChar = OSRunningTaskID+'0'; OSSendSignal(0); OSWait(K_TMO,1); } } |
|
OS_ENTER_CRITICAL()
|
#define OS_ENTER_CRITICAL()
EA=0,Os_Enter_Sum++
关闭受smallrtos管理的中断,然后将变量Os_Enter_Sum加一。关中断是为了保护临界区代码。 |
|
OS_EXIT_CRITICAL()
|
#define OS_EXIT_CRITICAL()
if(--Os_Enter_Sum==0)EA=1
打开受smallrtos管理的中断,然后将变量Os_Enter_Sum减一。关中断是为了保护临界区代码。 |
ucos-9-ucosII 函数列表3
原创dong4716138 ©著作权
©著作权归作者所有:来自51CTO博客作者dong4716138的原创作品,请联系作者获取转载授权,否则将追究法律责任
下一篇:高手是怎样炼成的
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
libnet 函数列表
libnet提供的接口函数按其作用可分为四类:* 内存管理(分
网络编程 libnet 路由协议 多数据 内存释放 -
sql函数列表
表达式:是常量、变量、列或函数等与运算符的任意组合。以下参数中表达式类型是指表达式经运
sql 字符串 数据类型 浮点 -
Delphi常用函数列表
Abort 函数 引起放弃的意外处理 Abs 函数 绝对值
Delphi常用函数列表 -
OpenGL库函数列表
OpenGL库函数列表
函数 职场 列表 休闲 OpenGL -
python3 函数列表 python列表常用的函数python