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

📄 ucos_ii.h

📁 完整的ucos实例
💻 H
📖 第 1 页 / 共 4 页
字号:
#if OS_MUTEX_ACCEPT_EN > 0 
INT8U         OSMutexAccept(OS_EVENT *pevent, INT8U *err); 
#endif 
 
OS_EVENT     *OSMutexCreate(INT8U prio, INT8U *err); 
 
#if OS_MUTEX_DEL_EN > 0 
OS_EVENT     *OSMutexDel(OS_EVENT *pevent, INT8U opt, INT8U *err); 
#endif 
 
void          OSMutexPend(OS_EVENT *pevent, INT16U timeout, INT8U *err); 
INT8U         OSMutexPost(OS_EVENT *pevent); 
 
#if OS_MUTEX_QUERY_EN > 0 
INT8U         OSMutexQuery(OS_EVENT *pevent, OS_MUTEX_DATA *pdata); 
#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); 
#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 *pdata); 
#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 *pdata); 
#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 *pd), void *pdata, OS_STK *ptos, INT8U prio); 
#endif 
 
#if OS_TASK_CREATE_EXT_EN > 0 
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); 
#endif 
 
#if OS_TASK_DEL_EN > 0 
INT8U         OSTaskDel(INT8U prio); 
INT8U         OSTaskDelReq(INT8U prio); 
#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 *pdata); 
#endif 
 
#if OS_TASK_QUERY_EN > 0 
INT8U         OSTaskQuery(INT8U prio, OS_TCB *pdata); 
#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); 
 
/* 
********************************************************************************************************* 
*                                             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_Q_EN > 0) && (OS_MAX_QS > 0)) || (OS_MBOX_EN > 0) || (OS_SEM_EN > 0) || (OS_MUTEX_EN > 0) 
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 
 
#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); 
 
void          OS_TaskIdle(void *data); 
 
#if OS_TASK_STAT_EN > 0 
void          OS_TaskStat(void *data); 
#endif 
 
INT8U         OS_TCBInit(INT8U prio, OS_STK *ptos, OS_STK *pbos, INT16U id, INT32U stk_size, void *pext, INT16U opt); 
 
/*$PAGE*/ 
/* 
********************************************************************************************************* 
*                                          FUNCTION PROTOTYPES 
*                                      (Target Specific Functions) 
********************************************************************************************************* 
*/ 
 
#if OS_VERSION >= 204 
void          OSInitHookBegin(void); 
void          OSInitHookEnd(void); 
#endif 
 
void          OSIntCtxSw(void); 
 
void          OSStartHighRdy(void); 
 
void          OSTaskCreateHook(OS_TCB *ptcb); 
void          OSTaskDelHook(OS_TCB *ptcb); 
 
#if OS_VERSION >= 251 
void          OSTaskIdleHook(void); 
#endif 
 
void          OSTaskStatHook(void); 
OS_STK       *OSTaskStkInit(void (*task)(void *pd), void *pdata, OS_STK *ptos, INT16U opt); 
void          OSTaskSwHook(void); 
 
#if OS_VERSION >= 204 
void          OSTCBInitHook(OS_TCB *ptcb); 
#endif 
 
void          OSTimeTickHook(void); 
 
/* 
********************************************************************************************************* 
*                                          FUNCTION PROTOTYPES 
*                                  (Compiler Specific ISR prototypes) 
********************************************************************************************************* 
*/ 
 
#ifndef OS_ISR_PROTO_EXT 
void          OSCtxSw(void); 
void          OSTickISR(void); 
#endif 
 
/*$PAGE*/ 
/* 
********************************************************************************************************* 
*                                   LOOK FOR MISSING #define CONSTANTS 
* 
* This section is used to generate ERROR messages at compile time if certain #define constants are  
* MISSING in OS_CFG.H.  This allows you to quickly determine the source of the error. 
* 
* You SHOULD NOT change this section UNLESS you would like to add more comments as to the source of the 
* compile time error. 
********************************************************************************************************* 
*/ 
 
/* 
********************************************************************************************************* 
*                                            EVENT FLAGS 
********************************************************************************************************* 
*/ 
 
#ifndef OS_FLAG_EN 
#error  "OS_CFG.H, Missing OS_FLAG_EN: Enable (1) or Disable (0) code generation for Event Flags" 

⌨️ 快捷键说明

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