UC/OSⅡ 基本函數(shù)*************************************************************************************** 事件標(biāo)志管理 (EVENT FLAGS MANAGEMENT)** OSFlagAccept() 檢查事件標(biāo)志組函數(shù)(標(biāo)志組的指針、事件標(biāo)志位、等待事件標(biāo)志位的方式、錯誤碼指針)* OSFlagCreate() 建立一個事件標(biāo)志組(初值、錯誤碼)* OSFlagDel() 刪除一個事件標(biāo)志組(指針、條件值、錯誤值)* OSFlagPend() 等待事件標(biāo)志組的事件標(biāo)志位(事件組指針、需要檢查的標(biāo)志位、等待事件標(biāo)志位的方式、* 允許等待的時鐘節(jié)拍、出錯代碼的時鐘節(jié)拍)* OSFlagPost() 置位或清0事件標(biāo)志組中的標(biāo)志位(指針、標(biāo)志位、條件值、錯誤碼)* OSFlagQuery() 查詢事件標(biāo)志組的當(dāng)前事件標(biāo)志狀態(tài)(事件標(biāo)志組的指針、錯誤代碼的指針)***************************************************************************************************************************************************************************** 消息郵箱管理 (MESSAGE MAILBOX MANAGEMENT)** OSMboxAccept () 查看消息郵箱(消息郵箱指針)* OSMboxCreate () 建立并初始化一個消息郵箱(msg 參數(shù)不為空含內(nèi)容)* OSMboxDel () 刪除消息郵箱(消息郵箱指針、刪除條件、出錯代碼指針)* OSMboxPend () 等待一個消息郵箱函數(shù)(消息郵箱指針、允許等待的時鐘節(jié)拍、代碼錯誤指針)* OSMboxPost () 發(fā)送消息函數(shù)(消息郵箱指針、即將實際發(fā)送給任務(wù)的消息)* OSMboxPostOpt () 向郵箱發(fā)送一則消息(郵箱指針、消息、條件)* OSMboxQuery () 查詢一個郵箱的當(dāng)前狀態(tài)(信號量指針、狀態(tài)數(shù)據(jù)結(jié)構(gòu)指針)***************************************************************************************************************************************************************************** 內(nèi)存管理項 (MEMORY MANAGEMENT)* OSMemCreate () 建立并初始化一塊內(nèi)存區(qū)(起始地址、需要的內(nèi)存塊數(shù)目、內(nèi)存塊大小、返回錯誤的指針)* OSMemGet () 從內(nèi)存區(qū)分配一個內(nèi)存塊* OSMemPut () 釋放一個內(nèi)存塊,內(nèi)存塊必須釋放回原先申請的內(nèi)存區(qū)* OSMemQuery () 得到內(nèi)存區(qū)的信息***************************************************************************************************************************************************************************** 互斥型信號量項管理 (MUTUAL EXCLUSION SEMAPHORE MANAGEMENT)** OSMutexAccept () 無等待地獲取互斥型信號量[任務(wù)不掛起](信號量指針、錯誤代碼)* OSMutexCreate () 建立并初始化一個互斥型信號量(優(yōu)先級繼承優(yōu)先級(PIP)、出錯代碼指針)* OSMutexDel () 刪除互斥型信號量(信號指針、刪除條件、錯誤指針)* OSMutexPend () 等待一個互斥型信號量(指針、等待超時時限、出錯代碼指針)* OSMutexPost () 釋放一個互斥型信號量(互斥型信號量指針)* OSMutexQuery () 查詢一個互斥型信號量的當(dāng)前狀態(tài)(互斥型信號量指針、狀態(tài)數(shù)據(jù)結(jié)構(gòu)指針)***************************************************************************************************************************************************************************** 消息隊列管理 (MESSAGE QUEUE MANAGEMENT)** OSQAccept () 檢查消息隊列中是否已經(jīng)有需要的消息(消息隊列的指針)* OSQCreate () 建立一個消息隊列(消息內(nèi)存區(qū)的基地址(指針數(shù)組)、消息內(nèi)存區(qū)的大小)* OSQDel () 刪除一個消息隊列(消息隊列指針、刪除條件、錯誤指針)* OSQFlush () 清空消息隊列(指向得到消息隊列的指針)* OSQPend () 任務(wù)等待消息隊列中的消息(消息隊列指針、允許等待的時鐘節(jié)拍、代碼錯誤指針)* OSQPost () 向消息隊列發(fā)送一則消息FIFO(消息隊列指針、發(fā)送的消息)* OSQPostFront () 向消息隊列發(fā)送一則消息LIFO(消息隊列指針、發(fā)送的消息)* OSQPostOpt () 向消息隊列發(fā)送一則消息LIFO(消息隊列指針、發(fā)送的消息、發(fā)送條件)* OSQQuery () 查詢一個消息隊列的當(dāng)前狀態(tài)(信號量指針、狀態(tài)數(shù)據(jù)結(jié)構(gòu)指針)**************************************************************************************隊列控制塊是一個用于維護(hù)消息隊列信息的數(shù)據(jù)結(jié)構(gòu),它包含了以下的一些域。這里,仍然在各個變量前加入一個[.]來表示它們是數(shù)據(jù)結(jié)構(gòu)中的一個域。* 1).OSQPtr: 在空閑隊列控制塊中鏈接所有的隊列控制塊。一旦建立了消息隊列,該域就不再有用了。* 2).OSQStart: 是指向消息隊列的指針數(shù)組的起始地址的指針。用戶應(yīng)用程序在使用消息隊列之前必須先定義該數(shù)組* 3).OSQEnd: 是指向消息隊列結(jié)束單元的下一個地址的指針。該指針使得消息隊列構(gòu)成一個循環(huán)的緩沖區(qū)。* 4).OSQIn: 是指向消息隊列中插入下一條消息的位置的指針。當(dāng).OSQIn和.OSQEnd相等時,.OSQIn被調(diào)整指向消息隊列的起始單元。* 5).OSQOut: 是指向消息隊列中下一個取出消息的位置的指針。當(dāng).OSQOut和.OSQEnd相等時,.OSQOut被調(diào)整指向消息隊列的起始單元。* 6).OSQSize: 是消息隊列中總的單元數(shù)。該值是在建立消息隊列時由用戶應(yīng)用程序決定的。在uC/OS-II中,該值最大可以是65,535。* 7).OSQEntries: 是消息隊列中當(dāng)前的消息數(shù)量。當(dāng)消息隊列是空的時,該值為0。當(dāng)消息隊列滿了以后,該值和 .OSQSize值一樣。 在消息隊列剛剛建立時,該值為0。**************************************************************************************/************************************************************************************************** 任務(wù)管理 (TASK MANAGEMENT)** OSTaskChangePrio () 改變一個任務(wù)的優(yōu)先級(任務(wù)舊的優(yōu)先級、任務(wù)新的優(yōu)先級)* OSTaskCreate () 建立任務(wù)(任務(wù)代碼指針、傳遞參數(shù)指針、分配任務(wù)堆棧棧頂指針、任務(wù)優(yōu)先級)* OSTaskCreateExt () 建立擴(kuò)展任務(wù)(任務(wù)代碼指針/傳遞參數(shù)指針/分配任務(wù)堆棧棧頂指針/分配任務(wù)優(yōu)先級* //(未來的)優(yōu)先級標(biāo)識(與優(yōu)先級相同)/分配任務(wù)堆棧棧底指針/指定堆棧的容量(檢驗用)* //指向用戶附加的數(shù)據(jù)域的指針/建立任務(wù)設(shè)定選項)* OSTaskDel () 刪除任務(wù)(任務(wù)的優(yōu)先級)* OSTaskDelReq () 請求一個任務(wù)刪除其它任務(wù)或自身?(任務(wù)的優(yōu)先級)* OSTaskResume () 喚醒一個用OSTaskSuspend()函數(shù)掛起的任務(wù)(任務(wù)的優(yōu)先級)* OSTaskStkChk () 檢查任務(wù)堆棧狀態(tài)(任務(wù)優(yōu)先級、檢驗堆棧數(shù)據(jù)結(jié)構(gòu))* OSTaskSuspend () 無條件掛起一個任務(wù)(任務(wù)優(yōu)先級)* OSTaskQuery () 獲取任務(wù)信息(任務(wù)指針、保存數(shù)據(jù)結(jié)構(gòu)指針)**************************************************************************************/**************************************************************************************** 時鐘管理項 (TIME MANAGEMENT)** OSTimeDly () 任務(wù)延時函數(shù)(時鐘節(jié)拍數(shù))* OSTimeDlyHMSM () 將一個任務(wù)延時若干時間(設(shè)定時、分、秒、毫秒)* OSTimeDlyResume () 喚醒一個用OSTimeDly()或OSTimeDlyHMSM()函數(shù)的任務(wù)(優(yōu)先級)* OSTimeGet () 獲取當(dāng)前系統(tǒng)時鐘數(shù)值* OSTimeSet () 設(shè)置當(dāng)前系統(tǒng)時鐘數(shù)值**************************************************************************************/************************************************************************************** 混雜函數(shù)定義** OSInit() 初始化UCOS-II函數(shù)* OSIntEnter() 中斷函數(shù)正在執(zhí)行* OSIntExit() 中斷函數(shù)已經(jīng)完成(脫離中斷)* OSSchedLock() 給調(diào)度器上鎖* OSSchedUnlock() 給調(diào)度器解鎖* OSStart() 啟動多個任務(wù)* OSStatInit() 統(tǒng)計任務(wù)初始化* OSVersion() 獲得版本號**************************************************************************************/************************************************************************************** 內(nèi)部函數(shù)原型 INTERNAL FUNCTION PROTOTYPES* 你在應(yīng)用程序中不能使用它們 (Your application MUST NOT call these functions)** OS_Dummy() 建立一個虛擬函數(shù)* OS_EventTaskRdy() 使一個任務(wù)進(jìn)入就緒態(tài)(OS_EVENT *pevent, void *msg, INT8U msk)* OS_EventTaskWait() 使一個任務(wù)進(jìn)入等待某事件發(fā)生狀態(tài)(ECB指針)* OS_EventTO() 由于超時而將任務(wù)置為就緒態(tài)(ECB指針)* OS_EventWaitListInit() 事件控制塊列表初始化(事件控制塊指針)* OS_FlagInit() 初始化事件標(biāo)志結(jié)構(gòu)* OS_FlagUnlink() 把這個OS_FLAG_NODE從事件標(biāo)志組的等待任務(wù)鏈表中刪除(OS_FLAG_NODE *pnode)* OS_MemInit() 初始化內(nèi)存分區(qū)* OS_QInit() 初始化事件隊列結(jié)構(gòu)* OS_Sched() 任務(wù)調(diào)度函數(shù)* OS_TaskIdle() 空閑任務(wù)函數(shù)(指向一個數(shù)據(jù)結(jié)構(gòu))* OS_TaskStat() 統(tǒng)計任務(wù)(指向一個數(shù)據(jù)結(jié)構(gòu))* OS_TCBInit() 初始化任務(wù)控制塊TCB(優(yōu)先級指針、棧頂指針、棧底指針、任務(wù)標(biāo)志符、* 堆棧容量、擴(kuò)展指針、選擇項)
評論