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

正文內(nèi)容

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

2024-11-19 00:58本頁面
  

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