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

正文內(nèi)容

ucos-ii_api_參考手冊(cè)-資料下載頁(yè)

2025-06-25 22:52本頁(yè)面
  

【正文】 該函數(shù)只能在第一個(gè)被建立并運(yùn)行的任務(wù)中調(diào)用。參數(shù)無(wú)返回值無(wú)注意/警告無(wú)范例:void FirstAndOnlyTask (void *pdata){ . . OSStatInit()。 /* 計(jì)算CPU使用率 */ . OSTaskCreate(?)。 /* 建立其他任務(wù) */ OSTaskCreate(?)。 . for (。) { . . }} OSTaskChangPrio( )INT8U OSTaskChangePrio (INT8U oldprio, INT8U newprio)。所屬文件調(diào)用者開關(guān)量任務(wù)OS_TASK_CHANGE_PRIO_ENOSTaskChangePrio()改變一個(gè)任務(wù)的優(yōu)先級(jí)。參數(shù)oldprio是任務(wù)原先的優(yōu)先級(jí)。newprio 是任務(wù)的新優(yōu)先級(jí)。返回值OSTaskChangePrio()的返回值為下述之一:l OS_NO_ERR:任務(wù)優(yōu)先級(jí)成功改變。l OS_PRO_INVALID:參數(shù)中的任務(wù)原先優(yōu)先級(jí)或新優(yōu)先級(jí)大于或等于OS_LOWEST_PRIO。l OS_PRIO_EXIST:參數(shù)中的新優(yōu)先級(jí)已經(jīng)存在。l OS_PRIO_ERR:參數(shù)中的任務(wù)原先優(yōu)先級(jí)不存在。注意/警告參數(shù)中的新優(yōu)先級(jí)必須是沒(méi)有使用過(guò)的,否則會(huì)返回錯(cuò)誤碼。在OSTaskChangePrio()中還會(huì)先判斷要改變優(yōu)先級(jí)的任務(wù)是否存在。范例:void TaskX(void *data){ INT8U err。 for (。) { . . err = OSTaskChangePrio(10, 15)。 . . }} OSTaskCreate( )INT8U OSTaskCreate(void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio)。所屬文件調(diào)用者開關(guān)量任務(wù)或初始化代碼無(wú)OSTaskCreate()建立一個(gè)新任務(wù)。任務(wù)的建立可以在多任務(wù)環(huán)境啟動(dòng)之前,也可以在正在運(yùn)行的任務(wù)中建立。中斷處理程序中不能建立任務(wù)。一個(gè)任務(wù)必須為無(wú)限循環(huán)結(jié)構(gòu)(如下所示),且不能有返回點(diǎn)。OSTaskCreate()是為與先前的μC/OS版本保持兼容,新增的特性在OSTaskCreateExt()函數(shù)中。無(wú)論用戶程序中是否產(chǎn)生中斷,在初始化任務(wù)堆棧時(shí),堆棧的結(jié)構(gòu)必須與CPU中斷后寄存器入棧的順序結(jié)構(gòu)相同。詳細(xì)說(shuō)明請(qǐng)參考所用處理器的手冊(cè)。 參數(shù)task是指向任務(wù)代碼的指針。Pdata指向一個(gè)數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)用來(lái)在建立任務(wù)時(shí)向任務(wù)傳遞參數(shù)。下例中說(shuō)明μC/OS中的任務(wù)結(jié)構(gòu)以及如何傳遞參數(shù)pdata:void Task (void *pdata){ . /* Do something with 39。pdata39。 */ for (。) { /* 任務(wù)函數(shù)體. */ . . /* 在任務(wù)體中必須調(diào)用如下函數(shù)之一: */ /* OSMboxPend() */ /* OSQPend() */ /* OSSemPend() */ /* OSTimeDly() */ /* OSTimeDlyHMSM() */ /* OSTaskSuspend() (掛起任務(wù)本身) */ /* OSTaskDel() (刪除任務(wù)本身) */ . . }ptos為指向任務(wù)堆棧棧頂?shù)闹羔?。任?wù)堆棧用來(lái)保存局部變量,函數(shù)參數(shù),返回地址以及任務(wù)被中斷時(shí)的CPU寄存器內(nèi)容。任務(wù)堆棧的大小決定于任務(wù)的需要及預(yù)計(jì)的中斷嵌套層數(shù)。計(jì)算堆棧的大小,需要知道任務(wù)的局部變量所占的空間,可能產(chǎn)生嵌套調(diào)用的函數(shù),及中斷嵌套所需空間。如果初始化常量OS_STK_GROWTH設(shè)為1,堆棧被設(shè)為從內(nèi)存高地址向低地址增長(zhǎng),此時(shí)ptos應(yīng)該指向任務(wù)堆棧空間的最高地址。反之,如果OS_STK_GROWTH設(shè)為0,堆棧將從內(nèi)存的低地址向高地址增長(zhǎng)。prio為任務(wù)的優(yōu)先級(jí)。每個(gè)任務(wù)必須有一個(gè)唯一的優(yōu)先級(jí)作為標(biāo)識(shí)。數(shù)字越小,優(yōu)先級(jí)越高。返回值OSTaskCreate()的返回值為下述之一:l OS_NO_ERR:函數(shù)調(diào)用成功。l OS_PRIO_EXIST:具有該優(yōu)先級(jí)的任務(wù)已經(jīng)存在。l OS_PRIO_INVALID:參數(shù)指定的優(yōu)先級(jí)大于OS_LOWEST_PRIO。l OS_NO_MORE_TCB:系統(tǒng)中沒(méi)有OS_TCB可以分配給任務(wù)了。注意/警告任務(wù)堆棧必須聲明為OS_STK類型。在任務(wù)中必須調(diào)用μC/OS提供的下述過(guò)程之一:延時(shí)等待、任務(wù)掛起、等待事件發(fā)生(等待信號(hào)量,消息郵箱、消息隊(duì)列),以使其他任務(wù)得到CPU。用戶程序中不能使用優(yōu)先級(jí)0,1,2,3,以及OS_LOWEST_PRIO3, OS_LOWEST_PRIO2, OS_LOWEST_PRIO1, OS_LOWEST_PRIO。這些優(yōu)先級(jí)μC/OS系統(tǒng)保留,其余的56個(gè)優(yōu)先級(jí)提供給應(yīng)用程序。范例 1:本例中,傳遞給任務(wù)Task1()的參數(shù)pdata不使用,所以指針pdata被設(shè)為NULL。注意到程序中設(shè)定堆棧向低地址增長(zhǎng),傳遞的棧頂指針為高地址amp。Task1Stk [1023 ]。如果在您的程序中設(shè)定堆棧向高地址增長(zhǎng),則傳遞的棧頂指針應(yīng)該為amp。Task1Stk [0 ]。OS_STK Task1Stk[1024]。void main(void){ INT8U err。 . OSInit()。 /* 初始化 ?C/OSII */ . OSTaskCreate(Task1, (void *)0, amp。Task1Stk[1023], 25)。 . OSStart()。 /* 啟動(dòng)多任務(wù)環(huán)境 */}void Task1(void *pdata){ pdata = pdata。 for (。) { . /* 任務(wù)代碼 */ . }}范例 2:您可以創(chuàng)立一個(gè)通用的函數(shù),多個(gè)任務(wù)可以共享一個(gè)通用的函數(shù)體,例如一個(gè)處理串行通訊口的函數(shù)。傳遞不同的初始化數(shù)據(jù)(端口地址、波特率)和指定不同的通訊口就可以作為不同的任務(wù)運(yùn)行。OS_STK *Comm1Stk[1024]。COMM_DATA Comm1Data。 /* 包含 COMM 口初始化數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu) */ /* 通道1的數(shù)據(jù) */OS_STK *Comm2Stk[1024]。COMM_DATA Comm2Data。 /* 包含 COMM 口初始化數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu) */ /* 通道2的數(shù)據(jù) */void main(void){ INT8U err。 . OSInit()。 /* 初始化?C/OSII */ . OSTaskCreate(CommTask, (void *)amp。Comm1Data, amp。Comm1Stk[1023], 25)。 OSTaskCreate(CommTask, (void *)amp。Comm2Data, amp。Comm2Stk[1023], 26)。 . OSStart()。 /* 啟動(dòng)多任務(wù)環(huán)境 */}void CommTask(void *pdata) /* 通訊任務(wù) */{ for (。) { . /* 任務(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)。所屬文件調(diào)用者開關(guān)量任務(wù)或初始化代碼無(wú)OSTaskCreateExt()建立一個(gè)新任務(wù)。與OSTaskCreate()不同的是,OSTaskCreateExt()允許用戶設(shè)置更多的細(xì)節(jié)內(nèi)容。任務(wù)的建立可以在多任務(wù)環(huán)境啟動(dòng)之前,也可以在正在運(yùn)行的任務(wù)中建立,但中斷處理程序中不能建立新任務(wù)。一個(gè)任務(wù)必須為無(wú)限循環(huán)結(jié)構(gòu)(如下所示),且不能有返回點(diǎn)。參數(shù)task是指向任務(wù)代碼的指針。Pdata指針指向一個(gè)數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)用來(lái)在建立任務(wù)時(shí)向任務(wù)傳遞參數(shù)。下例中說(shuō)明μC/OS中的任務(wù)代碼結(jié)構(gòu)以及如何傳遞參數(shù)pdata:(如果在程序中不使用參數(shù)pdata,為了避免在編譯中出現(xiàn)“參數(shù)未使用”的警告信息,可以寫一句pdata= pdata;譯者注)void Task (void *pdata){ . /* 對(duì)參數(shù)pdata進(jìn)行操作,例如pdata= pdata */ for (。) { /* */ . . /* 任務(wù)中必須調(diào)用如下的函數(shù): */ /* OSMboxPend() */ /* OSQPend() */ /* OSSemPend() */ /* OSTimeDly() */ /* OSTimeDlyHMSM() */ /* OSTaskSuspend() (掛起任務(wù)自身) */ /* OSTaskDel() (刪除任務(wù)自身) */ . . }}ptos為指向任務(wù)堆棧棧頂?shù)闹羔?。任?wù)堆棧用來(lái)保存局部變量,函數(shù)參數(shù),返回地址以及中斷時(shí)的CPU寄存器內(nèi)容。任務(wù)堆棧的大小決定于任務(wù)的需要及預(yù)計(jì)的中斷嵌套層數(shù)。計(jì)算堆
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1