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

📄 ucos_ii.h

📁 《嵌入式网络系统设计-基于Atmel ARM7 系列》这个本书的光盘资料
💻 H
📖 第 1 页 / 共 5 页
字号:
/*$PAGE*/
/*
*********************************************************************************************************
*                                         MESSAGE QUEUE MANAGEMENT
*********************************************************************************************************
*/

#if (OS_Q_EN > 0) && (OS_MAX_QS > 0)

#if OS_Q_ACCEPT_EN > 0
void         *OSQAccept             (OS_EVENT        *pevent, 
                                     INT8U           *err);
#endif

OS_EVENT     *OSQCreate             (void           **start, 
                                     INT16U           size);

#if OS_Q_DEL_EN > 0
OS_EVENT     *OSQDel                (OS_EVENT        *pevent, 
                                     INT8U            opt, 
                                     INT8U           *err);
#endif

#if OS_Q_FLUSH_EN > 0
INT8U         OSQFlush              (OS_EVENT        *pevent);
#endif

void         *OSQPend               (OS_EVENT        *pevent, 
                                     INT16U           timeout, 
                                     INT8U           *err);

#if OS_Q_POST_EN > 0
INT8U         OSQPost               (OS_EVENT        *pevent, 
                                     void            *msg);
#endif

#if OS_Q_POST_FRONT_EN > 0
INT8U         OSQPostFront          (OS_EVENT        *pevent, 
                                     void            *msg);
#endif

#if OS_Q_POST_OPT_EN > 0
INT8U         OSQPostOpt            (OS_EVENT        *pevent, 
                                     void            *msg, 
                                     INT8U            opt);
#endif

#if OS_Q_QUERY_EN > 0
INT8U         OSQQuery              (OS_EVENT        *pevent, 
                                     OS_Q_DATA       *p_q_data);
#endif

#endif

/*$PAGE*/
/*
*********************************************************************************************************
*                                          SEMAPHORE MANAGEMENT
*********************************************************************************************************
*/
#if OS_SEM_EN > 0

#if OS_SEM_ACCEPT_EN > 0
INT16U        OSSemAccept           (OS_EVENT        *pevent);
#endif

OS_EVENT     *OSSemCreate           (INT16U           cnt);

#if OS_SEM_DEL_EN > 0
OS_EVENT     *OSSemDel              (OS_EVENT        *pevent, 
                                     INT8U            opt, 
                                     INT8U           *err);
#endif

void          OSSemPend             (OS_EVENT        *pevent, 
                                     INT16U           timeout, 
                                     INT8U           *err);

INT8U         OSSemPost             (OS_EVENT        *pevent);

#if OS_SEM_QUERY_EN > 0
INT8U         OSSemQuery            (OS_EVENT        *pevent, 
                                     OS_SEM_DATA     *p_sem_data);
#endif

#if OS_SEM_SET_EN > 0
void          OSSemSet              (OS_EVENT        *pevent, 
                                     INT16U           cnt, 
                                     INT8U           *err);
#endif

#endif

/*$PAGE*/
/*
*********************************************************************************************************
*                                            TASK MANAGEMENT
*********************************************************************************************************
*/
#if OS_TASK_CHANGE_PRIO_EN > 0
INT8U         OSTaskChangePrio      (INT8U            oldprio, 
                                     INT8U            newprio);
#endif

#if OS_TASK_CREATE_EN > 0
INT8U         OSTaskCreate          (void           (*task)(void *p_arg), 
                                     void            *p_arg, 
                                     OS_STK          *ptos, 
                                     INT8U            prio);
#endif

#if OS_TASK_CREATE_EXT_EN > 0
INT8U         OSTaskCreateExt       (void           (*task)(void *p_arg),
                                     void            *p_arg,
                                     OS_STK          *ptos,
                                     INT8U            prio,
                                     INT16U           id,
                                     OS_STK          *pbos,
                                     INT32U           stk_size,
                                     void            *pext,
                                     INT16U           opt);
#endif

#if OS_TASK_DEL_EN > 0
INT8U         OSTaskDel             (INT8U            prio);
INT8U         OSTaskDelReq          (INT8U            prio);
#endif

#if OS_TASK_NAME_SIZE > 1
INT8U         OSTaskNameGet         (INT8U            prio, 
                                     INT8U           *pname, 
                                     INT8U           *err);

void          OSTaskNameSet         (INT8U            prio, 
                                     INT8U           *pname, 
                                     INT8U           *err);
#endif

#if OS_TASK_SUSPEND_EN > 0
INT8U         OSTaskResume          (INT8U            prio);
INT8U         OSTaskSuspend         (INT8U            prio);
#endif

#if OS_TASK_CREATE_EXT_EN > 0
INT8U         OSTaskStkChk          (INT8U            prio, 
                                     OS_STK_DATA     *p_stk_data);
#endif

#if OS_TASK_QUERY_EN > 0
INT8U         OSTaskQuery           (INT8U            prio, 
                                     OS_TCB          *p_task_data);
#endif

/*$PAGE*/
/*
*********************************************************************************************************
*                                            TIME MANAGEMENT
*********************************************************************************************************
*/

void          OSTimeDly             (INT16U           ticks);

#if OS_TIME_DLY_HMSM_EN > 0
INT8U         OSTimeDlyHMSM         (INT8U            hours, 
                                     INT8U            minutes, 
                                     INT8U            seconds, 
                                     INT16U           milli);
#endif

#if OS_TIME_DLY_RESUME_EN > 0
INT8U         OSTimeDlyResume       (INT8U            prio);
#endif

#if OS_TIME_GET_SET_EN > 0
INT32U        OSTimeGet             (void);
void          OSTimeSet             (INT32U           ticks);
#endif

void          OSTimeTick            (void);

/*
*********************************************************************************************************
*                                            TIMER MANAGEMENT
*********************************************************************************************************
*/

#if OS_TMR_EN > 0
OS_TMR      *OSTmrCreate            (INT32U           dly, 
                                     INT32U           period, 
                                     INT8U            opt, 
                                     OS_TMR_CALLBACK  callback, 
                                     void            *callback_arg, 
                                     INT8U           *name, 
                                     INT8U           *perr);

BOOLEAN      OSTmrDel               (OS_TMR          *ptmr,
                                     INT8U           *perr);

#if OS_TMR_CFG_NAME_SIZE > 0
INT8U        OSTmrNameGet           (OS_TMR          *ptmr, 
                                     INT8U           *pdest, 
                                     INT8U           *perr);
#endif
INT32U       OSTmrRemainGet         (OS_TMR          *ptmr, 
                                     INT8U           *perr);

INT8U        OSTmrStateGet          (OS_TMR          *ptmr, 
                                     INT8U           *perr);

BOOLEAN      OSTmrStart             (OS_TMR          *ptmr,
                                     INT8U           *perr);

BOOLEAN      OSTmrStop              (OS_TMR          *ptmr, 
                                     INT8U            opt, 
                                     void            *callback_arg, 
                                     INT8U           *perr);

INT8U        OSTmrSignal            (void);
#endif

/*
*********************************************************************************************************
*                                             MISCELLANEOUS
*********************************************************************************************************
*/

void          OSInit                (void);

void          OSIntEnter            (void);
void          OSIntExit             (void);

#if OS_SCHED_LOCK_EN > 0
void          OSSchedLock           (void);
void          OSSchedUnlock         (void);
#endif

void          OSStart               (void);

void          OSStatInit            (void);

INT16U        OSVersion             (void);

/*$PAGE*/
/*
*********************************************************************************************************
*                                      INTERNAL FUNCTION PROTOTYPES
*                            (Your application MUST NOT call these functions)
*********************************************************************************************************
*/

#if OS_TASK_DEL_EN > 0
void          OS_Dummy              (void);
#endif

#if OS_EVENT_EN
INT8U         OS_EventTaskRdy       (OS_EVENT        *pevent, 
                                     void            *msg, 
                                     INT8U            msk);

void          OS_EventTaskWait      (OS_EVENT        *pevent);

void          OS_EventTO            (OS_EVENT        *pevent);

void          OS_EventWaitListInit  (OS_EVENT        *pevent);
#endif

#if (OS_VERSION >= 251) && (OS_FLAG_EN > 0) && (OS_MAX_FLAGS > 0)
void          OS_FlagInit           (void);
void          OS_FlagUnlink         (OS_FLAG_NODE    *pnode);
#endif

void          OS_MemClr             (INT8U           *pdest, 
                                     INT16U           size);

void          OS_MemCopy            (INT8U           *pdest, 
                                     INT8U           *psrc, 
                                     INT16U           size);

#if (OS_MEM_EN > 0) && (OS_MAX_MEM_PART > 0)
void          OS_MemInit            (void);
#endif

#if OS_Q_EN > 0
void          OS_QInit              (void);
#endif

void          OS_Sched              (void);

#if (OS_EVENT_NAME_SIZE > 1) || (OS_FLAG_NAME_SIZE > 1) || (OS_MEM_NAME_SIZE > 1) || (OS_TASK_NAME_SIZE > 1)
INT8U         OS_StrCopy            (INT8U           *pdest, 
                                     INT8U           *psrc);

INT8U         OS_StrLen             (INT8U           *psrc);
#endif

void          OS_TaskIdle           (void            *p_arg);

#if OS_TASK_STAT_EN > 0
void          OS_TaskStat           (void            *p_arg);
#endif

⌨️ 快捷键说明

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