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

正文內(nèi)容

ucos-ii_api_參考手冊(cè)(完整版)

2025-07-31 22:52上一頁面

下一頁面
  

【正文】 手冊(cè)本章提供了μC/OSⅡ的用戶指南。參數(shù)無返回值無注意/警告在任務(wù)級(jí)不能調(diào)用該函數(shù)。 恢復(fù)中斷現(xiàn)場(chǎng) POP ES POPA IRET 。 中斷返回 ISRx ENDP OSIntExit( )Void OSIntExit(void)。 通知內(nèi)核進(jìn)入中斷 POP DS 。當(dāng)建立消息郵箱時(shí),該指針返回到用戶程序。) { msg = OSMboxAccept(CommMbox)。注意/警告必須先建立消息郵箱,然后使用。消息是一個(gè)以指針定義的變量,在不同的程序中消息的使用也可能不同。Timeout 允許一個(gè)任務(wù)在經(jīng)過了指定數(shù)目的時(shí)鐘節(jié)拍后還沒有得到需要的消息時(shí)恢復(fù)運(yùn)行。雖然規(guī)定了不允許從中斷調(diào)用該函數(shù),但μC/OSⅡ仍然包含了檢測(cè)這種情況的功能。 void *msg。如果消息郵箱中已經(jīng)存在消息,返回錯(cuò)誤碼說明消息郵箱已滿。消息是一個(gè)指針長(zhǎng)度的變量,在不同的程序中消息的使用也可能不同。INT8U CommRxBuf[100]。用戶程序必須分配一個(gè)OS_MBOX_DATA的數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)用來從消息郵箱的事件控制塊接受數(shù)據(jù)。注意/警告必須先建立消息郵箱,然后使用。 if (err == OS_NO_ERR) { . /* ,說明消息郵箱非空*/ } . }} OSMemCreate( )OS_MEM *OSMemCreate( void *addr, INT32U nblks ,INT32U blksize, INT8U *err)。Blksize 每個(gè)內(nèi)存塊的大小,最少應(yīng)該能夠容納一個(gè)指針。注意/警告必須首先建立內(nèi)存區(qū),然后使用。 . OSStart()。l OS_MEM_NO_FREE_BLKS :內(nèi)存區(qū)已經(jīng)沒有空間分配給內(nèi)存塊。) { msg = OSMemGet(CommMem, amp。注意/警告必須首先建立內(nèi)存區(qū),然后使用。 if (err == OS_NO_ERR) { . /* 釋放內(nèi)存塊 */ } . }} OSMemQuery( )INT8U OSMemQuery(OS_MEM *pmem, OS_MEM_DATA *pdata)。 /*每個(gè)內(nèi)存塊的大小 */INT32U OSNBlks。 pdata = pdata。通常中斷調(diào)用該函數(shù),因?yàn)橹袛嗖辉试S掛起等待消息。 pdata = pdata。Size 是消息內(nèi)存區(qū)的大小。CommMsg[0], 10)。返回值OSQFlush()函數(shù)的返回值為下述之一:l OS_NO_ERR :消息隊(duì)列被成功清空l OS_ERR_EVENT_TYPE :試圖清除不是消息隊(duì)列的對(duì)象注意/警告必須先建立消息隊(duì)列,然后使用。消息通過中斷或另外的任務(wù)發(fā)送給需要的任務(wù)。(參考OSMboxCreate()函數(shù))。l OS_ERR_PEND_ISR :從中斷調(diào)用該函數(shù)。void CommTask(void *data){ INT8U err。消息是一個(gè)指針長(zhǎng)度的變量,在不同的程序中消息的使用也可能不同。(參考OSQCreate()函數(shù))。不允許傳遞一個(gè)空指針。 if (err == OS_NO_ERR) { . /* 將消息放入消息隊(duì)列 */ . } else { . /* 消息隊(duì)列已滿 */ . } . . }} OSQPostFront( )INT8U OSQPostFront(OS_EVENT *pevent, void *msg)。如果等待消息的任務(wù)優(yōu)先級(jí)比發(fā)送消息的任務(wù)優(yōu)先級(jí)高,那么高優(yōu)先級(jí)的任務(wù)將得到消息而恢復(fù)執(zhí)行,也就是說,發(fā)生了一次任務(wù)切換參數(shù)pevent 是指向即將接受消息的消息隊(duì)列的指針。l OS_ERR_EVENT_TYPE :pevent 不是指向消息隊(duì)列的指針。) { . err = OSQPostFront(CommQ, (void *)amp。該指針的值在建立該消息郵箱時(shí)可以得到。 INT8U err。在這種情況下,中斷仍然可以被接受和執(zhí)行(中斷必須允許)。 /* 停止任務(wù)調(diào)度 */ . . /* 不允許被打斷的執(zhí)行代碼 */ . OSSchedUnlock()。 /* 停止任務(wù)調(diào)度 */ . . /* 不允許被打斷的執(zhí)行代碼 */ . OSSchedUnlock()。返回值當(dāng)調(diào)用OSSemAccept()函數(shù)時(shí),設(shè)備信號(hào)量的值大于零,說明設(shè)備就緒,這個(gè)值被返回調(diào)用者,設(shè)備信號(hào)量的值減一。 /*查看設(shè)備是否就緒或事件是否發(fā)生 */ if (value 0) { . /* 就緒,執(zhí)行處理代碼 */ . } . . }}OSSemCreate( )OS_EVENT *OSSemCreate(WORD value)。void main(void){ . . OSInit()。如果在預(yù)期的時(shí)鐘節(jié)拍內(nèi)信號(hào)量被置起,μC/OSⅡ默認(rèn)最高優(yōu)先級(jí)的任務(wù)取得信號(hào)量恢復(fù)執(zhí)行。這個(gè)時(shí)間長(zhǎng)度并不是非常嚴(yán)格的,可能存在一個(gè)時(shí)鐘節(jié)拍的誤差,因?yàn)橹挥性谝粋€(gè)時(shí)鐘節(jié)拍結(jié)束后才會(huì)減少定義的等待超時(shí)時(shí)鐘節(jié)拍。不允許從中斷調(diào)用該函數(shù)。所屬文件調(diào)用者開關(guān)量任務(wù)或中斷OS_SEM_ENOSSemPost()函數(shù)置起指定的信號(hào)量。注意/警告必須先建立信號(hào)量,然后使用。使用OSSemQuery()之前,應(yīng)用程序需要先創(chuàng)立類型為OS_SEM_DATA的數(shù)據(jù)結(jié)構(gòu),用來保存從信號(hào)量的事件控制塊中取得的數(shù)據(jù)。返回值OSSemQuery()函數(shù)有下述兩個(gè)返回值:l OS_NO_ERR 表示調(diào)用成功。 /* 在信號(hào)量中等待的優(yōu)先級(jí)最高的任務(wù) */ INT8U x。 highest = (y 3) + x。 /* 啟動(dòng)多任務(wù)環(huán)境 */} OSStatInit ( )void OSStatInit (void)。 /* 建立其他任務(wù) */ OSTaskCreate(?)。l OS_PRIO_EXIST:參數(shù)中的新優(yōu)先級(jí)已經(jīng)存在。所屬文件調(diào)用者開關(guān)量任務(wù)或初始化代碼無OSTaskCreate()建立一個(gè)新任務(wù)。Pdata指向一個(gè)數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)用來在建立任務(wù)時(shí)向任務(wù)傳遞參數(shù)。如果初始化常量OS_STK_GROWTH設(shè)為1,堆棧被設(shè)為從內(nèi)存高地址向低地址增長(zhǎng),此時(shí)ptos應(yīng)該指向任務(wù)堆棧空間的最高地址。l OS_NO_MORE_TCB:系統(tǒng)中沒有OS_TCB可以分配給任務(wù)了。如果在您的程序中設(shè)定堆棧向高地址增長(zhǎng),則傳遞的棧頂指針應(yīng)該為amp。 /* 啟動(dòng)多任務(wù)環(huán)境 */}void Task1(void *pdata){ pdata = pdata。 /* 包含 COMM 口初始化數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu) */ /* 通道2的數(shù)據(jù) */void main(void){ INT8U err。 . OSStart()。Pdata指針指向一個(gè)數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)用來在建立任務(wù)時(shí)向任務(wù)傳遞參數(shù)。) { /* */ . . /* 任務(wù)中必須調(diào)用如下的函數(shù): */ /* OSMboxPend() */ /* OSQPend() */ /* OSSemPend() */ /* OSTimeDly() */ /* OSTimeDlyHMSM() */ /* OSTaskSuspend() (掛起任務(wù)自身) */ /* OSTaskDel() (刪除任務(wù)自身) */ . . }}ptos為指向任務(wù)堆棧棧頂?shù)闹羔槨? { . /* 任務(wù)代碼 */ . }} OSTaskCreateExt( )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)。 /* 初始化?C/OSII */ . OSTaskCreate(CommTask, (void *)amp。) { . /* 任務(wù)代碼 */ . }}范例 2:您可以創(chuàng)立一個(gè)通用的函數(shù),多個(gè)任務(wù)可以共享一個(gè)通用的函數(shù)體,例如一個(gè)處理串行通訊口的函數(shù)。OS_STK Task1Stk[1024]。在任務(wù)中必須調(diào)用μC/OS提供的下述過程之一:延時(shí)等待、任務(wù)掛起、等待事件發(fā)生(等待信號(hào)量,消息郵箱、消息隊(duì)列),以使其他任務(wù)得到CPU。prio為任務(wù)的優(yōu)先級(jí)。pdata39。中斷處理程序中不能建立任務(wù)。注意/警告參數(shù)中的新優(yōu)先級(jí)必須是沒有使用過的,否則會(huì)返回錯(cuò)誤碼。) { . . }} OSTaskChangPrio( )INT8U OSTaskChangePrio (INT8U oldprio, INT8U newprio)。amp。所屬文件調(diào)用者開關(guān)量只能是初始化代碼無OSStart( )啟動(dòng)μC/OSII的多任務(wù)環(huán)境。 pdata = pdata。注意/警告被操作的信號(hào)量必須是已經(jīng)建立了的。OSEventTbl [ ]域的大小由語句:define constant OS_ENENT_TBL_ SIZE定義()。void TaskX(void *pdata){ INT8U err。如果有任何任務(wù)在等待信號(hào)量,最高優(yōu)先級(jí)的任務(wù)將得到信號(hào)量并進(jìn)入就緒狀態(tài)。void DispTask(void *pdata){ INT8U err。OSSemPend()函數(shù)返回的錯(cuò)誤碼可能為下述幾種:l OS_NO_ERR :信號(hào)量不為零。參數(shù)pevent 是指向信號(hào)量的指針。 /* 建立顯示設(shè)備的信號(hào)量 */ . . OSStart()。信號(hào)量的作用如下:l
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1