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

正文內(nèi)容

嵌入式實(shí)時(shí)操作系統(tǒng)(dynalinux),及其開(kāi)發(fā)平臺(tái)(精)-資料下載頁(yè)

2024-11-19 00:58本頁(yè)面
  

【正文】 指定要喚醒任務(wù)的優(yōu)先級(jí)。返回值:OSTaskResume()的返回值為下述之一: l OS_NO_ERR:函數(shù)調(diào)用成功。l OS_TASK_RESUME_PRIO:要喚醒的任務(wù)不存在。l OS_TASK_NOT_SUSPENDED:要喚醒的任務(wù)不在掛起狀態(tài)。l OS_PRIO_INVALID:參數(shù)指定的優(yōu)先級(jí)大于或等于 OS_LOWEST_PRIO。五、實(shí)驗(yàn)過(guò)程中遇到的問(wèn)題及體會(huì)實(shí)驗(yàn)過(guò)程中體會(huì)到了嵌入式開(kāi)發(fā)的樂(lè)趣,對(duì)上課老師所講的內(nèi)容有了進(jìn)一步的認(rèn)識(shí)與理解。17 實(shí)驗(yàn)三 信號(hào)量:哲學(xué)家就餐問(wèn)題的實(shí)現(xiàn)一、實(shí)驗(yàn)?zāi)康恼莆赵诨谇度胧綄?shí)時(shí)操作系統(tǒng) uC/OSII 的應(yīng)用中,任務(wù)使用信號(hào)量的一般原理。通 過(guò)經(jīng)典的哲學(xué)家就餐實(shí)驗(yàn),了解如何利用信號(hào)量來(lái)對(duì)共享資源進(jìn)行互斥訪(fǎng)問(wèn)。二、實(shí)驗(yàn)原理及程序結(jié)構(gòu)掌握在基于嵌入式實(shí)時(shí)操作系統(tǒng) uC/OSII 的應(yīng)用中,任務(wù)使用信號(hào)量的一般原理。通 過(guò)經(jīng)典的哲學(xué)家就餐實(shí)驗(yàn),了解如何利用信號(hào)量來(lái)對(duì)共享資源進(jìn)行互斥訪(fǎng)問(wèn)。五個(gè)哲學(xué)家任務(wù)(phphphphph5)主要有兩種過(guò)程:思考(即睡眠一段時(shí)間)和就餐。每個(gè)哲學(xué)家任務(wù)在就餐前必須申請(qǐng)并獲得一左一右兩支筷子,就餐完畢后釋放 這兩支筷子。五個(gè)哲學(xué)家圍成一圈,每?jī)扇酥g有一支筷子。一共有五支筷子,在該實(shí)驗(yàn)中 用了五個(gè)互斥信號(hào)量來(lái)代表。每個(gè)任務(wù)的代碼都一樣,如下所示: void Task(void *pdata){INT8U err。INT8U i。INT8U j。i=*(int *)pdata。j=(i+1)% 5。uC/OSII 實(shí)驗(yàn)指導(dǎo)書(shū) for(。){TaskThinking2Hungry(i)。OSSemPend(fork[i], 0, amp。err)。OSSemPend(fork[j], 0, amp。err)。/* Acquire semaphores to eat */ TaskEat(i)。OSSemPost(fork[j])。OSSemPost(fork[i])。/* Release semaphore */ OSTimeDly(200)。/* Delay 10 clock tick */ } }操作系統(tǒng)配置修改 uC_OSII/: :: :define OS_MAX_EVENTS 10 /*最多可以有 10 個(gè)事件*/ define OS_MAX_FLAGS 5 /*最多可以有 5 個(gè)事件標(biāo)志*/define OS_MAX_MEM_PART 5 /*最多可以劃分 5 個(gè)內(nèi)存塊*/ define OS_MAX_QS 2 /*最多可以使用 2 個(gè)隊(duì)列*/ define OS_MAX_TASKS 8 /*最多可以創(chuàng)建 8 個(gè)任務(wù)*/define OS_LOWEST_PRIO 14 /*任務(wù)優(yōu)先級(jí)不可以大于 14*/ define OS_TASK_IDLE_STK_SIZE 1024 /*空閑任務(wù)堆棧大小*/ define OS_TASK_STAT_EN 1 /*是否允許使用統(tǒng)計(jì)任務(wù)*/ define OS_TASK_STAT_STK_SIZE 1024 /*統(tǒng)計(jì)任務(wù)堆棧大小*/ define OS_FLAG_EN 1 /*是否允許使用事件標(biāo)志功能*/define OS_FLAG_WAIT_CLR_EN 1 /*是否允許等待清除事件標(biāo)志*/ define OS_FLAG_ACCEPT_EN 1 /*是否允許使用 OSFlagAccept()*/ define OS_FLAG_DEL_EN 1 /*是否允許使用 OSFlagDel()*/define OS_FLAG_QUERY_EN 1 /*是否允許使用 OSFlagQuery()*/ define OS_MBOX_EN 0 /*是否允許使用郵箱功能*/define OS_MEM_EN 0 /*是否允許使用內(nèi)存管理的功能*/define OS_MUTEX_EN 0 /*是否允許使用互斥信號(hào)量的功能*/ define OS_Q_EN 0 /*是否允許使用隊(duì)列功能*/ define OS_SEM_EN 1 /*是否允許使用信號(hào)量功能*/define OS_SEM_ACCEPT_EN 1 /*是否允許使用 OSSemAccept()*/ define OS_SEM_DEL_EN 1 /*是否允許使用OSSemDel()*/define OS_SEM_QUERY_EN 1 /*是否允許使用OSSemQuery()*/ define OS_TASK_CHANGE_PRIO_EN 1 /* 是 否 允 許 使 用 OSTaskChangePrio()*/define OS_TASK_CREATE_EN 1 /*是否允許使用 OSTaskCreate()*/define OS_TASK_CREATE_EXT_EN 1 /*是否允許使用 OSTaskCreateExt()*/ define OS_TASK_DEL_EN 1 /*是否允許使用 OSTaskDel()*/define OS_TASK_SUSPEND_EN 1 /* 是 否 允 許 使 用 OSTaskSuspend()and OSTaskResume()*/define OS_TASK_QUERY_EN 1 /*是否允許使用 OSTaskQuery()*/ define OS_TIME_DLY_HMSM_EN 1 /* 是 否 允 許 使 用 OSTimeDlyHMSM()*/define OS_TIME_DLY_RESUME_EN 1 /* 是 否 允 許 使 用 OSTimeDlyResume()*/define OS_TIME_GET_SET_EN 1 /* 是否允許使用 OSTimeGet()和 OSTimeSet()*/define OS_SCHED_LOCK_EN 1 /* 是 否 允 許 使 用 OSSchedLock()和 OSSchedUnlock()*/define OS_TICKS_PER_SEC 200 /*設(shè)置每秒之內(nèi)的時(shí)鐘節(jié)拍數(shù)目*/三、運(yùn)行及觀(guān)察應(yīng)用輸出信息開(kāi)始,所有的哲學(xué)家先處于 thinking 狀態(tài),然后都進(jìn)入 hungry 狀態(tài):后首先獲得兩個(gè)信號(hào)量的 3 號(hào)哲學(xué)家開(kāi)始 eating,待他們釋放相關(guān)信號(hào)量之后,哲學(xué)家 4 獲得所需的信號(hào)量并 eating: 應(yīng)用如此這般地循環(huán)執(zhí)行程序下去??四、本實(shí)驗(yàn)中用到的181。C/OSⅡ相關(guān)函數(shù) OSSemCreate()OSSemCreate()函數(shù)建立并初始化一個(gè)信號(hào)量。信號(hào)量的作用如下: l 允許一個(gè)任務(wù)和其他任務(wù)或者中斷同步 l 取得設(shè)備的使用權(quán) l 標(biāo)志事件的發(fā)生函數(shù)原型:OS_EVENT *OSSemCreate((((WORD value))))參數(shù)說(shuō)明:value 參數(shù)是所建立的信號(hào)量的初始值,可以取 0 到 65535 之間的任何值。返回值:OSSemCreate()函數(shù)返回指向分配給所建立的信號(hào)量的控制塊的指針。如果沒(méi)有可用的 控制塊,OSSemCreate()函數(shù)返回空指針。注意:必須先建立信號(hào)量,然后使用。 OSSemPend()OSSemPend()函數(shù)用于任務(wù)試圖取得設(shè)備的使用權(quán),任務(wù)需要和其他任務(wù)或中斷同步,任務(wù)需要等待特定事件的發(fā)生的場(chǎng)合。如果任務(wù)調(diào)用 OSSemPend()函數(shù)時(shí),信號(hào)量 的值大于零,OSSemPend()函數(shù)遞減該值并返回該值。如果調(diào)用時(shí)信號(hào)量等于零,OSSemPend()函數(shù)函數(shù)將任務(wù)加入該信號(hào)量的等待隊(duì)列。OSSemPend()函數(shù)掛起當(dāng)前 任務(wù)直到其他的任務(wù)或中斷置起信號(hào)量或超出等待的預(yù)期時(shí)間。如果在預(yù)期的時(shí)鐘節(jié)拍內(nèi)信 號(hào)量被置起,μC/OSⅡ默認(rèn)最高優(yōu)先級(jí)的任務(wù)取得信號(hào)量恢復(fù)執(zhí)行。一個(gè)被 OSTaskSuspend()函數(shù)掛起的任務(wù)也可以接受信號(hào)量,但這個(gè)任務(wù)將一直保持掛起狀態(tài)直到通過(guò)調(diào)用 OSTaskResume()函數(shù)恢復(fù)任務(wù)的運(yùn)行。函數(shù)原型: :: :Void OSSemPend(OS_EVNNT *pevent, INT16U timeout, int8u *err)。參數(shù)說(shuō)明: :: :pevent是指向信號(hào)量的指針。該指針的值在建立該信號(hào)量時(shí)可以得到。(參考 OSSemCreate()函數(shù))。Timeout允許一個(gè)任務(wù)在經(jīng)過(guò)了指定數(shù)目的時(shí)鐘節(jié)拍后還沒(méi)有得到需要的信號(hào)量時(shí) 恢復(fù)就緒狀態(tài)。如果該值為零表示任務(wù)將持續(xù)地等待信號(hào)量,最大的等待時(shí)間為 65535 個(gè)時(shí)鐘節(jié)拍。這個(gè)時(shí)間長(zhǎng)度并不是非常嚴(yán)格的,可能存在一個(gè)時(shí)鐘節(jié)拍的誤差。Err 是指向包含錯(cuò)誤碼的變量的指針。OSSemPend()函數(shù)返回的錯(cuò)誤碼可能為下述幾 種:l OS_NO_ERR :信號(hào)量不為零。l OS_TIMEOUT :信號(hào)量沒(méi)有在指定數(shù)目的時(shí)鐘周期內(nèi)被設(shè)置。l OS_ERR_PEND_ISR :從中斷調(diào)用該函數(shù)。雖然規(guī)定了不允許從中斷調(diào)用該函數(shù),但 181。C/OSⅡ仍然包含了檢測(cè)這種情況的功能。lOS_ERR_EVENT_TYPE :pevent 不是指向信號(hào)量的指針。返回值: 無(wú) 注意:必須先建立信號(hào)量,然后使用。不允許從中斷調(diào)用該函數(shù)。 OSSemPost()OSSemPost()函數(shù)置起指定的信號(hào)量。如果指定的信號(hào)量是零或大于零,OSSemPost()函數(shù)遞增該信號(hào)量并返回。如果有任何任務(wù)在等待信號(hào)量,最高優(yōu)先級(jí)的任務(wù)將得到信號(hào)量并進(jìn)入就緒狀態(tài)。任務(wù)調(diào)度函數(shù)將進(jìn)行任務(wù)調(diào)度,決定當(dāng)前運(yùn)行的任務(wù)是否仍然為最高 優(yōu)先級(jí)的就緒狀態(tài)的任務(wù)。函數(shù)原型:INT8U OSSemPost(OS_EVENT *pevent)。參數(shù)說(shuō)明:pevent是指向信號(hào)量的指針。該指針的值在建立該信號(hào)量時(shí)可以得到。(參考 OSSemCreate()函數(shù))。返回值:OSSemPost()函數(shù)的返回值為下述之一: lOS_NO_ERR :信號(hào)量被成功地設(shè)置 lOS_SEM_OVF :信號(hào)量的值溢出lOS_ERR_EVENT_TYPE :pevent 不是指向信號(hào)量的指針 注意:必須先建立信號(hào)量,然后使用。 OSTimeDly()OSTimeDly()將一個(gè)任務(wù)延時(shí)若干個(gè)時(shí)鐘節(jié)拍。如果延時(shí)時(shí)間大于 0,系統(tǒng)將立即進(jìn) 行任務(wù)調(diào)度。延時(shí)時(shí)間的長(zhǎng)度可從 0 到 65535 個(gè)時(shí)鐘節(jié)拍。延時(shí)時(shí)間 0 表示不進(jìn)行延時(shí),函數(shù)將立即返回調(diào)用者。延時(shí)的具體時(shí)間依賴(lài)于系統(tǒng)每秒鐘有多少時(shí)鐘節(jié)拍(由文件 中的常量 OS_TICKS_PER_SEC 設(shè)定)。函數(shù)原型:void OSTimeDly(INT16U ticks)。參數(shù)說(shuō)明:ticks 為要延時(shí)的時(shí)鐘節(jié)拍數(shù)。返回值:無(wú)注意:注意到延時(shí)時(shí)間 0 表示不進(jìn)行延時(shí)操作,而立即返回調(diào)用者。為了確保設(shè)定的延時(shí)時(shí)間,建議用戶(hù)設(shè)定的時(shí)鐘節(jié)拍數(shù)加 1。例如,希望延時(shí) 10 個(gè)時(shí)鐘節(jié)拍,可設(shè)定參數(shù)為 11。五、實(shí)驗(yàn)過(guò)程中遇到的問(wèn)題及體會(huì)在實(shí)驗(yàn)前要對(duì)該問(wèn)題進(jìn)行深入的理解,即五個(gè)哲學(xué)家任務(wù)(phphphphph5)主要有兩種過(guò)程:思考(即睡眠一段時(shí)間)和就餐。每個(gè)哲學(xué)家任務(wù)在就餐前必須申請(qǐng)并獲得一左一右兩支筷子,就餐完畢后釋放這兩支筷子。五個(gè)哲學(xué)家圍成一圈,每?jī)扇酥g有一支筷子。只有理解了,才能更好的進(jìn)行實(shí)驗(yàn)。
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1