新聞中心

UC/OSⅡ基本函數(shù)

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


關(guān)鍵詞: UCOSⅡ基本函

評(píng)論


技術(shù)專區(qū)

關(guān)閉