您好,欢迎访问三七文档
当前位置:首页 > 法律文献 > 理论/案例 > ucosII功能函数大全(第九课)
uc/osII下的九个C语言文件功能函数大全一、OS_CORE.C(1)voidOSInit(void)(2)voidOSIntEnter(void)(3)voidOSIntExit(void)(4)voidOSSchedLock(void)//给调度器上锁(5)voidOSSchedUnlock(void)//给调度器解锁,成对使用(6)voidOSStart(void)//启动多任务过程,在启动之前必须调用OSInit(),并已建立一个任务。其中OSStartHighRdy()必须调用OSTaskSwHook(),并令OSRunning=TRUE.(7)voidOSStatInit(void)//确定CPU使用率(8)voidOSTimeTick(void)//时钟节拍服务函数,在每个时钟节拍了解每个任务的延时情况,使其中已经到了延时时限的非挂起任务进入就绪状态(9)INT16UOSVersion(void)//返回uc/os的版本号*100(10)voidOS_Dummy(void)//不做任何事情,被OSTaskDel()所调用(11)INT8UOS_EventTaskRdy(OS_EVENT*pevent,void*msg,INT8Umsk)//使一个正在等待的任务进入就绪状态,在调用函数OS***Post发送一个事件时被调用(12)voidOS_EventTaskWait(OS_EVENT*pevent)//因为一个事件未发生而挂起一个任务时被调用(13)voidOS_EventTO(OS_EVENT*pevent)//使一个等待超时的任务进入就绪状态(14)voidOS_EventWaitListInit(OS_EVENT*pevent)//把OSEventGrp及任务等待表中的每一位清零,即令ECB中不含任务等待,被OS***Create()调用(15)voidOS_Sched(void)//实现任务级的调度(16)voidOS_TaskIdle(void*pdata)//空闲任务,为使CPU在没有用户任务时有事可做(17)voidOS_TaskStat(void*pdata)//统计任务,每秒计算一次CPU在单位时间内的使用时间,并将计算结果以百分数的形式存放在OSCPUUsage中,以便应用程序访问它来了解cpu的利用率(18)INT8UOS_TCBInit(INT8Uprio,//任务的优先级别,存于OSTCBPrioOS_STK*ptos,//任务堆栈顶指针,存于OSTCBStkPtrOS_STK*pbos,//任务堆栈栈底指针,存于OSTCBStkBottomINT16Uid,//任务的标识符,存于OSTCBIDINT32Ustk_size,//任务堆栈长度,存于OSTCBStkSizevoid*pext,//任务控制块的扩展指针,存于OSTCBExtPtrINT16Uopt)//任务控制块的选择项,存于OSTCBOpt//为用户程序分配任务控制块及对其进行初始化备注:INT8UconstOSUnMapTbl[]是uc/os为提高查找速度而定义的一个数组二、OS_FLAG.C(1)OS_FLAG_GRP*OSFlagCreate(OS_FLAGSflags,//信号量的初始值INT8U*err)//错误信息//信号量集的创建函数(2)voidOS_FlagInit(void)//initializetheeventflagmodule,是uc/os的内部函数,应用程序不得调用该函数(3)OS_FLAG_GRP*OSFlagDel(OS_FLAG_GRP*pgrp,//所要删除的信号量集指针INT8Uopt,//选择项INT8U*err)//删除信号量集(4)OS_FLAGSOSFlagPend(OS_FLAG_GRP*pgrp,//所要请求的信号量集的指针OS_FLAGSflags,//滤波器INT8Uwait_type,//等待类型INT16Utimeout,//延时时限INT8U*err)//错误信息//请求信号量集(5)OS_FLAGSOSFlagAccept(OS_FLAG_GRP*pgrp,//所请求的信号量集指针OS_FLAGSflags,//请求的信号INT8Uwait_type,//逻辑运算类型INT8U*err)//错误信息//无等待的请求一个信号量集(6)OS_FLAGSOSFlagPost(OS_FLAG_GRP*pgrp,OS_FLAGSflags,//所要选择发送的信号INT8Uopt,//信号有效的选项INT8U*err)//向信号量集发送信号(7)OS_FLAGSOSFlagQuery(OS_FLAG_GRP*pgrp,//待查询的信号量集的指针INT8U*err)//查询信号量的状态,返回被查询信号量集标志组的成员OSFlagFlags(8)staticvoidOS_FlagBlock(OS_FLAG_GRP*pgrp,//信号量集指针OS_FLAG_NODE*pnode,//待添加的等待任务节点指针OS_FLAGSflags,//指定等待信号的数据INT8Uwait_type,//信号与等待之间的逻辑INT16Utimeout)//等待时限//添加节点,在请求信号量集函数OSFlagPend()中被调用(9)staticBOOLEANOS_FlagTaskRdy(OS_FLAG_NODE*pnode,OS_FLAGSflags_rdy)//期望的事件标志为已经置位,从而使一个任务准备运行(10)voidOS_FlagUnlink(OS_FLAG_NODE*pnode)//删除节点,在OSFlagPost()中被调用三、OS_MBOX.C(1)void*OSMboxAccept(OS_EVENT*pevent)//无等待的请求消息邮箱(2)OS_EVENT*OSMboxCreate(void*msg)//创建一个消息邮箱(3)OS_EVENT*OSMboxDel(OS_EVENT*pevent,INT8Uopt,INT8U*err)//删除消息邮箱(4)void*OSMboxPend(OS_EVENT*pevent,INT16Utimeout,INT8U*err)//请求消息邮箱,查看OSEventPtr是否为NULL(5)INT8UOSMboxPost(OS_EVENT*pevent,void*msg)//向消息邮箱发送消息(6)INT8UOSMboxPostOpt(OS_EVENT*pevent,void*msg,INT8Uopt)//以广播形式向事件等待任务表中的所有任务发送消息(7)INT8UOSMboxQuery(OS_EVENT*pevent,OS_MBOX_DATA*pdata)//状态查询四、OS_MEM.C(1)OS_MEM*OSMemCreate(void*addr,INT32Unblks,INT32Ublksize,INT8U*err)//创建动态内存(2)void*OSMemGet(OS_MEM*pmem,INT8U*err)//请求获得一个内存块(3)INT8UOSMemPut(OS_MEM*pmem,void*pblk)//释放一个内存块(4)INT8UOSMemQuery(OS_MEM*pmem,OS_MEM_DATA*pdata)//查询动态内存的状态(5)voidOS_MemInit(void)//初始化动态内存五、OS_MUTEX.C(1)INT8UOSMutexAccept(OS_EVENT*pevent,INT8U*err)//无等待时间的请求信号量(2)OS_EVENT*OSMutexCreate(INT8Uprio,INT8U*err)//创建互斥型信号量(3)OS_EVENT*OSMutexDel(OS_EVENT*pevent,INT8Uopt,INT8U*err)//删除互斥型信号量(4)voidOSMutexPend(OS_EVENT*pevent,INT16Utimeout,INT8U*err)//有等待时间的请求信号量(5)INT8UOSMutexPost(OS_EVENT*pevent)//发送(释放)互斥型信号量(6)INT8UOSMutexQuery(OS_EVENT*pevent,OS_MUTEX_DATA*pdata)//获取互斥型信号量的当前状态六、OS_Q.C(1)void*OSQAccept(OS_EVENT*pevent)//无等待的请求一个消息队列(2)OS_EVENT*OSQCreate(void**start,INT16Usize)//创建一个消息队列(3)OS_EVENT*OSQDel(OS_EVENT*pevent,INT8Uopt,INT8U*err)//删除消息队列(4)INT8UOSQFlush(OS_EVENT*pevent)//清空消息队列(5)void*OSQPend(OS_EVENT*pevent,INT16Utimeout,INT8U*err)//有等待的请求一个消息队列(6)INT8UOSQPost(OS_EVENT*pevent,void*msg)//以“先进先出”的方式向消息队列发送消息(7)INT8UOSQPostFront(OS_EVENT*pevent,void*msg)//以“后进先出”的方式向消息队列发送消息(8)INT8UOSQPostOpt(OS_EVENT*pevent,void*msg,INT8Uopt)//以“广播”方式向消息队列发送消息(9)INT8UOSQQuery(OS_EVENT*pevent,OS_Q_DATA*pdata)//获取消息队列的当前状态(10)voidOS_QInit(void)//消息队列初始化七、OS_SEM.C(1)INT16UOSSemAccept(OS_EVENT*pevent)//无等待的请求信号量(2)OS_EVENT*OSSemCreate(INT16Ucnt)//创建信号量(3)OS_EVENT*OSSemDel(OS_EVENT*pevent,INT8Uopt,INT8U*err)//删除信号量(4)voidOSSemPend(OS_EVENT*pevent,INT16Utimeout,INT8U*err)//有等待的请求信号量(5)INT8UOSSemPost(OS_EVENT*pevent)//发送(释放)信号量(6)INT8UOSSemQuery(OS_EVENT*pevent,OS_SEM_DATA*pdata)//获取信号量的当前状态八、OS_TASK.C(1)INT8UOSTaskChangePrio(INT8Uoldprio,INT8Unewprio)//任务优先级别的改变(2)INT8UOSTaskCreate(void(*task)(void*pd),void*pdata,OS_STK*ptos,INT8Uprio)//任务的创建(3)INT8UOSTaskCreateExt(void(*task)(void*pd),//指向任务的指针void*pdata,//传递给任务的参数OS_STK*ptos,//指向任务堆栈栈顶的指针INT8Uprio,//创建任务的优先级INT16Uid,//任务的标识OS_STK*pbos,//任务堆栈栈底的指针INT32Ustk_size,//任务堆栈的长度void*pext,//指向附加数据域的指针INT16Uopt)//用于设定操作的选项//任务的另一种创建函数,更加灵活,但也增加了额外的开销(4)INT8UOSTaskDel(INT8Uprio)//任务的删除(5)INT8UOSTaskDelReq(INT8Uprio)//请求删除任务函数(6)INT8UOSTaskResume(INT8Uprio)//任务的恢复(7)INT8UOSTaskStkChk(INT8Uprio,OS_STK_DATA*pdata)//校核空余内存的数
本文标题:ucosII功能函数大全(第九课)
链接地址:https://www.777doc.com/doc-5587570 .html