



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、概要設計說明書Version: 1.0項目承擔隊伍:大學計算機學院E-fanciers小組撰寫人(簽名): 孝瑞完成日期:2009-7-16本文檔使用小組:E-fanciers小組評審負責人 (簽名): 孝瑞評審日期:2009-8-19分類:軟件項目設計使用者: E-fanciers目 錄一、引言41.1 編寫目的41.2 項目背景41.3 定義41.4 參考資料:5二、任務概述52.1 目標52.2 運行環(huán)境62.3需求概述62.4 條件與限制6三、總體設計63.1 處理流程63.2 總體結構和模塊外部設計63.3.功能分配7四、接口設計74.1 外部接口74.2 部接口7五、數據結構設計8
2、5.1邏輯結構設計85.2 物理結構設計85.2 物理結構設計8六、運行設計86.1 運行模塊的組合86.2 運行控制86.3 運行時間8七、出錯處理設計9八、安全設計9九、維護設計9概要設計說明書( Architectural Design Specification)一引言1 編寫目的MyRTOS是 E-fanciers小組通過開源的微型操作系統(tǒng)ucos-ii開發(fā)的嵌入式實時操作系統(tǒng),目標板選用周立功ARMLPC2138+JLINK調試頭,開發(fā)環(huán)境選用RealView公司的MDK.MyRTOS的設計采用ucos-ii的設計思想 ,并在其基礎上進行了擴展和創(chuàng)新. 尤其設計解決了優(yōu)先級反轉問題
3、和同級時間片輪詢調度機制.2 項目背景嵌入式實時操作系統(tǒng)是09 年省齊魯軟件大賽新增的題目, 本題目迎合了目前非常熱門的嵌入式產業(yè)的人才需求,讓學生了解嵌入式開發(fā)的方方面面. 并逐漸進入嵌入式開發(fā)的領域.E-fanciers小組經過分析本次大賽的題目,最后決定選擇這個具有挑戰(zhàn)性的題目.后來經過學習和老師的指導, 認識到選擇此題目的必要性:目前市場上有很多嵌入式產品,嵌入式實時操作系統(tǒng)也是層出不窮, 如何開發(fā)出一個功能完善、而又高效的嵌入式實時操作系統(tǒng)成為一大熱點課題.3 定義3.1 嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)(Embedded Real Time OS,簡稱RTOS)是嵌入式系統(tǒng)應用
4、開發(fā)的核心軟件,是嵌入式系統(tǒng)的靈魂,就像我們日常所用計算機桌面系統(tǒng)中,微軟公司的 Windows 操作系統(tǒng)一樣重要。市場上有很多著名的商業(yè)化嵌入式操作系統(tǒng),如 Pam OS、 Windows CE 、嵌入式 Linux 和 C/OS-II 等上千種 RTOS。 3.2 臨界區(qū)VxWorks 、和其它核一樣,MyRtos 為了處理臨界段代碼需要關中斷,處理完畢后再開中斷。這使得 MyRtos 能夠避免同時有其它任務或中斷服務進入臨界段代碼。 關中斷的時間是實時核開發(fā)商應提供的最重要的指標之一, 因為這個指標影響用戶系統(tǒng)對實時事件的響應性。 MyRtos 努力使關中斷時間降至最短,但就使用 MyR
5、tos 而言,關中斷的時間很大程度上取決于微處理器的架構以及編譯器所生成的代碼質量。3.3 任務一個任務通常是一個無限的循環(huán)。一個任務看起來像其它類型,有形式參數變量,返回任務編號.C 的函數一樣,有函數返回3.4 任務調度確定哪個任務優(yōu)先級最高,下面該哪個任務運行了的工作是由調度器(Scheduer)完成的。3.5 空閑任務系統(tǒng)的空閑任務OS_TaskIdle() ,MyRtos 總是建立一個空閑任務,這個任務在沒有其它任務進入就緒態(tài)時投入運行。這個空閑任務永遠設為最低優(yōu)先級,即OS_LOWEST_PRI0 。空閑任務OS_TaskIdle ()什么也不做,只是在不停地給一個32 位的名叫O
6、SIdeCtr 的計數器加 1,注意空閑任務不可能被應用軟件刪除。屬于系統(tǒng)服務.3.6 統(tǒng)計任務統(tǒng)計任務用來根據計數器的值計算cpu 利用率,屬于系統(tǒng)服務.3.7 任務管理對任務進行的操作,包括任務創(chuàng)建、刪除、阻塞睡眠、掛起、恢復等操作。屬于核部分。3.8 任務堆棧每個任務都有自己的堆??臻g。堆棧必須聲明為組成。用戶可以靜態(tài)分配堆??臻g(在編譯的時候分配時候分配 )。3.9 優(yōu)先級OS_STK 類型,并且由連續(xù)的存空間)也可以動態(tài)地分配堆??臻g(在運行的在用戶建立任務的時候會分配給任務一個優(yōu)先級。優(yōu)先級決定了任務的運行次序和調度次序。3.10 互斥信號量使用互斥信號量進行任務間通信,避免了優(yōu)先
7、級反轉問題的發(fā)生。包括:創(chuàng)建互斥信號量、等待信號量、發(fā)送信號量.互斥信號量的操作3.11 ShellShell是用來進行人機交互的界面。供操作系統(tǒng)的用戶對系統(tǒng)進行操作.用戶可以通過Shell查看任務運行情況、可以掛起、恢復任務,查看信號量的使用情況等操作.4 參考資料(列出這些資料的作者、標題、編號、發(fā)表日期、出版單位或資料來源,可包括:編號名稱作者 /來源(1 )項目開發(fā)計劃;E-fanciers(2 )需求規(guī)格說明書;E-fanciers(3 )測試計劃(初稿);E-fanciers(4 )用戶操作手冊(初稿);E-fanciers(5 ) ucos-ii 中文版(6 )自己動手做操作系統(tǒng)
8、二任務概述1目標 :實現(xiàn)大賽要求的基本功能,并著手實現(xiàn)一些擴展功能2 運行環(huán)境實驗板: lpc2138調試頭 :JLINK開發(fā)環(huán)境 :RealViewMDk3.53 需求概述本賽題要求完成一個小型微核嵌入式實時操作系統(tǒng)的設計和實現(xiàn)。需提交實際可運行代碼, 并在參考硬件平臺上演示功能。軟件實現(xiàn)過程應遵循敏捷性方法的指導,注意代碼和文檔的質量和版本控制,編寫測試用例驗證軟件功能和重構代碼。4 條件與限制1. 參考硬件平臺為:周立功 EasyArm2138。實際上,也可用其他 LPC系列 CPU和實驗板,只要 CPU有足夠的RAM、Flash 存儲器和一個串口擴展就可以了。但與 LPC2138區(qū)別越
9、小越好,最終的驗證都統(tǒng)一在LPC2138上進行。2.硬件抽象層的接口遵循uc/OS 的接口規(guī)。 這樣現(xiàn)存的大量的uC/OS 硬件抽象層可為新操作系統(tǒng)提供服務,減少移植工作量。硬件抽象層可以直接借用uC/OS 的代碼,但最好自己實現(xiàn),只是接口兼容。3. 操作系統(tǒng)的調用采用函數調用方式,不用中斷陷入方式;4. 將各任務棧獨立,作為任務的私有存儲區(qū);5.同時支持任務數不小于255 個??臻e任務占用編號0。6.同級任務的輪詢時間片大小可以調節(jié),單位為10毫秒 ( 稱為 tick) 。7. 串口接口參數:波特率 9600, 8 位數據, 1 位停止,無硬件流控制。8.任務優(yōu)先級不小于 255 級,最高優(yōu)
10、先級為 0,最低優(yōu)先級為255。空閑任務優(yōu)先級為 255。9.操作系統(tǒng)的應用接口的應遵循題目的規(guī),見后面的描述。10.對于代碼移植性驗證,參賽者可自行選擇硬件平臺。該硬件平臺與LPC2138或 ARM之間的區(qū)別越大越好。三總體設計1 處理流程設計和實現(xiàn)一個小型微核嵌入式實時操作系統(tǒng),硬件抽象層的接口遵循uc/OS 的接口規(guī)。操作系統(tǒng)的調用采用函數調用方式,不用中斷陷入方式,同時支持任務數不小于255個??臻e任務占用編號0。同級任務的調度采用時間片輪詢的方式,不同優(yōu)先級任務采用按優(yōu)先計調度的方式,及時對請求的任務進行處理。2 總體結構和模塊外部設計1.任務管理模塊對任務進行的操作,包括任務創(chuàng)建、
11、刪除、阻塞睡眠、掛起、恢復等操作。屬于核部分。2.任務堆棧模塊每個任務都有自己的堆??臻g。堆棧必須聲明為組成。用戶可以靜態(tài)分配堆??臻g (在編譯的時候分配時候分配 )。OS_STK 類型,并且由連續(xù)的存空間)也可以動態(tài)地分配堆??臻g(在運行的3.優(yōu)先級模塊在用戶建立任務的時候會分配給任務一個優(yōu)先級。優(yōu)先級決定了任務的運行次序和調度次序。4.互斥信號量模塊使用互斥信號量進行任務間通信,避免了優(yōu)先級反轉問題的發(fā)生。包括:創(chuàng)建互斥信號量、等待信號量、發(fā)送信號量.互斥信號量的操作5. ShellShell是用來進行人機交互的界面。供操作系統(tǒng)的用戶對系統(tǒng)進行操作.用戶可以通過Shell查看任務運行情況、
12、可以掛起、恢復任務,查看信號量的使用情況等操作.3 功能分配(表明各項功能與程序結構的關系。)各個模塊既是相互獨立的又是互相關聯(lián)的,各個模塊的互相調用配合共同使得系統(tǒng)得以穩(wěn)定的工作。四接口設計1 外部接口遵循 uc/OS 的底層接口規(guī),參考代碼文件OS_CPU.H, OS_CPU_A.C, OS_CPU_A.S2 部接口部各模塊間設計容易訪問的接口。下面為 os.h 頭文件容 , 該文件為對外應用接口說明文件。若需使用操作系統(tǒng)服務,需引用該文件。列出為基本部分,參賽者必須遵循,根據需要可擴展。/*初始化操作系統(tǒng),建立多任務環(huán)境. 該函數調用后,其他系統(tǒng)調用則可用*/*返回 : 0: 成功, -
13、1:失敗 .后面返回無說明則同 */int taskInit(void);/*創(chuàng)建一個任務 */*返回 : 返回任務編號 tid, >0:成功, 其他 : 失敗.*/*name: 任務名稱 , entryPtr :任務函數入口 , stack_size:任務棧大小 , priority:任務優(yōu)先級*/int taskCreate(char *name, void *entryPtr, int stack_size, int priority);/* 啟動一個任務 , 讓 taskCreat創(chuàng)建的任務參加調度*/*tid:任務編號 ,由 taskCreate返回 */int taskSta
14、rt(unsigned char tid);/* 獲取和設置任務優(yōu)先級,用于動態(tài)調整 */int taskPriorityGet(unsigned char tid);int taskPrioritySet(unsigned char tid, int newPriority);/* 將任務掛起 ,該任務退出調度 */int taskSuspend(unsigned char tid);/* 將任務刪除該任務退出調度且回收任務分配的資源*/int taskDelete(unsigned char tid);/* 互斥信號量創(chuàng)建 ,返回信號量標識sid, <0:失敗 */int semCr
15、eate(void);/* 互斥信號量獲取和釋放*/int semTake(int sid);int semGive(int sid);/* 任務睡眠 ( 非忙等 ), 由任務自己調用 , 主動阻塞一段時間 . 時間單位為 tick, 即 10 毫秒 */ int taskSleep(int ticks);五數據結構設計1 邏輯結構設計1.1 任務狀態(tài)任務共有五種狀態(tài),在任一給定的時刻,任務的狀態(tài)一定是在這五種狀態(tài)之一.1.2 任務控制塊一旦任務建立了,任務控制塊將被賦值。任務控制塊是一個數據結構,當任務的CPU使用權被剝奪時, 系統(tǒng)用它來保存該任務的狀態(tài)。當任務重新得到CPU使用權時, 任務控制塊能確保任務從當時被中斷的那一點絲毫不差地繼續(xù)執(zhí)行??刂茐K全部駐留在RAM中。讀者將會注意到筆者在組織這個數據結構時,考慮到了各成員的邏輯分組。任務建立的時候,控制塊就被初始化了2 物理結構設計硬件抽象層的建立,遵循 ucos-ii的規(guī) .3 數據結構與程序的關系就緒隊列使用鏈表數據結構, 查找最高優(yōu)先級任務時遍歷鏈表查詢.六運行設計1 運行模塊的組合各模塊互相配合共同完成對任務的實時調度。2 運行控制通過 Shell來控制任務的運行,可以對任務進行掛起、恢復、運行、刪除等操作。3 運行時間通過以時鐘心跳tick為單位對任務狀態(tài)計時,任務調度有同級時間片
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 針灸治療肥胖
- 銀行規(guī)范化服務培訓
- 半年工作總結業(yè)務
- 腭裂手術的團隊合作
- 中超直播運營工作總結
- 營養(yǎng)評估的臨床意義
- 四川省瀘州市2023-2024學年高一上學期1月期末地理試題 含解析
- 中學生詩歌鑒賞征文再別康橋
- 高一英語語法要點詳解-冠詞課程教案
- 食品行業(yè)質量安全監(jiān)管服務協(xié)議
- 2024年新疆區(qū)公務員錄用考試《行測》真題及答案解析
- 導彈防御課件教學課件
- 上海鐵路局入職合同范例
- Profinet(S523-FANUC)發(fā)那科通訊設置
- 航空器自動駕駛
- 《公路橋涵施工技術規(guī)范》JTG-T3650-2020培訓
- 四年級數學下冊簡便運算100題及答案
- 緊密型醫(yī)療衛(wèi)生共同體慢性病雙向轉診流程圖
- DB34T 1591-2012 茶樹凍害氣象指標
- 山東省淄博市周村區(qū)(五四制)2023-2024學年七年級下學期期中考試英語試題
- 盤盤轉轉制作國風標簽(課件)六年級下冊勞動
評論
0/150
提交評論