UCOS-Ⅱ下的C语言文件功能函数
来源:互联网 发布:mac 照片 iphoto 区别 编辑:程序博客网 时间:2024/04/30 05:15
μC/OS-Ⅱ下的九个C语言文件功能函数
一、OS_CORE.C
(1)voidOSInit (void)
(2)voidOSIntEnter (void)
(3)voidOSIntExit (void)
(4)void OSSchedLock(void) // 给调度器上锁
(5)void OSSchedUnlock (void) // 给调度器解锁,成对使用
(6)void OSStart (void) //动多任务过程,在启动之前必须调用OSInit(),并已建立一个任务。其中OSStartHighRdy()必须调用OSTaskSwHook(),并令OSRunning = TRUE.*/
(7)void OSStatInit(void) // 确定CPU 使用率
(8)void OSTimeTick (void) //钟节拍服务函数,在每个时钟节拍了解每个任务的延时情况,使其中已经到了延时时限的非挂起任务进入就绪状态*/
(9)INT16U OSVersion(void) // 返回uc/os的版本号*100
(10)void OS_Dummy(void) // 不做任何事情,被OSTaskDel()调用
(11)INT8U OS_EventTaskRdy (OS_EVENT *pevent, void *msg,INT8U msk)
/*使一个正在等待的任务进入就绪状态,在调用函数OS***Post发送一个事件时被调用*/
(12)void OS_EventTaskWait (OS_EVENT *pevent)/*因为一个事件未发生而挂起一个任务时被调用*/
(13)void OS_EventTO (OS_EVENT *pevent)/*使一个等待超时的任务进入就绪状态*/
(14)void OS_EventWaitListInit (OS_EVENT *pevent)/*把OSEventGrp及任务等待表中的每一位清零,即令ECB中不含任务等待,被OS***Create()调用*/
(15)void OS_Sched(void) // 实现任务级的调度
(16)void OS_TaskIdle (void *pdata) /*空闲任务,为使CPU 在没有用户任务时有事可做*/
(17)void OS_TaskStat (void *pdata) /*统计任务,每秒计算一次CPU在单位时间内的使用时间,并将计算结果以百分数的形式存放在OSCPUUsage中,以便应用程序访问它来了解cpu利用率*/
(18)INT8U OS_TCBInit (INT8Uprio, // 任务的优先级别,存于OSTCBPrio
OS_STK *ptos, // 任务堆栈顶指针,存于OSTCBStkPtr
OS_STK *pbos, // 任务堆栈栈底指针,存于OSTCBStkBottom
INT16U id, // 任务的标识符,存于OSTCBID
INT32U stk_size, // 任务堆栈长度,存于OSTCBStkSize
void *pext, // 任务控制块的扩展指针,存于OSTCBExtPtr
INT16U opt) // 任务控制块的选择项,存于OSTCBOpt
//为用户程序分配任务控制块及对其进行初始化
备注:INT8U constOSUnMapTbl[ ] 是uc/os为提高查找速度而定义的一个数组
二、OS_FLAG.C
(1)OS_FLAG_GRP *OSFlagCreate (OS_FLAGSflags, // 信号量初始值
INT8U *err) // 错误信息
//信号量集的创建函数
(2)void OS_FlagInit(void)
/*initialize the event flag module,是uc/os内部函数,应用程序不得调用该函数*/
(3)OS_FLAG_GRP *OSFlagDel (OS_FLAG_GRP *pgrp, //所要删除信号量集指针
INT8U opt, // 选择项
INT8U*err) // 删除信号量集
(4)OS_FLAGS OSFlagPend (OS_FLAG_GRP*pgrp, //所要请求的信号量集的指针
OS_FLAGSflags, // 滤波器
INT8Uwait_type, // 等待类型
INT16Utimeout, // 延时时限
INT8U *err) // 错误信息
// 请求信号量集
(5)OS_FLAGS OSFlagAccept (OS_FLAG_GRP*pgrp, //所请求的信号量集指针
OS_FLAGS flags, // 请求的信号
INT8Uwait_type, // 逻辑运算类型
INT8U*err) // 错误信息
// 无等待的请求一个信号量集
(6)OS_FLAGS OSFlagPost (OS_FLAG_GRP *pgrp,
OS_FLAGS flags, // 所要选择发送的信号
INT8Uopt, // 信号有效的选项
INT8U *err)
// 向信号量集发送信号
(7)OS_FLAGS OSFlagQuery (OS_FLAG_GRP *pgrp, //待查询的信号量集的指针
INT8U *err)
/*查询信号量的状态,返回被查询信号量集标志组的成员OSFlagFlags*/
(8)static void OS_FlagBlock (OS_FLAG_GRP*pgrp, // 信号量集指针
OS_FLAG_NODE *pnode, // 待添加的等待任务节点指针
OS_FLAGSflags, // 指定等待信号的数据
INT8Uwait_type, // 信号与等待之间的逻辑
INT16Utimeout) // 等待时限
/*添加节点,在请求信号量集函数OSFlagPend() 中被调用*/
(9)static BOOLEAN OS_FlagTaskRdy (OS_FLAG_NODE *pnode,
OS_FLAGS flags_rdy)
/*期望的事件标志为已经置位,从而使一个任务准备运行*/
(10)void OS_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, INT8U opt,INT8U *err)
/*删除消息邮箱*/
(4)void *OSMboxPend (OS_EVENT *pevent, INT16U timeout,INT8U *err)
/*请求消息邮箱,查看OSEventPtr是否为NULL*/
(5)INT8U OSMboxPost (OS_EVENT *pevent, void *msg)//向消息邮箱发送消息
(6)INT8U OSMboxPostOpt (OS_EVENT *pevent, void *msg,INT8U opt)
/*以广播形式向事件等待任务表中的所有任务发送消息*/
(7)INT8U OSMboxQuery (OS_EVENT *pevent, OS_MBOX_DATA*pdata)
/*状态查询*/
四、OS_MEM.C
(1)OS_MEM *OSMemCreate (void *addr, INT32U nblks,INT32U blksize, INT8U *err) /*创建动态内存*/
(2)void *OSMemGet (OS_MEM *pmem, INT8U *err) // 请求获得一个内存块
(3)INT8U OSMemPut (OS_MEM *pmem, void *pblk) // 释放一个内存块
(4)INT8U OSMemQuery (OS_MEM *pmem, OS_MEM_DATA *pdata)
/*查询动态内存的状态*/
(5)void OS_MemInit(void) // 初始化动态内存
五、OS_MUTEX.C
(1)INT8U OSMutexAccept (OS_EVENT *pevent, INT8U *err)
/*无等待时间的请求信号量*/
(2)OS_EVENT *OSMutexCreate (INT8U prio, INT8U *err)
/*创建互斥型信号量*/
(3)OS_EVENT *OSMutexDel (OS_EVENT *pevent, INT8U opt,INT8U *err)
/*删除互斥型信号量*/
(4)void OSMutexPend (OS_EVENT *pevent, INT16U timeout,INT8U *err)
/*有等待时间的请求信号量*/
(5)INT8U OSMutexPost (OS_EVENT *pevent) //发送(释放)互斥型信号量
(6)INT8U OSMutexQuery (OS_EVENT *pevent, OS_MUTEX_DATA*pdata)
/*获取互斥型信号量的当前状态*/
六、OS_Q.C
(1)void *OSQAccept (OS_EVENT *pevent) // 无等待的请求一个消息队列
(2)OS_EVENT *OSQCreate (void **start, INT16U size) //创建一个消息队列
(3)OS_EVENT *OSQDel (OS_EVENT *pevent, INT8U opt, INT8U*err)
/*删除消息队列*/
(4)INT8U OSQFlush (OS_EVENT *pevent) // 清空消息队列
(5)void *OSQPend (OS_EVENT *pevent, INT16U timeout,INT8U *err)
/*有等待的请求一个消息队列*/
(6)INT8U OSQPost (OS_EVENT *pevent, void *msg)
/*以“先进先出”的方式向消息队列发送消息*/
(7)INT8U OSQPostFront (OS_EVENT *pevent, void *msg)
/*以“后进先出”的方式向消息队列发送消息*/
(8)INT8U OSQPostOpt (OS_EVENT *pevent, void *msg, INT8Uopt)
/*以“广播”方式向消息队列发送消息*/
(9)INT8U OSQQuery (OS_EVENT *pevent, OS_Q_DATA *pdata)
/*获取消息队列的当前状态*/
(10)void OS_QInit (void) // 消息队列初始化
七、OS_SEM.C
(1)INT16U OSSemAccept (OS_EVENT *pevent) // 无等待的请求信号量
(2)OS_EVENT *OSSemCreate (INT16Ucnt) // 创建信号量
(3)OS_EVENT *OSSemDel (OS_EVENT *pevent, INT8U opt,INT8U *err)
/*删除信号量*/
(4)void OSSemPend (OS_EVENT *pevent, INT16U timeout,INT8U *err)
/*有等待的请求信号量*/
(5)INT8U OSSemPost (OS_EVENT *pevent) // 发送(释放)信号量
(6)INT8U OSSemQuery (OS_EVENT *pevent, OS_SEM_DATA*pdata)
/*获取信号量的当前状态*/
八、OS_TASK.C
(1)INT8U OSTaskChangePrio (INT8U oldprio, INT8Unewprio)
/*任务优先级别的改变*/
(2)INT8U OSTaskCreate (void (*task)(void *pd), void*pdata, OS_STK *ptos,
INT8U prio) /*任务的创建*/
(3)INT8U OSTaskCreateExt (void (*task)(void*pd), // 指向任务的指针
void *pdata, // 传递给任务的参数
OS_STK *ptos, // 指向任务堆栈栈顶的指针
INT8U prio, // 创建任务的优先级
INT16U id, // 任务的标识
OS_STK *pbos, // 任务堆栈栈底的指针
INT32U stk_size, // 任务堆栈的长度
void *pext, // 指向附加数据域的指针
INT16U opt) //用于设定操作的选项
/*任务的另一种创建函数,更加灵活,但也增加了额外的开销*/
(4)INT8U OSTaskDel (INT8Uprio) // 任务的删除
(5)INT8U OSTaskDelReq (INT8Uprio) // 请求删除任务函数
(6)INT8U OSTaskResume (INT8Uprio) // 任务的恢复
(7)INT8U OSTaskStkChk (INT8U prio, OS_STK_DATA *pdata)
/*校核空余内存的数量*/
(8)INT8U OSTaskSuspend (INT8U prio)
/*任务的挂起,可用来挂起自身或除空闲任务之外的任何任务*/
(9)INT8U OSTaskQuery (INT8U prio, OS_TCB *pdata) // 任务的查询
九、OS_TIME.C
(1)void OSTimeDly (INT16Uticks) // 以时钟节拍数为单位延时
(2)INT8U OSTimeDlyHMSM (INT8U hours, INT8U minutes,INT8U seconds, INT16U milli) /*用时、分、秒、毫秒为单位延时*/
(3)INT8U OSTimeDlyResume (INT8Uprio)
/*取消延时,若任务比正在运行的任务级别高,则立即引发一次调度*/
(4)INT32U OSTimeGet(void) // 获取OSTime 值
(5)void OSTimeSet (INT32Uticks) // 设置 OSTime 值
注:INT32U OSTime ,全局变量,用以记录系统发生的时钟节拍
- UCOS-Ⅱ下的C语言文件功能函数
- μC/OS-Ⅱ下的九个C语言文件功能函数大全
- ucos下lwip的ping功能实现
- C语言中,strstr函数的功能
- 【C语言】【unix c】实现sleep函数的功能
- c语言常用功能函数
- C语言头文件功能
- C语言文件函数
- C语言下的清屏函数
- C语言下的清屏函数
- C语言下的函数递归调用
- C语言下的qsort函数
- Linux下的C语言函数perror
- C语言文件的输入输出函数
- C语言常用函数的包含文件
- C语言的文件操作相关函数
- C语言文件的输入输出函数
- C语言有关文件操作的函数
- Cocos2dx之Box2D详解 设置物体回复力
- Program size(keil)
- Java的垃圾回收
- 【教程】模拟登陆百度之Java代码版
- 史蒂夫vgdgghdgh哪个好发给
- UCOS-Ⅱ下的C语言文件功能函数
- ucos代码裁剪
- 电话豆腐花发过火和规范化
- 看到这篇文章,我笑了,我结婚,丈母娘就给两百块钱的压箱底钱,最后什么都没了》
- 程序员的两难抉择
- hdu 1000
- 10.8 Combination Sum II
- hdu 1001
- windows下Eclipse安装hadoop1.1.2插件连接hadoop集群