




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載http:/ 作者盧有亮作者盧有亮 圖書圖書PPT和全部代碼下載和全部代碼下載http:/ 嵌入式實(shí)時操作系統(tǒng)嵌入式實(shí)時操作系統(tǒng)CC/OS/OS原原理與實(shí)踐理與實(shí)踐實(shí)驗(yàn)教程實(shí)驗(yàn)教程論壇論壇http:/ 實(shí)驗(yàn)參考書:嵌入式實(shí)時操作系統(tǒng)C/OS原理與實(shí)踐2012 電子工業(yè)出版社 實(shí)驗(yàn)前需學(xué)習(xí)對應(yīng)部分 實(shí)驗(yàn)中對得到的結(jié)論需進(jìn)行分析并交報告,做到知其然而知其所以然 對VC開發(fā)環(huán)境部熟悉的同學(xué)在實(shí)驗(yàn)中逐步掌握實(shí)驗(yàn)列表第第1 1學(xué)時學(xué)時跑第一個任務(wù)跑第一個任務(wù)第第2 2學(xué)時學(xué)時調(diào)試模式跑第一個任務(wù)調(diào)試模式跑第一個任務(wù)第第3 3學(xué)時學(xué)時任務(wù)的創(chuàng)
2、建任務(wù)的創(chuàng)建第第4 4學(xué)時學(xué)時操作系統(tǒng)初始化操作系統(tǒng)初始化第第5 5學(xué)時學(xué)時讓任務(wù)阻塞式延時讓任務(wù)阻塞式延時第第6 6學(xué)時學(xué)時兩個任務(wù)交替運(yùn)行兩個任務(wù)交替運(yùn)行第第7 7學(xué)時學(xué)時理解任務(wù)堆棧和任務(wù)切換理解任務(wù)堆棧和任務(wù)切換第第8 8學(xué)時學(xué)時理解多任務(wù)的啟動理解多任務(wù)的啟動第第9 9學(xué)時學(xué)時任務(wù)的掛起和恢復(fù)任務(wù)的掛起和恢復(fù)第第1010學(xué)時學(xué)時 信號量管理實(shí)驗(yàn)信號量管理實(shí)驗(yàn)第第1111學(xué)時學(xué)時 互斥信號量管理實(shí)驗(yàn)互斥信號量管理實(shí)驗(yàn)第第1212學(xué)時學(xué)時 事件標(biāo)志組管理實(shí)驗(yàn)事件標(biāo)志組管理實(shí)驗(yàn)第第1313學(xué)時學(xué)時消息郵箱管理實(shí)驗(yàn)消息郵箱管理實(shí)驗(yàn)第第1414學(xué)時學(xué)時 消息隊(duì)列管理實(shí)驗(yàn)消息隊(duì)列管理實(shí)驗(yàn)第第15
3、15學(xué)時學(xué)時 內(nèi)存管理實(shí)驗(yàn)內(nèi)存管理實(shí)驗(yàn)第第1學(xué)時學(xué)時跑第一個任務(wù)跑第一個任務(wù) 本實(shí)驗(yàn)的目的是了解嵌入式實(shí)時操作系統(tǒng)COSCOS代碼結(jié)構(gòu),將其跑起來得到直觀的認(rèn)識。 實(shí)驗(yàn)步驟實(shí)驗(yàn)步驟 1.將包含全部實(shí)驗(yàn)代碼的壓縮文件解壓縮 2.將VC6開發(fā)環(huán)境打開 3.打開ucosexperiment目錄下的ucos_vc.dsw 4.用全部編譯(rebuild all)編譯程序,運(yùn)行程序,根據(jù)窗口提示輸出,獲得感性認(rèn)識! 5.根據(jù)教材P246頁圖7.1及7.1.1和7.1.2的內(nèi)容,寫出文件目錄結(jié)構(gòu)的說明,說明嵌入式實(shí)時操作系統(tǒng)COSCOS都由哪些部分組成第第1學(xué)時學(xué)時跑第一個任務(wù)跑第一個任務(wù) 6.VC環(huán)境下
4、,在工程上點(diǎn)鼠標(biāo)右鍵,查看工程的設(shè)計(jì) 7.打開main.c,編輯使#define Experiment 1,使用REBUILD ALL 進(jìn)行編譯,找到可執(zhí)行文件的輸出目錄,記錄下來 8.使用菜單或快捷按鈕再次執(zhí)行編譯好的程序。查看運(yùn)行結(jié)果并記錄,查看main.c及usercode.c,分析main.c及usercode.c代碼。 9.說明任務(wù)堆棧的定義位置,任務(wù)在什么時候被創(chuàng)建,任務(wù)在什么時候獲得運(yùn)行。 10.自己修改代碼,減少延時時間,或?qū)⒚看渭?改為其他算法,查看效果!補(bǔ)充,各個例子的運(yùn)行結(jié)果展示1準(zhǔn)備工作 閱讀嵌入式實(shí)時操作系統(tǒng)C/OS原理與實(shí)踐P24-40 2.1任務(wù)管理的重要數(shù)據(jù)結(jié)構(gòu)
5、,為以后的實(shí)驗(yàn)做準(zhǔn)備第第2學(xué)時學(xué)時 調(diào)試模式跑第一個任務(wù)調(diào)試模式跑第一個任務(wù) 本實(shí)驗(yàn)的目的在于學(xué)會使用VC的調(diào)試模式運(yùn)行和調(diào)試操作系統(tǒng)。 步驟 1.在上次實(shí)驗(yàn)的基礎(chǔ)上不改動代碼,打開工程 2.在usercode.c中的 printf(“welcome to embeded systemn”);處設(shè)置斷點(diǎn)。第第2學(xué)時學(xué)時 調(diào)試模式跑第一個任務(wù)調(diào)試模式跑第一個任務(wù) 3.如果程序中有其他斷點(diǎn),去掉 4.在usercode.c中的 printf(“welcome to embeded systemn”);處設(shè)置斷點(diǎn)。(設(shè)置斷點(diǎn),在代碼處按右鍵,insert breakpoint) 5.按F5以調(diào)試模式
6、運(yùn)行代碼 6.如果有其他斷點(diǎn),去掉,再按F5 7.當(dāng)?shù)皆O(shè)定的斷點(diǎn)處停下時,將VC窗口縮小,調(diào)整輸出的窗口使兩個窗口同時顯示在屏幕上 8.按F10單步執(zhí)行,查看輸出 9. 發(fā)現(xiàn)在延時代碼循環(huán)中無法調(diào)試,在printf(“j=%dn”,j+);加斷點(diǎn),按F5第第2學(xué)時學(xué)時 調(diào)試模式跑第一個任務(wù)調(diào)試模式跑第一個任務(wù) 10.在觀察窗口watch window輸入j, 連續(xù)按F5查看j的變化和屏幕的輸出。 11.按SHIFT+F5或使用菜單結(jié)束調(diào)試,記錄 12說明watch window的作用,嘗試在watch window中輸入操作系統(tǒng)的重要全局變量,P247表7.1,觀察他們的值下次實(shí)驗(yàn)的準(zhǔn)備工作
7、閱讀嵌入式實(shí)時操作系統(tǒng)C/OS原理與實(shí)踐P41-43任務(wù)控制塊的初始化,P51-54任務(wù)的創(chuàng)建第第3學(xué)時學(xué)時 任務(wù)的創(chuàng)建任務(wù)的創(chuàng)建 掌握任務(wù)創(chuàng)建的過程 步驟 1. 去掉前面的斷點(diǎn),找到main.c中OSTaskCreate(FirstTask, 0, &TaskStk5TASK_STK_SIZE-1, 5);函數(shù),設(shè)置斷點(diǎn),并按F5調(diào)試運(yùn)行,運(yùn)行代碼的時候輸入1,在運(yùn)行到斷點(diǎn)時,按F11追進(jìn)函數(shù)內(nèi)部,再按F10單步運(yùn)行,與書上51頁進(jìn)行比較。 2。畫出該函數(shù)運(yùn)行完成后的就緒表和就緒組,任務(wù)控制塊空閑鏈表和任務(wù)鏈表。第第3學(xué)時學(xué)時任務(wù)創(chuàng)建的過程任務(wù)創(chuàng)建的過程 3.記錄所有過程,說明OSTaskC
8、reate都做了哪些工作,任務(wù)FirstTask的任務(wù)控制塊實(shí)體是什么,在創(chuàng)建結(jié)束時其任務(wù)控制塊的內(nèi)容又是什么。記錄下來。 4.試著自己編寫一個帶輸出的簡單的函數(shù),然后使用OSTaskCreate創(chuàng)建這個函數(shù),修改MAIN.c,在輸入1的時候創(chuàng)建這個函數(shù)。自己編寫的函數(shù)保存在usercode.c中,并注意在usercode.h中添加函數(shù)聲明。修改完成后重新編譯執(zhí)行。下次實(shí)驗(yàn)的準(zhǔn)備工作 閱讀嵌入式實(shí)時操作系統(tǒng)C/OS原理與實(shí)踐P44-50操作系統(tǒng)的初始化第第4學(xué)時學(xué)時 操作系統(tǒng)初始化操作系統(tǒng)初始化 步驟 1. 找到操作系統(tǒng)初始化函數(shù)OSInit,在其中設(shè)置斷點(diǎn),并按F5調(diào)試運(yùn)行,觀察OSInit
9、執(zhí)行的過程,與書上44頁2.3操作系統(tǒng)的初始化進(jìn)行比較,記錄OSINIT都做了什么工作 2。畫出OSINIT后的就緒表和就緒組,任務(wù)控制塊空閑鏈表和任務(wù)鏈表(參考書上2.1,2.2,2.3) 3.記錄所有過程,說明OSINIT之后系統(tǒng)的狀況下次實(shí)驗(yàn)的準(zhǔn)備工作 閱讀嵌入式實(shí)時操作系統(tǒng)C/OS原理與實(shí)踐P95-97任務(wù)延時函數(shù)OSTimeDly第第5學(xué)時學(xué)時 讓任務(wù)阻塞式延時讓任務(wù)阻塞式延時掌握操作系統(tǒng)的初始化過程步驟1.不改動代碼,輸入?yún)?shù)1,全速運(yùn)行,打開WINDOWS任務(wù)管理器,查看,如圖第第5學(xué)時學(xué)時 讓任務(wù)阻塞式延時讓任務(wù)阻塞式延時 2.修改代碼,使用阻塞式延時,查看書上95頁3.2.3
10、,修改延時代碼第第5學(xué)時學(xué)時 讓任務(wù)阻塞式延時讓任務(wù)阻塞式延時 3.重新編譯,運(yùn)行。使用任務(wù)管理器查看系統(tǒng)利用率。第第5學(xué)時學(xué)時 讓任務(wù)阻塞式延時讓任務(wù)阻塞式延時 4.記錄實(shí)驗(yàn)過程,說明發(fā)生這種變化的原理。 下次實(shí)驗(yàn)前準(zhǔn)備:繼續(xù)看下次實(shí)驗(yàn)前準(zhǔn)備:繼續(xù)看2.1,加深對操作,加深對操作系統(tǒng)采用的重要數(shù)據(jù)結(jié)構(gòu)的理解系統(tǒng)采用的重要數(shù)據(jù)結(jié)構(gòu)的理解第第6學(xué)時學(xué)時兩個任務(wù)交替運(yùn)行兩個任務(wù)交替運(yùn)行 1.編譯運(yùn)行代碼,輸入選項(xiàng)2運(yùn)行程序 2.運(yùn)行查看結(jié)果第第6學(xué)時學(xué)時兩個任務(wù)交替運(yùn)行兩個任務(wù)交替運(yùn)行 3.查看代碼,說明為什么得到這樣的運(yùn)行結(jié)果 4.修改usercode.c中E2_task2函數(shù),要求其輸出值增長
11、速度只有E2_task1的1/2,修改后重新編譯運(yùn)行 5.改變?nèi)蝿?wù)的優(yōu)先級,讓E2_task1的優(yōu)先級為6, E2_task2的優(yōu)先級為5,查看運(yùn)行結(jié)果,說明輸出的不同之處,說明原因補(bǔ)充,各個例子的運(yùn)行結(jié)果展示2下次實(shí)驗(yàn)的準(zhǔn)備 預(yù)習(xí)嵌入式實(shí)時操作系統(tǒng)C/OS原理與實(shí)踐P73-80任務(wù)的調(diào)度為下次試驗(yàn)做準(zhǔn)備第第7學(xué)時學(xué)時理解任務(wù)堆棧和任務(wù)切換理解任務(wù)堆棧和任務(wù)切換 1.使用原始代碼 2.查看在main.c,說明兩個用戶任務(wù)的堆棧都是什么,堆棧的地址是怎么傳遞給任務(wù)創(chuàng)建函數(shù)的。 3.在OS_Sched函數(shù)中設(shè)置斷點(diǎn)。跟蹤調(diào)試,說明OS_Sched實(shí)現(xiàn)了哪些功能,畫出流程圖 4.繼續(xù)調(diào)試OS_TAS
12、K_SW,根據(jù)書章2.1中對堆棧的描述,論述壓棧和退棧的處理過程。下次實(shí)驗(yàn)的準(zhǔn)備 預(yù)習(xí)嵌入式實(shí)時操作系統(tǒng)C/OS原理與實(shí)踐P83-84多任務(wù)的啟動為下次試驗(yàn)做準(zhǔn)備第第8學(xué)時學(xué)時理解多任務(wù)的啟動理解多任務(wù)的啟動 1.使用原始代碼 2.查看在main.c,在OSStart();處設(shè)置斷點(diǎn)。 3.調(diào)試模式運(yùn)行,跟蹤進(jìn)OSStart,然后單步運(yùn)行。參考P83-85分析代碼。 5.畫出OSStart流程圖 4.說明OSStart的功能,說明多任務(wù)啟動的標(biāo)志是什么下次實(shí)驗(yàn)的準(zhǔn)備工作 閱讀嵌入式實(shí)時操作系統(tǒng)C/OS原理與實(shí)踐P67-72任務(wù)的掛起和恢復(fù)第第9學(xué)時學(xué)時任務(wù)的掛起和恢復(fù)任務(wù)的掛起和恢復(fù) 1.編譯
13、運(yùn)行代碼,輸入選項(xiàng)3繼續(xù)運(yùn)行程序 2.運(yùn)行查看結(jié)果第第9學(xué)時學(xué)時 任務(wù)的掛起和恢復(fù)任務(wù)的掛起和恢復(fù) 3.查看代碼,說明為什么得到這樣的運(yùn)行結(jié)果 4.對任務(wù)代碼進(jìn)行修改,得到不同的結(jié)果 5.改變?nèi)蝿?wù)的優(yōu)先級,查看運(yùn)行結(jié)果,說明輸出的不同之處,說明原因補(bǔ)充,各個例子的運(yùn)行結(jié)果展示3下次實(shí)驗(yàn)的準(zhǔn)備工作 閱讀嵌入式實(shí)時操作系統(tǒng)C/OS原理與實(shí)踐P102-129 事件管理的重要數(shù)據(jù)結(jié)構(gòu),事件管理程序,信號量管理第第10學(xué)時學(xué)時 信號量管理實(shí)驗(yàn)信號量管理實(shí)驗(yàn) 1.例子程序說明見嵌入式實(shí)時操作系統(tǒng)C/OS原理與實(shí)踐 P129,運(yùn)行結(jié)果見P133圖4.9 打開原始工程運(yùn)行代碼,輸入選項(xiàng)4繼續(xù)運(yùn)行程序 2.運(yùn)行
14、查看結(jié)果 3.說明使用信號量實(shí)現(xiàn)的功能,為什么能實(shí)現(xiàn)這樣的功能,都使用了哪些數(shù)據(jù)結(jié)構(gòu)。第第10學(xué)時學(xué)時 信號量管理實(shí)驗(yàn)信號量管理實(shí)驗(yàn) 4.實(shí)現(xiàn)P190,習(xí)題6(在usercode.c中編寫三個函數(shù),并修改usercode.h中的聲明,修改main.c,重新編譯查看效果)補(bǔ)充,各個例子的運(yùn)行結(jié)果展示4下次實(shí)驗(yàn)的準(zhǔn)備工作 閱讀嵌入式實(shí)時操作系統(tǒng)C/OS原理與實(shí)踐P134-158 4.4互斥信號量第第11學(xué)時學(xué)時 互斥信號量管理實(shí)驗(yàn)互斥信號量管理實(shí)驗(yàn) 1.例子程序說明見嵌入式實(shí)時操作系統(tǒng)C/OS原理與實(shí)踐 P154,運(yùn)行結(jié)果見P159圖4.14 2. 程序運(yùn)行后,輸入5選擇例子程序5 3.重新編譯運(yùn)
15、行,查看結(jié)果 4.說明使用互斥信號量實(shí)現(xiàn)的功能,為什么能實(shí)現(xiàn)這樣的功能,都使用了哪些數(shù)據(jù)結(jié)構(gòu)。 5.說明為什么解決了優(yōu)先級反轉(zhuǎn)的問題第第11學(xué)時學(xué)時 互斥信號量管理實(shí)驗(yàn)互斥信號量管理實(shí)驗(yàn) 5.自己設(shè)計(jì)一個使用時間標(biāo)志組的例子,編程實(shí)現(xiàn)并運(yùn)行,記錄結(jié)果。補(bǔ)充,各個例子的運(yùn)行結(jié)果展示5下次實(shí)驗(yàn)的準(zhǔn)備工作 閱讀嵌入式實(shí)時操作系統(tǒng)C/OS原理與實(shí)踐P159-189 4.5事件標(biāo)志組第第12學(xué)時學(xué)時 事件標(biāo)志組管理實(shí)驗(yàn)事件標(biāo)志組管理實(shí)驗(yàn) 1.例子程序說明見嵌入式實(shí)時操作系統(tǒng)C/OS原理與實(shí)踐 P184,運(yùn)行結(jié)果見P159圖4.20 2. 程序運(yùn)行后,輸入6選擇例子程序6 3.重新編譯運(yùn)行,查看結(jié)果 4.
16、說明使用事件標(biāo)志組實(shí)現(xiàn)的功能,為什么能實(shí)現(xiàn)這樣的功能,都使用了哪些數(shù)據(jù)結(jié)構(gòu)。第第12學(xué)時學(xué)時 事件標(biāo)志組管理實(shí)驗(yàn)事件標(biāo)志組管理實(shí)驗(yàn) 5.實(shí)現(xiàn)P190,習(xí)題7(在usercode.c中編寫三個函數(shù),并修改usercode.h中的聲明,修改main.c,重新編譯查看效果)補(bǔ)充,各個例子的運(yùn)行結(jié)果展示6下次實(shí)驗(yàn)的準(zhǔn)備工作 閱讀嵌入式實(shí)時操作系統(tǒng)C/OS原理與實(shí)踐P191-210 5.1消息郵箱第第13學(xué)時學(xué)時 消息郵箱管理實(shí)驗(yàn)消息郵箱管理實(shí)驗(yàn) 1.例子程序說明見嵌入式實(shí)時操作系統(tǒng)C/OS原理與實(shí)踐 P208,運(yùn)行結(jié)果見P210圖5.7 2. 程序運(yùn)行后,輸入7選擇例子程序7 3.重新編譯運(yùn)行,查看結(jié)
17、果 4.說明使用消息郵箱實(shí)現(xiàn)的功能,為什么能實(shí)現(xiàn)這樣的功能,都使用了哪些數(shù)據(jù)結(jié)構(gòu)。第第13學(xué)時學(xué)時 消息郵箱管理實(shí)驗(yàn)消息郵箱管理實(shí)驗(yàn) 5.實(shí)現(xiàn)P230,習(xí)題7(在usercode.c中編寫三個函數(shù),并修改usercode.h中的聲明,修改main.c,重新編譯查看效果)補(bǔ)充,各個例子的運(yùn)行結(jié)果展示7下次實(shí)驗(yàn)的準(zhǔn)備工作 閱讀嵌入式實(shí)時操作系統(tǒng)C/OS原理與實(shí)踐P2111-229 5.2消息隊(duì)列第第14學(xué)時學(xué)時 消息隊(duì)列管理實(shí)驗(yàn)消息隊(duì)列管理實(shí)驗(yàn) 1.例子程序說明見嵌入式實(shí)時操作系統(tǒng)C/OS原理與實(shí)踐 P226,運(yùn)行結(jié)果見P229圖5.12 2. 程序運(yùn)行后,輸入8選擇例子程序8 3.重新編譯運(yùn)行,查看結(jié)果 4.說明使用消息隊(duì)列實(shí)現(xiàn)的功能,為什么能實(shí)現(xiàn)這樣的功能,都使用了哪些數(shù)據(jù)結(jié)構(gòu)。第第14次實(shí)驗(yàn)次實(shí)驗(yàn) 消息隊(duì)列管理實(shí)驗(yàn)消息隊(duì)列管理實(shí)驗(yàn) 5.實(shí)現(xiàn)P230,習(xí)題8(在usercode.c中編寫三個函數(shù),并修改usercode.h中的聲明,修改main.c,重新編譯查看效果)補(bǔ)充,各個例子的運(yùn)行結(jié)果展示8下次實(shí)驗(yàn)的準(zhǔn)備工
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 健身器材用戶參與度提升策略實(shí)踐考核試卷
- 塑料鞋生產(chǎn)效率統(tǒng)計(jì)與分析考核試卷
- 數(shù)學(xué)空間想象力培養(yǎng)教具考核試卷
- 供應(yīng)鏈大數(shù)據(jù)分析在供應(yīng)鏈中的應(yīng)用案例解析考核試卷
- 北京車牌借用合同范本
- 蔬菜購銷合同范本
- 藥店店員培訓(xùn)課件
- 冷庫設(shè)備銷售合同范本
- 靜脈輸液的基本操作流程
- 數(shù)據(jù)傳輸網(wǎng)絡(luò)安全合作協(xié)議之?dāng)?shù)據(jù)傳輸保護(hù)服務(wù)合同
- 口腔科放射防護(hù)制度
- 2024年公開招聘事業(yè)單位工作人員報名登記表
- 微觀經(jīng)濟(jì)學(xué):緒論
- 2024年全國高考數(shù)學(xué)試題及解析答案(新課標(biāo)Ⅱ卷)
- 2024年中考語文滿分作文6篇(含題目)
- 2024年河南鄭州航空港經(jīng)濟(jì)綜合實(shí)驗(yàn)區(qū)招考高頻500題難、易錯點(diǎn)模擬試題附帶答案詳解
- 風(fēng)動和電動工具市場洞察報告
- 蘇教版一年級數(shù)學(xué)下冊全冊教案(完整版)教學(xué)設(shè)計(jì)含教學(xué)反思
- 10《傳統(tǒng)美德源遠(yuǎn)流長》第2課時教學(xué)設(shè)計(jì)-2024-2025學(xué)年道德與法治五年級上冊統(tǒng)編版
- 小學(xué)奧數(shù)-經(jīng)濟(jì)問題(二).教師版
- 2024統(tǒng)編版新教材道德與法治七年級全冊內(nèi)容解讀課件(深度)
評論
0/150
提交評論