小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

ucos ii 46個系統(tǒng)API函數解析 .

 戴維圖書館 2013-12-25
分類: uCOSII專區(qū) 2012-08-04 17:23 590人閱讀 評論(0) 收藏 舉報
2012-08-01 11:41 106人閱讀 評論(0) 收藏 編輯 刪除

Void OSInit(void);
所屬文件 OS_CORE.C    調用者啟動代碼   開關量無
OSinit
()初始化μC/OS-,對這個函數的調用必須在調用OSStart()函數之前,而OSStart()函數真正開始運行多任務。

Void OSIntEnter(void);
所屬文件 OS_CORE.C    調用者中斷     開關量
OSIntEnter
()通知μC/OS-一個中斷處理函數正在執(zhí)行,這有助于μC/OS-掌握中斷嵌套的情況。OSIntEnter()函數通常和OSIntExit()函數聯合使用。
注意/警告:在任務級不能調用該函數。如果系統(tǒng)使用的處理器能夠執(zhí)行自動的獨立執(zhí)行讀取-修改-寫入的操作,那么就可以直接遞增中斷嵌套層數(OSIntNesting),這樣可以避免調用函數所帶來的額外的開銷。

Void OSIntExit(void);
所屬文件 OS_CORE.C   調用者中斷   開關量無
OSIntExit
()通知μC/OS-一個中斷服務已執(zhí)行完畢,這有助于μC/OS-掌握中斷嵌套的情況。通常OSIntExit()和OSIntEnter()聯合使用。當最后一層嵌套的中斷執(zhí)行完畢后,如果有更高優(yōu)先級的任務準備就緒,μC/OS-會調用任務調度函數,在這種情況下,中斷返回到更高優(yōu)先級的任務而不是被中斷了的任務。
注意/警告:在任務級不能調用該函數。并且即使沒有調用OSIntEnter()而是使用直接遞增OSIntNesting的方法,也必須調用OSIntExit()函數。

Void OSSchedLock(void);
所屬文件 OS_CORE.C   調用者任務或中斷  開關量 N/A
OSSchedLock
()函數停止任務調度,只有使用配對的函數OSSchedUnlock()才能重新開始內核的任務調度。調用OSSchedLock()函數的任務獨占CPU,不管有沒有其他高優(yōu)先級的就緒任務。在這種情況下,中斷仍然可以被接受和執(zhí)行(中斷必須允許)。OSSchedLock()函數和OSSchedUnlock()函數必須配對使用。μC/OS-可以支持多達254層的OSSchedLock()函數嵌套,必須調用同樣次數的OSSchedUnlock()函數才能恢復任務調度。
注意/警告:任務調用了OSSchedLock()函數后,決不能再調用可能導致當前任務掛起的系統(tǒng)函數:OSTimeDly(),OSTimeDlyHMSM(),OSSemPend(),OSMboxPend(),OSQPend()。因為任務調度已經被禁止,其他任務不能運行,這會導致系統(tǒng)死鎖。

Void OSSchedUnlock(void);
所屬文件 OS_CORE.C   調用者任務或中斷  開關量 N/A
在調用了OSSchedLock()函數后,OSSchedUnlock()函數恢復任務調度。
注意/警告:任務調用了OSSchedLock()函數后,決不能再調用可能導致當前任務掛起的系統(tǒng)函數:OSTimeDly(),OSTimeDlyHMSM(),OSSemPend(),OSMboxPend(),OSQPend()。因為任務調度已經被禁止,其他任務不能運行,這會導致系統(tǒng)死鎖。

void OSStart(void);
所屬文件 OS_CORE.C   調用者初始代碼 開關量
OSStart( )
啟動μC/OS-II的多任務環(huán)境。
注意/警告:在調用OSStart( )之前必須先調用OSInit ( )。在用戶程序中OSStart( )只能被調用一次。第二次調用OSStart( )將不進行任何操作。

void OSStatInit (void);
所屬文件 OS_CORE.C   調用者初始代碼 開關量 OS_TASK_STAT_EN &&OS_TASK_CREATE_EXT_EN
OSStatInit
()獲取當系統(tǒng)中沒有其他任務運行時,32位計數器所能達到的最大值。OSStatInit()的調用時機是當多任務環(huán)境已經啟動,且系統(tǒng)中只有一個任務在運行。也就是說,該函數只能在第一個被建立并運行的任務中調用。

