μC/OS-Ⅱ下的九个C语言文件功能函数大全

μC/OS-Ⅱ下的九个C语言文件功能函数大全


μC/OS-Ⅱ下的九个C语言文件功能函数大全。转载自song529110的笔记http://blog.21ic.com/user1/4838/index.htm

一、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)         


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


(12)void OS_EventTaskWait (OS_EVENT *pevent)


(13)void OS_EventTO (OS_EVENT *pevent)

(14)void OS_EventWaitListInit (OS_EVENT *pevent)

(15)void OS_Sched (void)            // 实现任务级的调度

(16)void OS_TaskIdle (void *pdata)  

(17)void OS_TaskStat (void *pdata)

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

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

(8)static void OS_FlagBlock (OS_FLAG_GRP *pgrp,          // 信号量集指针
                                                   OS_FLAG_NODE *pnode,    // 待添加的等待任务节点指针
                                                   OS_FLAGS flags,                // 指定等待信号的数据
                                                    INT8U wait_type,                 // 信号与等待之间的逻辑
                                                   INT16U timeout)                   // 等待时限

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

(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 ,全局变量,用以记录系统发生的时钟节拍。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值