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

📄 ucos_ii.h

📁 这是一个ucosII小系统的源代码
💻 H
📖 第 1 页 / 共 5 页
字号:
*/

#if OS_MBOX_EN > 0

#if OS_MBOX_ACCEPT_EN > 0
void         *OSMboxAccept          (OS_EVENT        *pevent);
#endif

OS_EVENT     *OSMboxCreate          (void            *pmsg);

#if OS_MBOX_DEL_EN > 0
OS_EVENT     *OSMboxDel             (OS_EVENT        *pevent,
                                     INT8U            opt,
                                     INT8U           *perr);
#endif

void         *OSMboxPend            (OS_EVENT        *pevent,
                                     INT16U           timeout,
                                     INT8U           *perr);

#if OS_MBOX_PEND_ABORT_EN > 0
INT8U         OSMboxPendAbort       (OS_EVENT        *pevent,
                                     INT8U            opt,
                                     INT8U           *perr);
#endif

#if OS_MBOX_POST_EN > 0
INT8U         OSMboxPost            (OS_EVENT        *pevent,
                                     void            *pmsg);
#endif

#if OS_MBOX_POST_OPT_EN > 0
INT8U         OSMboxPostOpt         (OS_EVENT        *pevent,
                                     void            *pmsg,
                                     INT8U            opt);
#endif

#if OS_MBOX_QUERY_EN > 0
INT8U         OSMboxQuery           (OS_EVENT        *pevent,
                                     OS_MBOX_DATA    *p_mbox_data);
#endif
#endif

/*
*********************************************************************************************************
*                                           MEMORY MANAGEMENT
*********************************************************************************************************
*/

#if (OS_MEM_EN > 0) && (OS_MAX_MEM_PART > 0)

OS_MEM       *OSMemCreate           (void            *addr,
                                     INT32U           nblks,
                                     INT32U           blksize,
                                     INT8U           *perr);

void         *OSMemGet              (OS_MEM          *pmem,
                                     INT8U           *perr);
#if OS_MEM_NAME_SIZE > 1
INT8U         OSMemNameGet          (OS_MEM          *pmem,
                                     INT8U           *pname,
                                     INT8U           *perr);

void          OSMemNameSet          (OS_MEM          *pmem,
                                     INT8U           *pname,
                                     INT8U           *perr);
#endif
INT8U         OSMemPut              (OS_MEM          *pmem,
                                     void            *pblk);

#if OS_MEM_QUERY_EN > 0
INT8U         OSMemQuery            (OS_MEM          *pmem,
                                     OS_MEM_DATA     *p_mem_data);
#endif

#endif

/*
*********************************************************************************************************
*                                MUTUAL EXCLUSION SEMAPHORE MANAGEMENT
*********************************************************************************************************
*/

#if OS_MUTEX_EN > 0

#if OS_MUTEX_ACCEPT_EN > 0
BOOLEAN       OSMutexAccept         (OS_EVENT        *pevent,
                                     INT8U           *perr);
#endif

OS_EVENT     *OSMutexCreate         (INT8U            prio,
                                     INT8U           *perr);

#if OS_MUTEX_DEL_EN > 0
OS_EVENT     *OSMutexDel            (OS_EVENT        *pevent,
                                     INT8U            opt,
                                     INT8U           *perr);
#endif

void          OSMutexPend           (OS_EVENT        *pevent,
                                     INT16U           timeout,
                                     INT8U           *perr);

INT8U         OSMutexPost           (OS_EVENT        *pevent);

#if OS_MUTEX_QUERY_EN > 0
INT8U         OSMutexQuery          (OS_EVENT        *pevent,
                                     OS_MUTEX_DATA   *p_mutex_data);
#endif

#endif

/*$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           *perr);
#endif

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

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

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

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

#if OS_Q_PEND_ABORT_EN > 0
INT8U         OSQPendAbort          (OS_EVENT        *pevent,
                                     INT8U            opt,
                                     INT8U           *perr);
#endif

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

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

#if OS_Q_POST_OPT_EN > 0
INT8U         OSQPostOpt            (OS_EVENT        *pevent,
                                     void            *pmsg,
                                     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           *perr);
#endif

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

#if OS_SEM_PEND_ABORT_EN > 0
INT8U         OSSemPendAbort        (OS_EVENT        *pevent,
                                     INT8U            opt,
                                     INT8U           *perr);
#endif

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           *perr);
#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           *perr);

void          OSTaskNameSet         (INT8U            prio,
                                     INT8U           *pname,
                                     INT8U           *perr);
#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,

⌨️ 快捷键说明

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