INT8U OSTaskChangePrio (INT8U oldprio, INT8U newprio);
所屬文件 OS_TASK.C   調用者任務 開關量 OS_TASK_CHANGE_PRIO_EN
OSTaskChangePrio
()改變一個任務的優(yōu)先級。
參數
oldprio
是任務原先的優(yōu)先級。
newprio
是任務的新優(yōu)先級。
返回值
OSTaskChangePrio
()的返回值為下述之一:
OS_NO_ERR
:任務優(yōu)先級成功改變。
OS_PRO_INVALID
:參數中的任務原先優(yōu)先級或新優(yōu)先級大于或等于OS_LOWEST_PRIO。
OS_PRIO_EXIST
:參數中的新優(yōu)先級已經存在。
OS_PRIO_ERR
:參數中的任務原先優(yōu)先級不存在。
注意/警告:參數中的新優(yōu)先級必須是沒有使用過的,否則會返回錯誤碼。在OSTaskChangePrio()中還會先判斷要改變優(yōu)先級的任務是否存在
 
INT8U OSTaskCreate(void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio);
所屬文件 OS_TASK.C   調用者任務或初始化代碼 開關量
OSTaskCreate
()建立一個新任務。任務的建立可以在多任務環(huán)境啟動之前,也可以在正在運行的任務中建立。中斷處理程序中不能建立任務。一個任務必須為無限循環(huán)結構,且不能有返回點。
OSTaskCreate
()是為與先前的μC/OS版本保持兼容,新增的特性在OSTaskCreateExt()函數中。
無論用戶程序中是否產生中斷,在初始化任務堆棧時,堆棧的結構必須與CPU中斷后寄存器入棧的順序結構相同。詳細說明請參考所用處理器的手冊。
參數
task
是指向任務代碼的指針。
Pdata
指向一個數據結構,該結構用來在建立任務時向任務傳遞參數。
ptos
為指向任務堆棧棧頂的指針。任務堆棧用來保存局部變量,函數參數,返回地址以及任務被中斷時的CPU寄存器內容。任務堆棧的大小決定于任務的需要及預計的中斷嵌套層數。計算堆棧的大小,需要知道任務的局部變量所占的空間,可能產生嵌套調用的函數,及中斷嵌套所需空間。如果初始化常量OS_STK_GROWTH設為1,堆棧被設為從內存高地址向低地址增長,此時ptos應該指向任務堆??臻g的最高地址。反之,如果OS_STK_GROWTH設為0,堆棧將從內存的低地址向高地址增長。
prio
為任務的優(yōu)先級。每個任務必須有一個唯一的優(yōu)先級作為標識。數字越小,優(yōu)先級越高。
返回值
OSTaskCreate
()的返回值為下述之一:
OS_NO_ERR
:函數調用成功。
OS_PRIO_EXIST
:具有該優(yōu)先級的任務已經存在。
OS_PRIO_INVALID
:參數指定的優(yōu)先級大于OS_LOWEST_PRIO。
OS_NO_MORE_TCB
:系統(tǒng)中沒有OS_TCB可以分配給任務了。
注意/警告:任務堆棧必須聲明為OS_STK類型。
在任務中必須調用μC/OS提供的下述過程之一:延時等待、任務掛起、等待事件發(fā)生(等待信號量,消息郵箱、消息隊列),以使其他任務得到CPU。
用戶程序中不能使用優(yōu)先級0,1,2,3,以及OS_LOWEST_PRIO-3, OS_LOWEST_PRIO-2, OS_LOWEST_PRIO-1, OS_LOWEST_PRIO。這些優(yōu)先級μC/OS系統(tǒng)保留,其余的56個優(yōu)先級提供給應用程序。

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);
所屬文件 OS_TASK.C   調用者任務或初始化代碼 開關量
OSTaskCreateExt
()建立一個新任務。與OSTaskCreate()不同的是,OSTaskCreateExt()允許用戶設置更多的細節(jié)內容。任務的建立可以在多任務環(huán)境啟動之前,也可以在正在運行的任務中建立,但中斷處理程序中不能建立新任務。一個任務必須為無限循環(huán)結構(如下所示),且不能有返回點。
參數
task
是指向任務代碼的指針。
Pdata
指針指向一個數據結構,該結構用來在建立任務時向任務傳遞參數。下例中說明μC/OS中的任務代碼結構以及如何傳遞參數pdata:(如果在程序中不使用參數pdata,為了避免在編譯中出現參數未使用的警告信息,可以寫一句pdata= pdata;)
ptos
為指向任務堆棧棧頂的指針。任務堆棧用來保存局部變量,函數參數,返回地址以及中斷時的CPU寄存器內容。任務堆棧的大小決定于任務的需要及預計的中斷嵌套層數。計算堆棧的大小,需要知道任務的局部變量所占的空間,可能產生嵌套調用的函數,及中斷嵌套所需空間。如果初始化常量OS_STK_GROWTH設為1,堆棧被設為向低端增長(從內存高地址向低地址增長)。此時ptos應該指向任務堆??臻g的最高地址。反之,如果OS_STK_GROWTH設為0,堆棧將從低地址向高地址增長。
prio
為任務的優(yōu)先級。每個任務必須有一個唯一的優(yōu)先級作為標識。數字越小,優(yōu)先級越高。id是任務的標識,目前這個參數沒有實際的用途,但保留在OSTaskCreateExt()中供今后擴展,應用程序中可設置id與優(yōu)先級相同。
pbos
為指向堆棧底端的指針。如果初始化常量OS_STK_GROWTH設為1,堆棧被設為從內存高地址向低地址增長。此時pbos應該指向任務堆??臻g的最低地址。反之,如果OS_STK_GROWTH設為0,堆棧將從低地址向高地址增長。pbos應該指向堆??臻g的最高地址。參數pbos用于堆棧檢測函數OSTaskStkChk()。
stk_size
指定任務堆棧的大小。其單位由OS_STK定義:當OS_STK的類型定義為INT8U、INT16U、INT32U的時候, stk_size的單位為分別為字節(jié)(8位)、字(16位)和雙字(32位)。pext是一個用戶定義數據結構的指針,可作為TCB的擴展。例如,當任務切換時,用戶定義的數據結構中可存放浮點寄存器的數值,任務運行時間,任務切入次數等等信息。opt存放與任務相關的操作信息。opt的低8位由μC/OS保留,用戶不能使用。用戶可以使用opt的高8位。每一種操作由opt中的一位或幾位指定,當相應的位被置位時,表示選擇某種操作。

