嵌入式實驗課內(nèi)核實驗2(優(yōu)先級反轉(zhuǎn))_第1頁
嵌入式實驗課內(nèi)核實驗2(優(yōu)先級反轉(zhuǎn))_第2頁
嵌入式實驗課內(nèi)核實驗2(優(yōu)先級反轉(zhuǎn))_第3頁
嵌入式實驗課內(nèi)核實驗2(優(yōu)先級反轉(zhuǎn))_第4頁
嵌入式實驗課內(nèi)核實驗2(優(yōu)先級反轉(zhuǎn))_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、內(nèi)核實驗(二)優(yōu) 先 級 反 轉(zhuǎn)1實驗?zāi)康?掌握在基于優(yōu)先級的可搶占嵌入式實時操系統(tǒng)的應(yīng)用中,出現(xiàn)優(yōu)先級反轉(zhuǎn)現(xiàn)象的原理。2 高優(yōu)先級任務(wù)需要等待低優(yōu)先級任務(wù)釋放資源,而低優(yōu)先級任務(wù)又正在等待中等優(yōu)先級任務(wù),這種現(xiàn)象就被稱為優(yōu)先級反轉(zhuǎn) 。優(yōu)先級反轉(zhuǎn)原理3 共有3個應(yīng)用任務(wù)TA0,TA1,TA2; 優(yōu)先級: TA0TA1TA2; TA0和TA2互斥使用資源 mutex; TA2最先獲得mutex。實驗設(shè)計4t1t2t4t5t6t7t8t9t10t117優(yōu)先級65t123100運行流程5#define OS_LOWEST_PRIO 9 /*任務(wù)優(yōu)先級不可以大于9*/#def

2、ine OS_TASK_CREATE_EN 1 /*允許使用OSTaskCreate()*/#define OS_MAX_TASKS 4 /*最多可以創(chuàng)建4個任務(wù)*/#define OS_TASK_STAT_EN 0 /* 禁止統(tǒng)計任務(wù)*/操作系統(tǒng)配置6#define OS_TICKS_PER_SEC 200 /*設(shè)置每秒之內(nèi)的時鐘節(jié)拍數(shù)目*/#define OS_SEM_EN 1 /*是否允許使用信號量功能*/#define OS_MAX_EVENTS 1 /*最多可以有1個事件*/操作系統(tǒng)配置7 OSTaskCreate():建立一個新任務(wù) 本實驗中所用到的C/OS-II相關(guān)函數(shù) OSTi

3、meDly():將一個任務(wù)延時若干個時鐘節(jié)拍 OSSemCreate():建立并初始化一個信號量 OSSemPend():申請信號量 OSemPost():設(shè)置信號量 8、創(chuàng)建起始任務(wù)TaskStartOSTaskCreate(TaskStart, (void *)0, &TaskStartStkTASK_STK_SIZE - 1, 4); 源程序說明9TaskStart負(fù)責(zé):安裝時鐘中斷服務(wù)例程ucos_x86_idt_set_handler(0 x20,(void *)OSTickISR,0 x8e00);初始化操作系統(tǒng)時鐘ucos_timer_init();創(chuàng)建應(yīng)用任務(wù)TaskStart

4、CreateTasks();源程序說明102、創(chuàng)建應(yīng)用任務(wù)Task0、Task1、Task2OSTaskCreate(Task0, (void *)&TaskData0, &TaskStk0TASK_STK_SIZE - 1, 5);OSTaskCreate(Task1, (void *)&TaskData1, &TaskStk1TASK_STK_SIZE - 1, 6);OSTaskCreate(Task2, (void *)&TaskData2, &TaskStk2TASK_STK_SIZE - 1, 7);源程序說明11void Task0 (void *pdata) for (;) /

5、* 無限循環(huán) */ OSTimeDly(200); /* Delay 200 clock tick */ OSSemPend(mutex,0,&err); /* Acquire mutex */ OSTimeDly(200); /* Delay 200 clock tick */ OSSemPost(mutex); /* Release mutex */ 3、應(yīng)用任務(wù)Task0功能:申請信號量mutex源程序說明12Task1功能:中等優(yōu)先級任務(wù),搶占Task2的CPUvoid Task (void *pdata) for (;) /* 無限循環(huán) */ . OSTimeDly(100); .OSTimeDly(100); 源程序說明13void Task (void *pdata) for (;) /* 無限循環(huán) */ OSSemPend(mutex,0,&err); /* Acquire mutex */ OSTimeDly(200); /* Delay 200 clock tic

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論