freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

ucos-ii_api_參考手冊(留存版)

2025-08-09 22:52上一頁面

下一頁面
  

【正文】 (void *)CommMsg)。 OS_MEM_DATA mem_data。void Task (void *pdata){ void *msg。 /* 初始化μC/OSⅡ */ . . CommQ = OSQCreate(amp。所屬文件調(diào)用者開關(guān)量任務OS_Q_ENOSQPend()函數(shù)用于任務等待消息。l OS_TIMEOUT :消息沒有在指定的周期數(shù)內(nèi)送到。所屬文件調(diào)用者開關(guān)量任務或中斷OS_Q_ENOSQPost()函數(shù)通過消息隊列向任務發(fā)送消息。注意/警告必須先建立消息隊列,然后使用。如果有任何任務在等待隊列中的消息,最高優(yōu)先級的任務將得到這個消息。 for (。void Task (void *pdata){ OS_Q_DATA qdata。) { . OSSchedLock()。(參考OSSemCreate()函數(shù))。范例:OS_EVENT *DispSem。最大的等待時間為65535個時鐘節(jié)拍。 . /* 只有信號量置起,該任務才能執(zhí)行 */ . }} OSSemPost( )INT8U OSSemPost(OS_EVENT *pevent)。所屬文件調(diào)用者開關(guān)量任務或中斷OS_SEM_ENOSSemQuery()函數(shù)用于獲取某個信號量的信息。 INT8U highest。 /* 初始化 ?C/OSII */ . /* 用戶代碼 */ . OSStart()。l OS_PRO_INVALID:參數(shù)中的任務原先優(yōu)先級或新優(yōu)先級大于或等于OS_LOWEST_PRIO。 參數(shù)task是指向任務代碼的指針。l OS_PRIO_INVALID:參數(shù)指定的優(yōu)先級大于OS_LOWEST_PRIO。 . OSStart()。Comm2Stk[1023], 26)。任務堆棧用來保存局部變量,函數(shù)參數(shù),返回地址以及中斷時的CPU寄存器內(nèi)容。Comm1Data, amp。void main(void){ INT8U err。每個任務必須有一個唯一的優(yōu)先級作為標識。一個任務必須為無限循環(huán)結(jié)構(gòu)(如下所示),且不能有返回點。所屬文件調(diào)用者開關(guān)量任務OS_TASK_CHANGE_PRIO_ENOSTaskChangePrio()改變一個任務的優(yōu)先級。參數(shù)無返回值無注意/警告在調(diào)用OSStart( )之前必須先調(diào)用OSInit ( )。范例:在本例中,應用程序檢查信號量,查找等待隊列中優(yōu)先級最高的任務。 pdata = pdata。 pdata = pdata。該指針的值在建立該信號量時可以得到。l 取得設備的使用權(quán)l(xiāng) 標志事件的發(fā)生參數(shù)value 參數(shù)是建立的信號量的初始值,可以取0到65535之間的任何值。不同于OSSemPend()函數(shù),如果設備沒有就緒,OSSemAccept()函數(shù)并不掛起任務。參數(shù)無返回值無注意/警告任務調(diào)用了OSSchedLock()函數(shù)后,決不能再調(diào)用可能導致當前任務掛起的系統(tǒng)函數(shù):OSTimeDly(),OSTimeDlyHMSM(),OSSemPend(),OSMboxPend(),OSQPend()。 /* 下一個可用的消息*/ INT16U OSNMsgs; /* 隊列中的消息數(shù)目*/ INT16U OSQSize; /* 消息隊列的大小 */ INT8U OSEventTbl[OS_EVENT_TBL_SIZE]。范例:OS_EVENT *CommQ。也就是說,OSQPostFront()函數(shù)使得消息隊列按照后入先出(LIFO)的方式工作,而不是先入先出(FIFO)。不允許傳遞一個空指針。 for (。最大的等待時間為65535個時鐘節(jié)拍。 OSInit()。注意/警告必須先建立消息隊列,然后使用。(參考OSMboxCreate()函數(shù))。 /*使用的內(nèi)存塊數(shù)目 */ 返回值OSMemQuery()函數(shù)返回值總是OS_NO_ERR。INT8U *CommMsg。注意/警告必須首先建立內(nèi)存區(qū),然后使用。void main(void){ INT8U err。程序可以包含這些內(nèi)存塊并在用完后釋放回內(nèi)存區(qū)。該指針的值在建立該消息郵箱時可以得到。l OS_MBOX_FULL :消息郵箱已經(jīng)包含了其他消息,不空。) { . . msg = OSMboxPend(CommMbox, 10, amp。這個時間長度并不是非常嚴格的,可能存在一個時鐘節(jié)拍的誤差,因為只有在一個時鐘節(jié)拍結(jié)束后才會減少定義的等待超時時鐘節(jié)拍。 /* 初始化μC/OSⅡ */ . . CommMbox = OSMboxCreate((void *)0)。注意/警告必須先建立消息郵箱,然后使用。當最后一層嵌套的中斷執(zhí)行完畢后,如果有更高優(yōu)先級的任務準備就緒,μC/OSⅡ會調(diào)用任務調(diào)度函數(shù),在這種情況下,中斷返回到更高優(yōu)先級的任務而不是被中斷了的任務。 保存中斷現(xiàn)場 PUSH ES PUSH DS。 /* 初始化 uC/OSII */ . OSStart()。 讀入數(shù)據(jù)段 MOV DS, AX。不同于OSMboxPend()函數(shù),如果沒有需要的消息,OSMboxAccept()函數(shù)并不掛起任務。參數(shù)msg 參數(shù)用來初始化建立的消息郵箱。一個由OSTaskSuspend()函數(shù)掛起的任務也可以接受消息,但這個任務將一直保持掛起狀態(tài)直到通過調(diào)用OSTaskResume()函數(shù)恢復任務的運行。注意/警告必須先建立消息郵箱,然后使用。參數(shù)pevent 是指向即將接受消息的消息郵箱的指針。) { . err = OSMboxPost(CommMbox, (void *)amp。 pdata = pdata。OS_MEM_INVALID_BLKS :沒有為每一個內(nèi)存區(qū)建立至少兩個內(nèi)存塊??梢远啻握{(diào)用OSMemGet()函數(shù)。參數(shù)pmem 是指向內(nèi)存區(qū)控制塊的指針,可以從OSMemCreate()函數(shù) 返回得到。參數(shù)pmem 是指向內(nèi)存區(qū)控制塊的指針,可以從OSMemCreate()函數(shù) 返回得到。 . }}OSQAccept( )Void *OSQAccept(OS_EVENT *pevent)。所屬文件調(diào)用者開關(guān)量任務或啟動代碼OS_Q_ENOSQCreate()函數(shù)建立一個消息隊列。不管隊列中是否有消息,這個函數(shù)的執(zhí)行時間都是相同的。如果同時有多個任務等待同一個消息,μC/OSⅡ默認最高優(yōu)先級的任務取得消息并且任務恢復執(zhí)行。如果沒有在指定數(shù)目的時鐘節(jié)拍內(nèi)接受到需要的消息,OSQPend()函數(shù)返回空指針并且將 *err設置為OS_TIMEOUT。如果等待消息的任務優(yōu)先級比發(fā)送消息的任務優(yōu)先級高,那么高優(yōu)先級的任務將得到消息而恢復執(zhí)行,也就是說,發(fā)生了一次任務切換。 pdata = pdata。消息是一個指針長度的變量,在不同的程序中消息的使用也可能不同。用戶程序必須建立一個OS_Q_DATA的數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)用來保存從消息隊列的事件控制塊得到的數(shù)據(jù)。qdata)。因為任務調(diào)度已經(jīng)被禁止,其他任務不能運行,這會導致系統(tǒng)死鎖。void Task (void *pdata){ INT16U value。所屬文件調(diào)用者開關(guān)量任務OS_SEM_ENOSSemPend()函數(shù)用于任務試圖取得設備的使用權(quán),任務需要和其他任務或中斷同步,任務需要等待特定事件的發(fā)生的場合。l OS_ERR_PEND_ISR :從中斷調(diào)用該函數(shù)。參數(shù)pevent 是指向信號量的指針。該指針在信號量建立后返回調(diào)用程序[參見OSSemCreat()函數(shù)]。) { . . err = OSSemQuery(DispSem, amp。OSStatInit()的調(diào)用時機是當多任務環(huán)境已經(jīng)啟動,且系統(tǒng)中只有一個任務在運行。范例:void TaskX(void *data){ INT8U err。) { /* 任務函數(shù)體. */ . . /* 在任務體中必須調(diào)用如下函數(shù)之一: */ /* OSMboxPend() */ /* OSQPend() */ /* OSSemPend() */ /* OSTimeDly() */ /* OSTimeDlyHMSM() */ /* OSTaskSuspend() (掛起任務本身) */ /* OSTaskDel() (刪除任務本身) */ . . }ptos為指向任務堆棧棧頂?shù)闹羔槨_@些優(yōu)先級μC/OS系統(tǒng)保留,其余的56個優(yōu)先級提供給應用程序。OS_STK *Comm1Stk[1024]。與OSTaskCreate()不同的是,OSTaskCreateExt()允許用戶設置更多的細節(jié)內(nèi)容。一個任務必須為無限循環(huán)結(jié)構(gòu)(如下所示),且不能有返回點。 /* 包含 COMM 口初始化數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu) */ /* 通道1的數(shù)據(jù) */OS_STK *Comm2Stk[1024]。注意到程序中設定堆棧向低地址增長,傳遞的棧頂指針為高地址amp。任務堆棧的大小決定于任務的需要及預計的中斷嵌套層數(shù)。) { . . err = OSTaskChangePrio(10, 15)。參數(shù)無返回值無注意/警告無范例:void FirstAndOnlyTask (void *pdata){ . . OSStatInit()。 if (err == OS_NO_ERR) { if ( != 0x00) { y = OSUnMapTbl[]。 /* 當前信號量標識號碼 */INT8U OSEventTbl[OS_EVENT_TBL_SIZE]。(參考OSSemCreate()函數(shù))。l OS_ERR_EVENT_TYPE :pevent 不是指向信號量的指針。如果調(diào)用時信號量等于零,OSSemPend()函數(shù)函數(shù)將任務加入該信號量的等待隊列。 for (。 for (。所屬文件調(diào)用者開關(guān)量任務或中斷N/AOSSchedLock()函數(shù)停止任務調(diào)度,只有使用配對的函數(shù)OSSchedUnlock()才能重新開始內(nèi)核的任務調(diào)度。OSuery()函數(shù)還可以得到即將被傳遞給任務的消息的信息。返回值OSQPost()函數(shù)的返回值為下述之一:l OS_NO_ERR :消息成功的放到消息隊列中。) { . . err = OSQPost(CommQ, (voi
點擊復制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1