當前的μC/OS版本支持下列操作:
OS_TASK_OPT_STK_CHK
:決定是否進行任務堆棧檢查。
OS_TASK_OPT_STK_CLR
:決定是否清空堆棧。
OS_TASK_OPT_SAVE_FP
:決定是否保存浮點寄存器的數值。此項操作僅當處理器有浮點硬件時有效。保存操作由硬件相關的代碼完成。
其他操作請參考文件uCOS_II.H。
返回值
OSTaskCreateExt
()的返回值為下述之一:
OS_NO_ERR
:函數調用成功。
OS_PRIO_EXIST
:具有該優(yōu)先級的任務已經存在。
OS_PRIO_INVALID
:參數指定的優(yōu)先級大于OS_LOWEST_PRIO。
OS_NO_MORE_TCB
:系統(tǒng)中沒有OS_TCB可以分配給任務了。
注意/警告:任務堆棧必須聲明為OS_STK類型。
在任務中必須進行μC/OS提供的下述過程之一:延時等待、任務掛起、等待事件發(fā)生(等待信號量,消息郵箱、消息隊列),以使其他任務得到CPU。
用戶程序中不能使用優(yōu)先級01,2,3,以及OS_LOWEST_PRIO-3, OS_LOWEST_PRIO-2, OS_LOWEST_PRIO-1, OS_LOWEST_PRIO。這些優(yōu)先級μC/OS系統(tǒng)保留,其余56個優(yōu)先級提供給應用程序。

INT8U OSTaskDel (INT8U prio);
所屬文件 OS_TASK.C 調用者任務 開關量 OS_TASK_DEL_EN
OSTaskDel
()函數刪除一個指定優(yōu)先級的任務。任務可以傳遞自己的優(yōu)先級給OSTaskDel(),從而刪除自身。如果任務不知道自己的優(yōu)先級,還可以傳遞參數OS_PRIO_SELF。被刪除的任務將回到休眠狀態(tài)。任務被刪除后可以用函數OSTaskCreate()或OSTaskCreateExt()重新建立。
參數
prio
為指定要刪除任務的優(yōu)先級,也可以用參數OS_PRIO_SELF代替,此時,下一個優(yōu)先級最高的就緒任務將開始運行。
返回值
OSTaskDel
()的返回值為下述之一: OS_NO_ERR:函數調用成功。
OS_TASK_DEL_IDLE
:錯誤操作,試圖刪除空閑任務(Idle task)。
OS_TASK_DEL_ ERR
:錯誤操作,指定要刪除的任務不存在。
OS_PRIO_INVALID
:參數指定的優(yōu)先級大于OS_LOWEST_PRIO。
OS_TASK_DEL_ISR
:錯誤操作,試圖在中斷處理程序中刪除任務。
注意/警告
OSTaskDel
()將判斷用戶是否試圖刪除μC/OS中的空閑任務(Idle task)。
在刪除占用系統(tǒng)資源的任務時要小心,此時,為安全起見可以用另一個函數OSTaskDelReq()。

