⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ucos—ii.txt

📁 uc/os—II下的九个C语言文件功能函数大全
💻 TXT
字号:
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() 中被调用
三、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, INT8U opt)

                           // 以“广播”方式向消息队列发送消息

(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 (INT16U cnt)

                         // 创建信号量

(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, INT8U newprio)

                                  // 任务优先级别的改变

(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 (INT8U prio)          // 任务的删除

(5)INT8U  OSTaskDelReq (INT8U prio)      // 请求删除任务函数

(6)INT8U  OSTaskResume (INT8U prio)      // 任务的恢复

(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 (INT16U ticks)                // 以时钟节拍数为单位延时 

(2)INT8U OSTimeDlyHMSM (INT8U hours, INT8U minutes, INT8U seconds, INT16U milli)

                                            // 用时、分、秒、毫秒为单位延时

(3)INT8U  OSTimeDlyResume (INT8U prio)        

                // 取消延时,若任务比正在运行的任务级别高,则立即引发一次调度

(4)INT32U  OSTimeGet (void)              // 获取OSTime 值

(5)void  OSTimeSet (INT32U ticks)          // 设置 OSTime 值

注:INT32U  OSTime                  // 全局变量,用以记录系统发生的时钟节拍



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -