uc/os—II下的九个C语言文件功能函数大全(一)2008-4-22 10:17:00
uc/os—II下的九个C语言文件功能函数大全 一、OS_CORE.C (1)void OSInit (void) (2)void OSIntEnter (void) (3)void OSIntExit (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 (INT8U prio, // 任务的优先级别,存于OSTCBPrio OS_STK *ptos, // 任务堆栈顶指针,存于OSTCBStkPtr OS_STK *pbos, // 任务堆栈栈底指针,存于OSTCBStkBottom INT16U id, // 任务的标识符,存于OSTCBID INT32U stk_size, // 任务堆栈长度,存于OSTCBStkSize void *pext, // 任务控制块的扩展指针,存于OSTCBExtPtr INT16U opt) // 任务控制块的选择项,存于OSTCBOpt // 为用户程序分配任务控制块及对其进行初始化 备注:INT8U const OSUnMapTbl[ ] 是uc/os 为提高查找速度而定义的一个数组 二、OS_FLAG.C (1)OS_FLAG_GRP *OSFlagCreate (OS_FLAGS flags, // 信号量的初始值 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_FLAGS flags, // 滤波器 INT8U wait_type, // 等待类型 INT16U timeout, // 延时时限 INT8U *err) // 错误信息 // 请求信号量集 (5)OS_FLAGS OSFlagAccept (OS_FLAG_GRP *pgrp, // 所请求的信号量集指针 OS_FLAGS flags, // 请求的信号 INT8U wait_type, // 逻辑运算类型 INT8U *err) // 错误信息 // 无等待的请求一个信号量集 (6)OS_FLAGS OSFlagPost (OS_FLAG_GRP *pgrp, OS_FLAGS flags, // 所要选择发送的信号 INT8U opt, // 信号有效的选项 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_FLAGS flags, // 指定等待信号的数据 INT8U wait_type, // 信号与等待之间的逻辑 INT16U timeout) // 等待时限 // 添加节点,在请求信号量集函数OSFlagPend() 中被调用 (9)static BOOLEAN OS_FlagTaskRdy (OS_FLAG_NODE *pnode, OS_FLAGS flags_rdy) // 期望的事件标志为已经置位,从而使一个任务准备运行 (10)void OS_FlagUnlink (OS_FLAG_NODE *pnode) // 删除节点,在OSFlagPost() 中被调用 |
|