INT8U OSDelReq (INT8U prio);
所屬文件 OS_TASK.C 調用者任務 開關量 OS_TASK_DEL_EN
OSTaskDelReq
()函數請求一個任務刪除自身。通常OSTaskDelReq()用于刪除一個占有系統(tǒng)資源的任務(例如任務建立了信號量)。對于此類任務,在刪除任務之前應當先釋放任務占用的系統(tǒng)資源。具體的做法是:在需要被刪除的任務中調用OSTaskDelReq()檢測是否有其他任務的刪除請求,如果有,則釋放自身占用的資源,然后調用OSTaskDel()刪除自身。例如,假設任務5要刪除任務10,而任務10占有系統(tǒng)資源,此時任務5不能直接調用OSTaskDel10)刪除任務10,而應該調用OSTaskDelReq10)向任務10發(fā)送刪除請求。在任務10中調用OSTaskDelReqOS_PRIO_SELF),并檢測返回值。如果返回OS_TASK_DEL_REQ,則表明有來自其他任務的刪除請求,此時任務10應該先釋放資源,然后調用OSTaskDelOS_PRIO_SELF)刪除自己。任務5可以循環(huán)調用OSTaskDelReq10)并檢測返回值,如果返回OS_TASK_NOT_EXIST,表明任務10已經成功刪除。
參數
prio
為要求刪除任務的優(yōu)先級。如果參數為OS_PRIO_SELF,則表示調用函數的任務正在查詢是否有來自其他任務的刪除請求。
返回值
OSTaskDelReq
()的返回值為下述之一:
OS_NO_ERR
:刪除請求已經被任務記錄。
OS_TASK_NOT_EXIST
:指定的任務不存。發(fā)送刪除請求的任務可以等待此返回值,看刪除是否成功。
OS_TASK_DEL_IDLE
:錯誤操作,試圖刪除空閑任務(Idle task)。
OS_PRIO_INVALID
:參數指定的優(yōu)先級大于OS_LOWEST_PRIO或沒有設定OS_PRIO_SELF的值。
OS_TASK_DEL_REQ
:當前任務收到來自其他任務的刪除請求。
注意/警告
OSTaskDelReq
()將判斷用戶是否試圖刪除μC/OS中的空閑任務(Idle task)。

INT8U OSTaskQuery ( INT8U prio, OS_TCB *pdata);
所屬文件 OS_TASK.C 調用者任務或中斷 開關量無
OSTaskQuery
()用于獲取任務信息,函數返回任務TCB的一個完整的拷貝。應用程序必須建立一個OS_TCB類型的數據結構容納返回的數據。需要提醒用戶的是,在對任務OS_TCB對象中的數據操作時要小心,尤其是數據項OSTCBNextOSTCBPrev。它們分別指向TCB鏈表中的后一項和前一項。
參數
prio
為指定要獲取TCB內容的任務優(yōu)先級,也可以指定參數OS_PRIO_SELF,獲取調用任務的信息。
pdata
指向一個OS_TCB類型的數據結構,容納返回的任務TCB的一個拷貝。
返回值
OSTaskQuery
()的返回值為下述之一:
OS_NO_ERR
:函數調用成功。
OS_PRIO_ERR
:參數指定的任務非法。
OS_PRIO_INVALID
:參數指定的優(yōu)先級大于OS_LOWEST_PRIO。
注意/警告
任務控制塊(TCB)中所包含的數據成員取決于下述開關量在初始化時的設定(參見OS_CFG.H
OS_TASK_CREATE_EN
OS_Q_EN
OS_MBOX_EN
OS_SEM_EN
OS_TASK_DEL_EN

INT8U OSTaskResume ( INT8U prio);
所屬文件 OS_TASK.C 調用者任務 開關量 OS_TASK_SUSPEND_EN
OSTaskResume
()喚醒一個用OSTaskSuspend()函數掛起的任務。OSTaskResume()也是唯一能解掛掛起任務的函數。
參數
prio
指定要喚醒任務的優(yōu)先級。
返回值
OSTaskResume
()的返回值為下述之一:
OS_NO_ERR
:函數調用成功。
OS_TASK_RESUME_PRIO
:要喚醒的任務不存在。
OS_TASK_NOT_SUSPENDED
:要喚醒的任務不在掛起狀態(tài)。
OS_PRIO_INVALID
:參數指定的優(yōu)先級大于或等于OS_LOWEST_PRIO。

INT8U OSTaskStkChk ( INT8U prio, OS_STK_DATA *pdata);
所屬文件 OS_TASK.C 調用者任務 開關量 OS_TASK_CREATE_EXT
OSTaskStkChk
()檢查任務堆棧狀態(tài),計算指定任務堆棧中的未用空間和已用空間。使用OSTaskStkChk()函數要求所檢查的任務是被OSTaskCreateExt()函數建立的,且opt參數中OS_TASK_OPT_STK_CHK操作項打開。
計算堆棧未用空間的方法是從堆棧底端向頂端逐個字節(jié)比較,檢查堆棧中0的個數,直到一個非0的數值出現。這種方法的前提是堆棧建立時已經全部清零。要實現清零操作,需要在任務建立初始化堆棧時設置OS_TASK_OPT_STK_CLR1。如果應用程序在初始化時已經將全部RAM清零,且不進行任務刪除操作,也可以設置OS_TASK_OPT_STK_CLR0,這將加快OSTaskCreateExt()函數的執(zhí)行速度。
參數
prio
為指定要獲取堆棧信息的任務優(yōu)先級,也可以指定參數OS_PRIO_SELF,獲取調用任務本身的信息。
pdata
指向一個類型為OS_STK_DATA的數據結構,其中包含如下信息:
   INT32U OSFree;       
   INT32U OSUsed;       
返回值
OSTaskStkChk
()的返回值為下述之一:
OS_NO_ERR
:函數調用成功。
OS_PRIO_INVALID
:參數指定的優(yōu)先級大于OS_LOWEST_PRIO,或未指定OS_PRIO_SELF
OS_TASK_NOT_EXIST
:指定的任務不存在。
OS_TASK_OPT_ERR
:任務用OSTaskCreateExt()函數建立的時候沒有指定OS_TASK_OPT_STK_CHK操作,或者任務是用OSTaskCreate()函數建立的。
注意/警告
函數的執(zhí)行時間是由任務堆棧的大小決定的,事先不可預料。
在應用程序中可以把OS_STK_DATA結構中的數據項OSFreeOSUsed相加,可得到堆棧的大小。雖然原則上該函數可以在中斷程序中調用,但由于該函數可能執(zhí)行很長時間,所以實際中不提倡這種做法。

INT8U OSTaskSuspend ( INT8U prio);
所屬文件 OS_TASK.C 調用者任務 開關量 OS_TASK_SUSPEND_EN
OSTaskSuspend
()無條件掛起一個任務。調用此函數的任務也可以傳遞參數OS_PRIO_SELF,掛起調用任務本身。當前任務掛起后,只有其他任務才能喚醒。任務掛起后,系統(tǒng)會重新進行任務調度,運行下一個優(yōu)先級最高的就緒任務。喚醒掛起任務需要調用函數OSTaskResume()。
任務的掛起是可以疊加到其他操作上的。例如,任務被掛起時正在進行延時操作,那么任務的喚醒就需要兩個條件:延時的結束以及其他任務的喚醒操作。又如,任務被掛起時正在等待信號量,當任務從信號量的等待對列中清除后也不能立即運行,而必須等到喚醒操作后。
參數
prio
為指定要獲取掛起的任務優(yōu)先級,也可以指定參數OS_PRIO_SELF,掛起任務本身。此時,下一個優(yōu)先級最高的就緒任務將運行。
返回值
OSTaskSuspend
()的返回值為下述之一:
OS_NO_ERR
:函數調用成功。
OS_TASK_ SUSPEND_IDLE
:試圖掛起μC/OS-II中的空閑任務(Idle task)。此為非法操作。
OS_PRIO_INVALID
:參數指定的優(yōu)先級大于OS_LOWEST_PRIO或沒有設定OS_PRIO_SELF的值。
OS_TASK_ SUSPEND _PRIO
:要掛起的任務不存在。
注意/警告
在程序中OSTaskSuspend()和OSTaskResume()應該成對使用。
OSTaskSuspend()掛起的任務只能用OSTaskResume()喚醒。

void OSTimeDly ( INT16U ticks);
所屬文件 OS_TIMC.C 調用者任務 開關量
OSTimeDly
()將一個任務延時若干個時鐘節(jié)拍。如果延時時間大于0,系統(tǒng)將立即進行任務調度。延時時間的長度可從065535個時鐘節(jié)拍。延時時間0表示不進行延時,函數將立即返回調用者。延時的具體時間依賴于系統(tǒng)每秒鐘有多少時鐘節(jié)拍(由文件SO_CFG.H中的常量OS_TICKS_PER_SEC設定)。
參數
ticks
為要延時的時鐘節(jié)拍數。
注意/警告
注意到延時時間0表示不進行延時操作,而立即返回調用者。為了確保設定的延時時間,建議用戶設定的時鐘節(jié)拍數加1。例如,希望延時10個時鐘節(jié)拍,可設定參數為11


void OSTimeDlyHMSM( INT8U hours,INT8U minutesINT8U seconds,INT8U milli);
所屬文件 OS_TIMC.C 調用者任務 開關量
OSTimeDlyHMSM
()將一個任務延時若干時間。延時的單位是小時、分、秒、毫秒。所以使用OSTimeDlyHMSM()比OSTimeDly()更方便。調用OSTimeDlyHMSM()后,如果延時時間不為0,系統(tǒng)將立即進行任務調度。
參數
hours
為延時小時數,范圍從0-255。
minutes
為延時分鐘數,范圍從0-59。
seconds
為延時秒數,范圍從0-59
milli
為延時毫秒數,范圍從0-999。需要說明的是,延時操作函數都是以時鐘節(jié)拍為為單位的。實際的延時時間是時鐘節(jié)拍的整數倍。例如系統(tǒng)每次時鐘節(jié)拍間隔是10ms,如果設定延時為5ms,將不產生任何延時操作,而設定延時15ms,實際的延時是兩個時鐘節(jié)拍,也就是20ms。
返回值
OSTimeDlyHMSM
()的返回值為下述之一:
OS_NO_ERR
:函數調用成功。
OS_TIME_INVALID_MINUTES
:參數錯誤,分鐘數大于59。
OS_TIME_INVALID_SECONDS
:參數錯誤,秒數大于59。
OS_TIME_INVALID_MILLI
:參數錯誤,毫秒數大于999。
OS_TIME_ZERO_DLY
:四個參數全為0。
注意/警告
OSTimeDlyHMSM
00,0,0)表示不進行延時操作,而立即返回調用者。另外,如果延時總時間超過65535個時鐘節(jié)拍,將不能用OSTimeDlyResume()函數終止延時并喚醒任務。

