?? ucos_ii.h
字號:
INT8U OSTCBX; //任務(wù)控制快所在X位置
INT8U OSTCBY; //任務(wù)控制塊所在的Y位置
INT8U OSTCBBitX; //任務(wù)控制塊所在X位置的X位
INT8U OSTCBBitY; //任務(wù)控制塊所在的Y位置的Y位
#if OS_TASK_DEL_EN //若允許任務(wù)刪除功能
BOOLEAN OSTCBDelReq; //任務(wù)請求任務(wù)標(biāo)志
#endif
} OS_TCB;
/*$PAGE*/
/*
*********************************************************************************************************
* GLOBAL VARIABLES
*********************************************************************************************************
*/
OS_EXT INT32U OSCtxSwCtr; //任務(wù)切換計(jì)數(shù)變量
#if (OS_MAX_EVENTS >= 2) //若事件大于2個(gè)事件
OS_EXT OS_EVENT *OSEventFreeList; //釋放的事件列表
OS_EXT OS_EVENT OSEventTbl[OS_MAX_EVENTS];//事件表
#endif
OS_EXT INT32U OSIdleCtr; //任務(wù)空閑變量計(jì)數(shù)
#if OS_TASK_STAT_EN //若允許創(chuàng)建靜態(tài)任務(wù)
OS_EXT INT8S OSCPUUsage; //定義CPU使用百分變量
OS_EXT INT32U OSIdleCtrMax; //1秒空閑任務(wù)的最大計(jì)數(shù)
OS_EXT INT32U OSIdleCtrRun; //空閑允許變量
OS_EXT BOOLEAN OSStatRdy; //靜態(tài)任務(wù)準(zhǔn)備變量
#endif
OS_EXT INT8U OSIntNesting; //中斷遞增變量
OS_EXT INT8U OSLockNesting; //任務(wù)鎖住變量
OS_EXT idata INT8U OSPrioCur; //當(dāng)前任務(wù)的優(yōu)先級 定義在位區(qū)中
OS_EXT idata INT8U OSPrioHighRdy; //最到優(yōu)先級變量
OS_EXT INT8U OSRdyGrp; //任務(wù)準(zhǔn)備組號
OS_EXT INT8U OSRdyTbl[OS_RDY_TBL_SIZE]; //任務(wù)準(zhǔn)備就緒表
OS_EXT idata BOOLEAN OSRunning; //任務(wù)正在運(yùn)行的標(biāo)志變量
#if OS_TASK_CREATE_EN || OS_TASK_CREATE_EXT_EN || OS_TASK_DEL_EN
// 若任務(wù)允許創(chuàng)建 或者 允許創(chuàng)建擴(kuò)展的任務(wù) 或者允許任務(wù)刪除
OS_EXT INT8U OSTaskCtr; //創(chuàng)建任務(wù)個(gè)數(shù)變量
#endif
OS_EXT idata OS_TCB *OSTCBCur; //當(dāng)前任務(wù)指針
OS_EXT OS_TCB *OSTCBFreeList; //釋放任務(wù)列表指針
OS_EXT idata OS_TCB *OSTCBHighRdy; //最高就緒任務(wù)的準(zhǔn)備變量指針
OS_EXT OS_TCB *OSTCBList; //任務(wù)列表指針
OS_EXT OS_TCB *OSTCBPrioTbl[OS_LOWEST_PRIO + 1];//任務(wù)優(yōu)先級表指針數(shù)組
OS_EXT INT32U OSTime; //操作系統(tǒng)時(shí)間變量
extern INT8U const OSMapTbl[]; //消息表隊(duì)列
extern INT8U const OSUnMapTbl[]; //未使用的消息表
/*
*********************************************************************************************************
* FUNCTION PROTOTYPES
* (Target Independant Functions)
*********************************************************************************************************
*/
/*
*********************************************************************************************************
* MESSAGE MAILBOX MANAGEMENT
*********************************************************************************************************
*/
#if OS_MBOX_EN //若允許使用郵箱功能
void *OSMboxAccept(OS_EVENT *pevent) reentrant; //郵箱請求
OS_EVENT *OSMboxCreate(void *msg) reentrant; //郵箱創(chuàng)建
void *OSMboxPend(OS_EVENT *pevent, INT16U timeout, INT8U *err) reentrant; //郵箱未決定
INT8U OSMboxPost(OS_EVENT *pevent, void *msg) reentrant; //郵箱發(fā)送
INT8U OSMboxQuery(OS_EVENT *pevent, OS_MBOX_DATA *ppdata) reentrant;//郵箱獲取
#endif
/*
*********************************************************************************************************
* MEMORY MANAGEMENT
*********************************************************************************************************
*/
#if OS_MEM_EN && (OS_MAX_MEM_PART >= 2)
//若允許使用內(nèi)存功能 并且內(nèi)存塊大于2個(gè)以上
OS_MEM *OSMemCreate(void *addr, INT32U nblks, INT32U blksize, INT8U *err) reentrant;//內(nèi)存創(chuàng)建
void *OSMemGet(OS_MEM *pmem, INT8U *err) reentrant;//內(nèi)存獲取
INT8U OSMemPut(OS_MEM *pmem, void *pblk) reentrant;//內(nèi)存寫入
INT8U OSMemQuery(OS_MEM *pmem, OS_MEM_DATA *ppdata) reentrant;//內(nèi)存訪問
#endif
/*
*********************************************************************************************************
* MESSAGE QUEUE MANAGEMENT
*********************************************************************************************************
*/
#if OS_Q_EN && (OS_MAX_QS >= 2) //若允許使用隊(duì)列 并且隊(duì)列大于2個(gè)
void *OSQAccept(OS_EVENT *pevent) reentrant;//隊(duì)列請求
OS_EVENT *OSQCreate(void **start, INT16U size) reentrant;//隊(duì)列創(chuàng)建
INT8U OSQFlush(OS_EVENT *pevent) reentrant;//隊(duì)列沖洗
void *OSQPend(OS_EVENT *pevent, INT16U timeout, INT8U *err) reentrant;//隊(duì)列未決定
INT8U OSQPost(OS_EVENT *pevent, void *msg) reentrant;//隊(duì)列郵遞
INT8U OSQPostFront(OS_EVENT *pevent, void *msg) reentrant;//
INT8U OSQQuery(OS_EVENT *pevent, OS_Q_DATA *ppdata) reentrant;
#endif
/*
*********************************************************************************************************
* SEMAPHORE MANAGEMENT
*********************************************************************************************************
*/
#if OS_SEM_EN //若使用信號功能
INT16U OSSemAccept(OS_EVENT *pevent) reentrant;//信號請求功能
OS_EVENT *OSSemCreate(INT16U value) reentrant;//信號創(chuàng)建
void OSSemPend(OS_EVENT *pevent, INT16U timeout, INT8U *err) reentrant;//信號未定
INT8U OSSemPost(OS_EVENT *pevent) reentrant;//信號
INT8U OSSemQuery(OS_EVENT *pevent, OS_SEM_DATA *ppdata) reentrant;
#endif
/*
*********************************************************************************************************
* TASK MANAGEMENT
*********************************************************************************************************
*/
#if OS_TASK_CHANGE_PRIO_EN //若允許任務(wù)改變優(yōu)先級
INT8U OSTaskChangePrio(INT8U oldprio, INT8U newprio) reentrant;//改變?nèi)蝿?wù)優(yōu)先級函數(shù)
#endif
INT8U OSTaskCreate(void (*task)(void *pd), void *ppdata, OS_STK *ptos, INT8U prio) reentrant;
//任務(wù)創(chuàng)建
#if OS_TASK_CREATE_EXT_EN //任務(wù)擴(kuò)展創(chuàng)建
INT8U OSTaskCreateExt(void (*task)(void *pd),
void *ppdata,
OS_STK *ptos,
INT8U prio,
INT16U id,
OS_STK *pbos,
INT32U stk_size,
void *pext,
INT16U opt) reentrant;
#endif
#if OS_TASK_DEL_EN //若允許刪除任務(wù)
INT8U OSTaskDel(INT8U prio) reentrant; //任務(wù)刪除
INT8U OSTaskDelReq(INT8U prio) reentrant;//任務(wù)請求刪除
#endif
#if OS_TASK_SUSPEND_EN //任務(wù)掛起
INT8U OSTaskResume(INT8U prio) reentrant;//任務(wù)恢復(fù)
INT8U OSTaskSuspend(INT8U prio) reentrant;//任務(wù)掛起
#endif
#if OS_TASK_CREATE_EXT_EN //若允許任務(wù)創(chuàng)建擴(kuò)展功能
INT8U OSTaskStkChk(INT8U prio, OS_STK_DATA *ppdata) reentrant;//任務(wù)堆棧校驗(yàn)
#endif
INT8U OSTaskQuery(INT8U prio, OS_TCB *ppdata) reentrant;//任務(wù)隊(duì)列
/*
*********************************************************************************************************
* TIME MANAGEMENT
*********************************************************************************************************
*/
void OSTimeDly(INT16U ticks) reentrant;//事件延時(shí)
INT8U OSTimeDlyHMSM(INT8U hours, INT8U minutes, INT8U seconds, INT16U milli) reentrant;//
//延時(shí)時(shí) 分 秒 毫秒
INT8U OSTimeDlyResume(INT8U prio) reentrant;//延時(shí)恢復(fù)
INT32U OSTimeGet(void) reentrant;//獲取時(shí)間
void OSTimeSet(INT32U ticks) reentrant;//設(shè)置時(shí)間
void OSTimeTick(void) reentrant;//時(shí)間間隔
/*
*********************************************************************************************************
* MISCELLANEOUS
*********************************************************************************************************
*/
void OSInit(void) reentrant;//操作系統(tǒng)初始化
void OSIntEnter(void) reentrant;//關(guān)中斷
void OSIntExit(void) reentrant;//開中斷
void OSSchedLock(void) reentrant;//調(diào)度上鎖
void OSSchedUnlock(void) reentrant;//調(diào)度未上鎖
void OSStart(void) reentrant;//操作系統(tǒng)開始激活
void OSStatInit(void) reentrant;//操作系統(tǒng)開始初始化
INT16U OSVersion(void) reentrant;//操作系統(tǒng)版本號
/*$PAGE*/
/*
*********************************************************************************************************
* INTERNAL FUNCTION PROTOTYPES
* (Your application MUST NOT call these functions)
*********************************************************************************************************
*/
#if OS_MBOX_EN || OS_Q_EN || OS_SEM_EN//若允許使用郵箱 或者 使用隊(duì)列 或者使用信號功能
void OSEventTaskRdy(OS_EVENT *pevent, void *msg, INT8U msk) reentrant;//操作系統(tǒng)事件任務(wù)準(zhǔn)備
void OSEventTaskWait(OS_EVENT *pevent) reentrant;//事件任務(wù)等待
void OSEventTO(OS_EVENT *pevent) reentrant;//事件發(fā)送到
void OSEventWaitListInit(OS_EVENT *pevent) reentrant;//
#endif
#if OS_MEM_EN && (OS_MAX_MEM_PART >= 2)//若允許使用信號 并且 最大內(nèi)存塊大于等于2
void OSMemInit(void) reentrant;//內(nèi)存初始化
#endif
#if OS_Q_EN //若允許使用隊(duì)列
void OSQInit(void) reentrant;//初始化隊(duì)列
#endif
void OSSched(void) reentrant;//任務(wù)調(diào)度
void OSTaskIdle(void *ddata) reentrant;//任務(wù)空閑
#if OS_TASK_STAT_EN //若任務(wù)狀態(tài)允許
void OSTaskStat(void *ddata) reentrant;//任務(wù)狀態(tài)
#endif
INT8U OSTCBInit(INT8U prio, OS_STK *ptos, OS_STK *pbos, INT16U id, INT16U stk_size, void *pext, INT16U opt) reentrant;
//任務(wù)控制塊初始化
/*$PAGE*/
/*
*********************************************************************************************************
* FUNCTION PROTOTYPES
* (Target Specific Functions)
*********************************************************************************************************
*/
void OSCtxSw(void);//任務(wù)切換 實(shí)現(xiàn)在OS_CPU_A.ASM中
void OSIntCtxSw(void);//任務(wù)切換初始化
void OSStartHighRdy(void);//準(zhǔn)備到最高優(yōu)先級的任務(wù)
void OSTaskCreateHook(OS_TCB *ptcb) reentrant;//任務(wù)創(chuàng)建子溝函數(shù)
void OSTaskDelHook(OS_TCB *ptcb) reentrant;//任務(wù)刪除子溝函數(shù)
void OSTaskStatHook(void) reentrant;//任務(wù)開始子溝函數(shù)
void *OSTaskStkInit(void (*task)(void *pd), void *ppdata, void *ptos, INT16U opt) reentrant;
//任務(wù)堆棧初始化函數(shù)
void OSTaskSwHook(void) reentrant;//任務(wù)切換子溝函數(shù)
void OSTickISR(void);//時(shí)鐘節(jié)拍函數(shù)
void OSTimeTickHook(void) reentrant;//時(shí)鐘節(jié)拍子溝函數(shù)
void InitTimer0(void) reentrant; //時(shí)鐘初始化函數(shù)
#endif
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -