嵌入式實驗教程_第1頁
嵌入式實驗教程_第2頁
嵌入式實驗教程_第3頁
嵌入式實驗教程_第4頁
嵌入式實驗教程_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng) C/OS原理與實踐原理與實踐 - - 實驗教程實驗教程單 位:計算機科學學院計算機科學系計算機科學學院計算機科學系 教 師:李婷李婷時 間:2016實驗前言 實驗參考書:嵌入式實時操作系統(tǒng)C/OS原理與實踐2012 電子工業(yè)出版社 實驗前需學習對應部分 實驗中對得到的結論需進行分析并交報告,做到知其然而知其所以然 對VC開發(fā)環(huán)境部熟悉的同學在實驗中逐步掌握實驗列表第第1 1學時學時 跑第一個任務跑第一個任務第第2 2學時學時 調試模式跑第一個任務調試模式跑第一個任務第第3 3學時學時 任務的創(chuàng)建任務的創(chuàng)建第第4 4學時學時 操作系統(tǒng)初始化操作系統(tǒng)初始化第第

2、5 5學時學時 讓任務阻塞式延時讓任務阻塞式延時第第6 6學時學時 兩個任務交替運行兩個任務交替運行第第7 7學時學時 理解任務堆棧和任務切換理解任務堆棧和任務切換第第8 8學時學時 理解多任務的啟動理解多任務的啟動第第9 9學時學時 任務的掛起和恢復任務的掛起和恢復第第1010學時學時 信號量管理實驗信號量管理實驗第第1111學時學時 互斥信號量管理實驗互斥信號量管理實驗第第1212學時學時 事件標志組管理實驗事件標志組管理實驗第第1313學時學時 消息郵箱管理實驗消息郵箱管理實驗第第1414學時學時 消息隊列管理實驗消息隊列管理實驗第第1515學時學時 內存管理實驗內存管理實驗第第1616

3、學時學時 觀摩在觀摩在ARM7ARM7上的移植上的移植第1學時 跑第一個任務 本實驗的目的是了解嵌入式實時操作系統(tǒng)COS代碼結構,將其跑起來得到直觀的認識。實驗步驟實驗步驟1. 將包含全部實驗代碼的壓縮文件解壓縮2. 將VC6開發(fā)環(huán)境打開3. 打開ucosexperiment目錄下的ucos_vc.dsw 4. 用全部編譯(rebuild all)編譯程序,運行程序,根據(jù)窗口提示輸出,獲得感性認識!5. 根據(jù)教材P246頁圖7.1及7.1.1和7.1.2的內容,寫出文件目錄結構的說明,說明嵌入式實時操作系統(tǒng)COS都由哪些部分組成第1學時 跑第一個任務6. VC環(huán)境下,在工程上點鼠標右鍵,查看工

4、程的設計7. 打開main.c,編輯使#define Experiment 1,使用REBUILD ALL 進行編譯,找到可執(zhí)行文件的輸出目錄,記錄下來8. 使用菜單或快捷按鈕再次執(zhí)行編譯好的程序。查看運行結果并記錄,查看main.c及usercode.c,分析main.c及usercode.c代碼。9. 說明任務堆棧的定義位置,任務在什么時候被創(chuàng)建,任務在什么時候獲得運行。10.自己修改代碼,減少延時時間,或將每次加1改為其他算法,查看效果!補充,各個例子的運行結果展示1準備工作 閱讀嵌入式實時操作系統(tǒng)C/OS原理與實踐P24-40 2.1任務管理的重要數(shù)據(jù)結構,為以后的實驗做準備第2學時

5、調試模式跑第一個任務本實驗的目的在于學會使用VC的調試模式運行和調試操作系統(tǒng)。步驟1. 在上次實驗的基礎上不改動代碼,打開工程2. 在usercode.c中的printf(“welcome to embeded systemn”);處設置斷點。第2學時 調試模式跑第一個任務3. 如果程序中有其他斷點,去掉4. 在usercode.c中的 printf(“welcome to embeded systemn”);處設置斷點。(設置斷點,在代碼處按右鍵,insert breakpoint)5. 按F5以調試模式運行代碼6. 如果有其他斷點,去掉,再按F57. 當?shù)皆O定的斷點處停下時,將VC窗口縮小

6、,調整輸出的窗口使兩個窗口同時顯示在屏幕上8. 按F10單步執(zhí)行,查看輸出9. 發(fā)現(xiàn)在延時代碼循環(huán)中無法調試,在printf(“j=%dn”,j+);加斷點,按F5第2學時 調試模式跑第一個任務10.在觀察窗口watch window輸入j, 連續(xù)按F5查看j的變化和屏幕的輸出。11.按SHIFT+F5或使用菜單結束調試,記錄12.說明watch window的作用,嘗試在watch window中輸入操作系統(tǒng)的重要全局變量,P247表7.1,觀察他們的值下次實驗的準備工作 閱讀嵌入式實時操作系統(tǒng)C/OS原理與實踐P41-43任務控制塊的初始化,P51-54任務的創(chuàng)建第3學時 任務的創(chuàng)建掌握任

7、務創(chuàng)建的過程步驟1. 去掉前面的斷點,找到main.c中OSTaskCreate(FirstTask, 0, &TaskStk5TASK_STK_SIZE-1, 5);函數(shù),設置斷點,并按F5調試運行,運行代碼的時候輸入1,在運行到斷點時,按F11追進函數(shù)內部,再按F10單步運行,與書上51頁進行比較。2. 畫出該函數(shù)運行完成后的就緒表和就緒組,任務控制塊空閑鏈表和任務鏈表。第3學時 任務創(chuàng)建的過程3. 記錄所有過程,說明OSTaskCreate都做了哪些工作,任務FirstTask的任務控制塊實體是什么,在創(chuàng)建結束時其任務控制塊的內容又是什么。記錄下來。4. 試著自己編寫一個帶輸出的

8、簡單的函數(shù),然后使用OSTaskCreate創(chuàng)建這個函數(shù),修改MAIN.c,在輸入1的時候創(chuàng)建這個函數(shù)。自己編寫的函數(shù)保存在usercode.c中,并注意在usercode.h中添加函數(shù)聲明。修改完成后重新編譯執(zhí)行。下次實驗的準備工作 閱讀嵌入式實時操作系統(tǒng)C/OS原理與實踐P44-50操作系統(tǒng)的初始化第4學時 操作系統(tǒng)初始化步驟1. 找到操作系統(tǒng)初始化函數(shù)OSInit,在其中設置斷點,并按F5調試運行,觀察OSInit執(zhí)行的過程,與書上44頁2.3操作系統(tǒng)的初始化進行比較,記錄OSINIT都做了什么工作2. 畫出OSINIT后的就緒表和就緒組,任務控制塊空閑鏈表和任務鏈表(參考書上2.1,2

9、.2,2.3)3. 記錄所有過程,說明OSINIT之后系統(tǒng)的狀況下次實驗的準備工作 閱讀嵌入式實時操作系統(tǒng)C/OS原理與實踐P95-97任務延時函數(shù)OSTimeDly第5學時 讓任務阻塞式延時掌握操作系統(tǒng)的初始化過程步驟1. 不改動代碼,輸入?yún)?shù)1,全速運行,打開WINDOWS任務管理器,查看,如圖。第5學時 讓任務阻塞式延時2.修改代碼,使用阻塞式延時,查看書上95頁3.2.3,修改延時代碼第5學時 讓任務阻塞式延時3. 重新編譯,運行。使用任務管理器查看系統(tǒng)利用率。第5學時 讓任務阻塞式延時4.記錄實驗過程,說明發(fā)生這種變化的原理。 下次實驗前準備:繼續(xù)看2.1,加深對操作系統(tǒng)采用的重要數(shù)

10、據(jù)結構的理解第6學時 兩個任務交替運行1. 編譯運行代碼,輸入選項2運行程序2. 運行查看結果第6學時 兩個任務交替運行3. 查看代碼,說明為什么得到這樣的運行結果4. 修改usercode.c中E2_task2函數(shù),要求其輸出值增長速度只有E2_task1的1/2,修改后重新編譯運行5. 改變任務的優(yōu)先級,讓E2_task1的優(yōu)先級為6, E2_task2的優(yōu)先級為5,查看運行結果,說明輸出的不同之處,說明原因補充,各個例子的運行結果展示2下次實驗的準備 預習嵌入式實時操作系統(tǒng)C/OS原理與實踐P73-80任務的調度為下次試驗做準備第7學時 理解任務堆棧和任務切換1. 使用原始代碼2. 查看

11、在main.c,說明兩個用戶任務的堆棧都是什么,堆棧的地址是怎么傳遞給任務創(chuàng)建函數(shù)的。3. 在OS_Sched函數(shù)中設置斷點。跟蹤調試,說明OS_Sched實現(xiàn)了哪些功能,畫出流程圖4. 繼續(xù)調試OS_TASK_SW,根據(jù)書章2.1中對堆棧的描述,論述壓棧和退棧的處理過程。下次實驗的準備 預習嵌入式實時操作系統(tǒng)C/OS原理與實踐P83-84多任務的啟動為下次試驗做準備第8學時 理解多任務的啟動1. 使用原始代碼2. 查看在main.c,在OSStart();處設置斷點。3. 調試模式運行,跟蹤進OSStart,然后單步運行。參考P83-85分析代碼。5. 畫出OSStart流程圖4. 說明OS

12、Start的功能,說明多任務啟動的標志是什么下次實驗的準備工作 閱讀嵌入式實時操作系統(tǒng)C/OS原理與實踐P67-72任務的掛起和恢復第9學時 任務的掛起和恢復1. 編譯運行代碼,輸入選項3繼續(xù)運行程序2. 運行查看結果第9學時 任務的掛起和恢復3. 查看代碼,說明為什么得到這樣的運行結果4. 對任務代碼進行修改,得到不同的結果5. 改變任務的優(yōu)先級,查看運行結果,說明輸出的不同之處,說明原因下次實驗的準備工作 閱讀嵌入式實時操作系統(tǒng)C/OS原理與實踐P102-129 事件管理的重要數(shù)據(jù)結構,事件管理程序,信號量管理補充,各個例子的運行結果展示3第10學時 信號量管理實驗1. 編譯運行代碼,輸入

13、選項4繼續(xù)運行程序2. 運行查看結果3. 說明使用信號量實現(xiàn)的功能,為什么能實現(xiàn)這樣的功能,都使用了哪些數(shù)據(jù)結構。第10學時 信號量管理實驗4. 實現(xiàn)P190,習題6(在usercode.c中編寫三個函數(shù),并修改usercode.h中的聲明,修改main.c,重新編譯查看效果)補充,各個例子的運行結果展示4下次實驗的準備工作 閱讀嵌入式實時操作系統(tǒng)C/OS原理與實踐P134-158 4.4互斥信號量第11學時 互斥信號量管理實驗1. 例子程序說明見嵌入式實時操作系統(tǒng)C/OS原理與實踐 P154,運行結果見P159圖4.142. 程序運行后,輸入5選擇例子程序53. 重新編譯運行,查看結果4.

14、說明使用互斥信號量實現(xiàn)的功能,為什么能實現(xiàn)這樣的功能,都使用了哪些數(shù)據(jù)結構。5. 說明為什么解決了優(yōu)先級反轉的問題第11學時 互斥信號量管理實驗5. 自己設計一個使用時間標志組的例子,編程實現(xiàn)并運行,記錄結果。補充,各個例子的運行結果展示5下次實驗的準備工作 閱讀嵌入式實時操作系統(tǒng)C/OS原理與實踐P159-189 4.5事件標志組第12學時 事件標志組管理實驗1. 例子程序說明見嵌入式實時操作系統(tǒng)C/OS原理與實踐 P184,運行結果見P159圖4.202. 程序運行后,輸入6選擇例子程序63. 重新編譯運行,查看結果4. 說明使用事件標志組實現(xiàn)的功能,為什么能實現(xiàn)這樣的功能,都使用了哪些數(shù)

15、據(jù)結構。第12學時 事件標志組管理實驗5. 實現(xiàn)P190,習題7(在usercode.c中編寫三個函數(shù),并修改usercode.h中的聲明,修改main.c,重新編譯查看效果)補充,各個例子的運行結果展示6下次實驗的準備工作 閱讀嵌入式實時操作系統(tǒng)C/OS原理與實踐P191-210 5.1消息郵箱第13學時 消息郵箱管理實驗1. 例子程序說明見嵌入式實時操作系統(tǒng)C/OS原理與實踐 P208,運行結果見P210圖5.72. 程序運行后,輸入7選擇例子程序73. 重新編譯運行,查看結果4. 說明使用消息郵箱實現(xiàn)的功能,為什么能實現(xiàn)這樣的功能,都使用了哪些數(shù)據(jù)結構。第13學時 消息郵箱管理實驗5.

16、實現(xiàn)P230,習題7(在usercode.c中編寫三個函數(shù),并修改usercode.h中的聲明,修改main.c,重新編譯查看效果)補充,各個例子的運行結果展示7下次實驗的準備工作 閱讀嵌入式實時操作系統(tǒng)C/OS原理與實踐P2111-229 5.2消息隊列第14學時 消息隊列管理實驗1. 例子程序說明見嵌入式實時操作系統(tǒng)C/OS原理與實踐 P226,運行結果見P229圖5.122. 程序運行后,輸入8選擇例子程序83. 重新編譯運行,查看結果4. 說明使用消息隊列實現(xiàn)的功能,為什么能實現(xiàn)這樣的功能,都使用了哪些數(shù)據(jù)結構。第14次實驗 消息隊列管理實驗5. 實現(xiàn)P230,習題8(在usercode.c中編寫三個函數(shù),并修改usercode.h中的聲明,修改main.c,重新編譯查看效果)補充,各個例子的運行結果展示8下次實驗的準備

溫馨提示

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

評論

0/150

提交評論