


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、UCOS-II移植ARM的讀書筆記(12.15) UCOS-II移植ARM的讀書筆記(12.15) 移植的工作難以分析下去,先來幾個(gè)UCOS的使用范例看看吧 第一個(gè)范例:void main (void) PC_DispClrScr(DISP_FGND_WHITE + DISP_BGND_BLACK); /* PC的清屏函數(shù),PC_DispClrScr(INT8U color),這里調(diào)用時(shí)是前景色為白色,背景色為黑色*/ OSInit(); /* Initialize uC/OS-II ,初始化UCOS-II,在使用任何功能之前必須調(diào)用OSInit函數(shù),建立兩個(gè)任務(wù):空閑任務(wù)所有其他任務(wù)均未就緒
2、時(shí)運(yùn)行,統(tǒng)計(jì)任務(wù)計(jì)算CPU的利用率*/ PC_DOSSaveReturn(); /* Save environment to return to DOS 允許程序在正式開始多任務(wù)前,保存重要的寄存器的值,以保證UCOS能夠正常地返回DOS */ PC_VectSet(uCOS, OSCtxSw); /* Install uC/OS-II's context switch vector ,用于設(shè)定中斷向量表的內(nèi)容。*/ RandomSem = OSSemCreate(1); /* Random number semaphore,建立一個(gè)信號(hào)量,并制定信號(hào)量的初值為1,OSSemCreat
3、e(1)返回一個(gè)指向信號(hào)量的指針,那么之后對(duì)該信號(hào)量的操作全部通過這個(gè)指針來實(shí)現(xiàn) */ OSTaskCreate(TaskStart, (void *)0, &TaskStartStkTASK_STK_SIZE - 1, 0); /*至少建立一個(gè)任務(wù),TaskStart為指向該任務(wù)運(yùn)行代碼的指針,第二個(gè)參數(shù)是一個(gè)指向任務(wù)初始化數(shù)據(jù)的指針,第三個(gè)是任務(wù)的堆棧棧頂,當(dāng)堆棧是從上到下,必須把堆棧高地址傳給該函數(shù),最后一個(gè)參數(shù)指定建立的任務(wù)的優(yōu)先級(jí),數(shù)值越小優(yōu)先級(jí)越高,每個(gè)任務(wù)的優(yōu)先級(jí)都是介于062之間獨(dú)一無二的。*/ OSStart(); /* Start multitasking,調(diào)用該函
4、數(shù)將控制權(quán)交給內(nèi)核,開始運(yùn)行多任務(wù) */ OSStart函數(shù)會(huì)讓優(yōu)先級(jí)最高的就緒任務(wù)開始運(yùn)行,即TaskStartvoid TaskStart (void *pdata)#if OS_CRITICAL_METHOD = 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr;#endif char s100; INT16S key; pdata = pdata; /* Prevent compiler warning,這是這個(gè)參數(shù)是當(dāng)任務(wù)建立時(shí)傳遞過來的一個(gè)指針 */ TaskStartDispInit(); /* I
5、nitialize the display 初始化屏幕顯示 */ OS_ENTER_CRITICAL(); /*關(guān)中斷*/ PC_VectSet(0x08, OSTickISR); /* Install uC/OS-II's clock tick ISR */ PC_SetTickRate(OS_TICKS_PER_SEC); /* Reprogram tick rate */ OS_EXIT_CRITICAL(); /*開中斷*/ OSStatInit(); /* Initialize uC/OS-II's statistics測(cè)試所使用的處理器的速度,得知處理器在運(yùn)行所有應(yīng)
6、用任務(wù)時(shí)實(shí)際的CPU使用率 */ TaskStartCreateTasks(); /* Create all the application tasks建立更多任務(wù),10個(gè)顯示不同字符的任務(wù),在每次建立一個(gè)新任務(wù)的時(shí)候,UCOS都會(huì)判斷新建立的任務(wù)是否比建立它們的任務(wù)優(yōu)先級(jí)更高,如果更高,這個(gè)新建立的任務(wù)將立刻開始運(yùn)行。 */ for (;) TaskStartDisp(); /* Update the display */ if (PC_GetKey(&key) = TRUE) /* See if key has been pressed */ if (key = 0x1B) /*
7、Yes, see if it's the ESCAPE key */ PC_DOSReturn(); /* Return to DOS */ OSCtxSwCtr = 0; /* Clear context switch counter 每秒都將記錄任務(wù)切換次數(shù)的清零 */ OSTimeDlyHMSM(0, 0, 1, 0); /* Wait one second 將自身掛起1s,1s是通過四個(gè)參數(shù)傳送的,小時(shí),分鐘,秒,毫秒 */ static void TaskStartCreateTasks (void) INT8U i; for (i = 0; i < N_TASKS;
8、i+) /* Create N_TASKS identical tasks */ TaskDatai = '0' + i; /* Each task will display its own letter */ OSTaskCreate(Task, (void *)&TaskDatai, &TaskStkiTASK_STK_SIZE - 1, i + 1); 上面的函數(shù)循環(huán)建立了十個(gè)Task任務(wù),下面是Task任務(wù)的代碼void Task (void *pdata) INT8U x; INT8U y; INT8U err; for (;) OSSemPend(RandomSem, 0, &err); /* 獲取信號(hào)量*/ x = random(80); /* 獲得隨機(jī)數(shù)x*/ y = random(16); /*獲得隨機(jī)數(shù)y*/ OSSemPost(RandomSem); /* 釋放信號(hào)量*/ /* Display the task number on the screen */ PC_DispChar(x, y + 5, *(char *)pdata, DISP_FGND_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年建筑安全員知識(shí)題庫及答案
- 2025-2030年中國采血器市場發(fā)展?fàn)顩r及前景趨勢(shì)分析報(bào)告
- 2025-2030年中國薯片市場運(yùn)行態(tài)勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國營養(yǎng)碘鹽市場發(fā)展?fàn)顩r及營銷戰(zhàn)略研究報(bào)告
- 2025-2030年中國自動(dòng)光學(xué)檢測(cè)儀(AOI)市場運(yùn)營狀況及前景趨勢(shì)分析報(bào)告
- 2025-2030年中國絕熱隔音材料產(chǎn)業(yè)運(yùn)行狀況與投資策略研究報(bào)告
- 2025-2030年中國電解金屬錳行業(yè)前景展望規(guī)劃研究報(bào)告
- 2025-2030年中國電站設(shè)備行業(yè)運(yùn)行態(tài)勢(shì)及發(fā)展趨勢(shì)分析報(bào)告
- 延安職業(yè)技術(shù)學(xué)院《染整工藝原理(2)》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川文化藝術(shù)學(xué)院《計(jì)算機(jī)組成》2023-2024學(xué)年第二學(xué)期期末試卷
- 華東師大版七年級(jí)數(shù)學(xué)下冊(cè)“第1周周考”
- 2025年湘教版二年級(jí)美術(shù)下冊(cè)計(jì)劃與教案
- GB/T 4706.30-2024家用和類似用途電器的安全第30部分:廚房機(jī)械的特殊要求
- 2024年岳陽職業(yè)技術(shù)學(xué)院單招職業(yè)技能測(cè)試題庫及答案解析
- 消防安全管理制度完整版完整版
- 20馬工程教材《公共財(cái)政概論》-第一章-公課件
- 英語演講素材OfMiceandMen課件
- 廣東佛山祖廟導(dǎo)游詞
- 硬筆書法紙可打印
- 正丁烷的理化性質(zhì)及危險(xiǎn)特性表
- 入團(tuán)志愿書(2016版本)(可編輯打印標(biāo)準(zhǔn)A4) (1)
評(píng)論
0/150
提交評(píng)論