void OSTimeDlyResume( INT8U prio);
所屬文件 OS_TIMC.C 調用者任務 開關量
OSTimeDlyResume
()喚醒一個用OSTimeDly()或OSTimeDlyHMSM()函數延時的任務。
參數
prio
為指定要喚醒任務的優(yōu)先級。
返回值
OSTimeDlyResume
()的返回值為下述之一:
OS_NO_ERR
:函數調用成功。
OS_PRIO_INVALID
:參數指定的優(yōu)先級大于OS_LOWEST_PRIO
OS_TIME_NOT_DLY
:要喚醒的任務不在延時狀態(tài)。
OS_TASK_NOT_EXIST
:指定的任務不存在。
注意/警告
用戶不應該用OSTimeDlyResume()去喚醒一個設置了等待超時操作,并且正在等待事件發(fā)生的任務。操作的結果是使該任務結束等待,除非的確希望這么做。
OSTimeDlyResume
()函數不能喚醒一個用OSTimeDlyHMSM()延時,且延時時間總計超過65535個時鐘節(jié)拍的任務。例如,如果系統(tǒng)時鐘為100Hz,OSTimeDlyResume()不能喚醒延時OSTimeDlyHMSM0,10,55,350)或更長時間的任務。
OSTimeDlyHMSM0,10,55350)共延時     [ 10 minutes *60 + 55+0.35seconds ] *100 =65,535次時鐘節(jié)拍)

 

 

轉自:http://wangyingfangathena.blog.sohu.com/67251953.html

更多 0

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多