操作系統(tǒng)內核與應用實踐09級_第1頁
操作系統(tǒng)內核與應用實踐09級_第2頁
操作系統(tǒng)內核與應用實踐09級_第3頁
操作系統(tǒng)內核與應用實踐09級_第4頁
操作系統(tǒng)內核與應用實踐09級_第5頁
已閱讀5頁,還剩137頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一章第一章 課程設置課程設置目標與要求目標與要求n獨立實踐課開設的意義獨立實踐課開設的意義n獨立實踐課的內容獨立實踐課的內容n課程安排及成績評估課程安排及成績評估本實踐課程開設的意義本實踐課程開設的意義操作系統(tǒng)是計算機系統(tǒng)中承上啟下的系統(tǒng)軟操作系統(tǒng)是計算機系統(tǒng)中承上啟下的系統(tǒng)軟件,它的工作流程和設計方法最有代表性和件,它的工作流程和設計方法最有代表性和實用價值。實用價值。要真正理解操作系統(tǒng)基本原理,切實可行的要真正理解操作系統(tǒng)基本原理,切實可行的方法是針對各類操作系統(tǒng)實例系統(tǒng)進行各種方法是針對各類操作系統(tǒng)實例系統(tǒng)進行各種類型的實踐,利用操作系統(tǒng)內核進行應用程類型的實踐,利用操作系統(tǒng)內核進行應

2、用程序設計。序設計。 培養(yǎng)實用型、創(chuàng)新型人才,提升學生的軟件培養(yǎng)實用型、創(chuàng)新型人才,提升學生的軟件研發(fā)能力。開拓學生的專業(yè)視野和實際工作研發(fā)能力。開拓學生的專業(yè)視野和實際工作能力。能力。體驗系統(tǒng)級應用程序的設計實現(xiàn)體驗系統(tǒng)級應用程序的設計實現(xiàn)n結合實際開發(fā)需求,掌握開發(fā)環(huán)境、開發(fā)技術、結合實際開發(fā)需求,掌握開發(fā)環(huán)境、開發(fā)技術、項目開發(fā)實施方面的基本過程項目開發(fā)實施方面的基本過程n以課題組方式進行方案論證、設計、開發(fā)環(huán)境以課題組方式進行方案論證、設計、開發(fā)環(huán)境構建、分工、單元開發(fā)、調試,集成調試運行,構建、分工、單元開發(fā)、調試,集成調試運行,以及文檔的編寫,組長是項目小組核心。以及文檔的編寫,組

3、長是項目小組核心。n該過程能使大家明確軟件開發(fā)的各個環(huán)節(jié),結該過程能使大家明確軟件開發(fā)的各個環(huán)節(jié),結合自身條件對每個環(huán)節(jié)進行自己的設計實現(xiàn)。合自身條件對每個環(huán)節(jié)進行自己的設計實現(xiàn)。操作系統(tǒng)內核與應用實踐實施方案操作系統(tǒng)內核與應用實踐實施方案n嵌入式實時操作系統(tǒng)嵌入式實時操作系統(tǒng)c/os-是實時操作系統(tǒng)的成是實時操作系統(tǒng)的成功范例。功范例。n開放源代碼資源架設一個方便的開發(fā)平臺,提供一個開放源代碼資源架設一個方便的開發(fā)平臺,提供一個很好實用的開發(fā)工具環(huán)境,使學生能夠專注于實時應很好實用的開發(fā)工具環(huán)境,使學生能夠專注于實時應用軟件技術,不必為系統(tǒng)開發(fā)環(huán)境等問題耗費精力。用軟件技術,不必為系統(tǒng)開發(fā)環(huán)

4、境等問題耗費精力。而且有大量的移植范例下載參考。而且有大量的移植范例下載參考。nc/os-的商業(yè)價值也很高,可以支持嵌入式商業(yè)的商業(yè)價值也很高,可以支持嵌入式商業(yè)應用程序的開發(fā)需求。應用程序的開發(fā)需求。操作系統(tǒng)實踐課達到的目標操作系統(tǒng)實踐課達到的目標理解把握實現(xiàn)操作系統(tǒng)的層次結構和工作流程理解把握實現(xiàn)操作系統(tǒng)的層次結構和工作流程設計應用系統(tǒng)的工作流程設計應用系統(tǒng)的工作流程學會使用需要的開發(fā)工具環(huán)境學會使用需要的開發(fā)工具環(huán)境選擇合適的軟件工具進行編碼實現(xiàn)選擇合適的軟件工具進行編碼實現(xiàn)進行單元調試和集成調試進行單元調試和集成調試課題組為單位展開工作課題組為單位展開工作編寫開發(fā)文檔及其課程設計報告編

5、寫開發(fā)文檔及其課程設計報告對軟件開發(fā)全過程的技術運用進行考量對軟件開發(fā)全過程的技術運用進行考量獨立實踐課培養(yǎng)檢驗學生能力獨立實踐課培養(yǎng)檢驗學生能力n培養(yǎng)學生的研究能力、協(xié)調培養(yǎng)學生的研究能力、協(xié)調協(xié)作能力、軟件系統(tǒng)的分析協(xié)作能力、軟件系統(tǒng)的分析設計能力、編碼能力,解決設計能力、編碼能力,解決問題能力、表述能力等。問題能力、表述能力等。 課程設計的實施課程設計的實施n自由自由2 2人組成課題組人組成課題組n選定一名組長,負責課題小組全面工作選定一名組長,負責課題小組全面工作n根據(jù)小組各成員的基礎和意愿從應用題根據(jù)小組各成員的基礎和意愿從應用題目中選擇進行開發(fā)目中選擇進行開發(fā)獨立實踐課的核心內容獨

6、立實踐課的核心內容n選擇實時操作系統(tǒng)選擇實時操作系統(tǒng)cos-iicos-ii進行分析和應用程序的仿進行分析和應用程序的仿真開發(fā)。真開發(fā)。n基于基于dosdos和和windowswindows操作系統(tǒng)平臺,選用嵌入式實時操操作系統(tǒng)平臺,選用嵌入式實時操作系統(tǒng)作系統(tǒng)cos-iicos-ii的源代碼(非常優(yōu)秀有價值的的源代碼(非常優(yōu)秀有價值的c c源代碼)源代碼)進行分析,理解工作原理和工作流程,參考教材選擇進行分析,理解工作原理和工作流程,參考教材選擇設計自己的應用程序的功能,并編碼實現(xiàn),完成系統(tǒng)設計自己的應用程序的功能,并編碼實現(xiàn),完成系統(tǒng)調試運行。調試運行。n可建立可建立2 2人的課題組進行分

7、工,對每人負責的模塊分別人的課題組進行分工,對每人負責的模塊分別進行應用程序設計或內核分析程序運行監(jiān)測。進行應用程序設計或內核分析程序運行監(jiān)測。n鼓勵選擇有個人創(chuàng)新內容的應用項目完成設計與實現(xiàn)鼓勵選擇有個人創(chuàng)新內容的應用項目完成設計與實現(xiàn)。方案技術內容方案技術內容n了解實時操作系統(tǒng)基本概念、工作原理,明確了解實時操作系統(tǒng)基本概念、工作原理,明確c/os-內核應用的結構、組成方法,理解一個內核應用的結構、組成方法,理解一個實時操作系統(tǒng)及其應用的基本架構。實時操作系統(tǒng)及其應用的基本架構。n掌握掌握c/os-內核的運行流程及應用代碼運行流內核的運行流程及應用代碼運行流程,能夠基于程,能夠基于c/os

8、-內核,利用系統(tǒng)函數(shù)接口,內核,利用系統(tǒng)函數(shù)接口,構建用戶自己的應用程序代碼,實現(xiàn)一個嵌入實時構建用戶自己的應用程序代碼,實現(xiàn)一個嵌入實時應用程序的設計、編碼等開發(fā)工作。應用程序的設計、編碼等開發(fā)工作。n利用提供編譯環(huán)境,編譯、調試、運行應用程序。利用提供編譯環(huán)境,編譯、調試、運行應用程序。 設計實現(xiàn)技術設計實現(xiàn)技術n授課講解內核與應用程序實現(xiàn)技術授課講解內核與應用程序實現(xiàn)技術n參考參考ucos-iiucos-ii系統(tǒng)代碼以及編譯生成技術系統(tǒng)代碼以及編譯生成技術(makemake文件)文件)n課題組選定所重點使用的內核模塊,理解課題組選定所重點使用的內核模塊,理解源碼,確立應用方案源碼,確立應

9、用方案n并用并用c c語言編碼實現(xiàn)語言編碼實現(xiàn)基于基于cos-iicos-ii內核的應用項目推薦內核的應用項目推薦n任務管理實驗任務管理實驗n信號量管理實驗信號量管理實驗n消息隊列實驗消息隊列實驗n時鐘中斷實驗時鐘中斷實驗n任務執(zhí)行時間測定任務執(zhí)行時間測定n生產(chǎn)者消費者算法實驗生產(chǎn)者消費者算法實驗n哲學家就餐實驗哲學家就餐實驗n鼓勵自行選擇感興趣的應用程序鼓勵自行選擇感興趣的應用程序課程安排及成績評估課程安排及成績評估一、一、授課授課8 8學時(學時(7 7、8 8周,周,4 4學時學時/ /周)周)達到目標:達到目標:1)1)明確獨立實踐課內容及要求。明確獨立實踐課內容及要求。2)2)理解內

10、核編程技術及應用系統(tǒng)功能理解內核編程技術及應用系統(tǒng)功能及各個模塊功能及接口,為應用系及各個模塊功能及接口,為應用系統(tǒng)分析設計打基礎。統(tǒng)分析設計打基礎。確立課題小組,提交任務書確立課題小組,提交任務書n上機實踐之前,確定以下內容:上機實踐之前,確定以下內容:n按選擇的項目自由組成一個課題按選擇的項目自由組成一個課題組,討論并確定開發(fā)功能、開發(fā)組,討論并確定開發(fā)功能、開發(fā)環(huán)境及軟件工具、分工交流方式環(huán)境及軟件工具、分工交流方式等。等。課程設計任務書建議內容課程設計任務書建議內容n開發(fā)項目名稱(選擇題目)開發(fā)項目名稱(選擇題目)n主要系統(tǒng)功能以及目標(運行功能描述)主要系統(tǒng)功能以及目標(運行功能描述

11、)n設計要求(內核功能及接口、應用代碼結構)設計要求(內核功能及接口、應用代碼結構)n成果形式(軟件驗收、報告文檔)成果形式(軟件驗收、報告文檔)n基本要求(階段檢查、進度安排、驗收要求)基本要求(階段檢查、進度安排、驗收要求)n主要參考文獻(課件、源代碼、實例程序、教材)主要參考文獻(課件、源代碼、實例程序、教材)n工作量(系統(tǒng)復雜度、創(chuàng)新等)工作量(系統(tǒng)復雜度、創(chuàng)新等)上機時間安排上機時間安排上機共上機共40學時學時安排地點:計算機學院機房(安排地點:計算機學院機房(307、308)安排時間:第安排時間:第9周周第第13周,每周周,每周8學時,學時,分兩次上機。第八周確定具體時間。分兩次上

12、機。第八周確定具體時間。安排批次:安排批次:計科計科0901-3(范艷芳)(范艷芳)計科計科0904-6(牛欣源)(牛欣源)上機實施內容與步驟上機實施內容與步驟v理解掌握內核接口及應用代碼結構理解掌握內核接口及應用代碼結構v以課題組為單位提出應用系統(tǒng)需求和設計以課題組為單位提出應用系統(tǒng)需求和設計建議,完成系統(tǒng)分析設計建議,完成系統(tǒng)分析設計v每人獨立進行模塊詳細設計及編碼調試每人獨立進行模塊詳細設計及編碼調試v完成課程設計報告的編寫完成課程設計報告的編寫v由教師對每組進行階段檢查和項目驗收由教師對每組進行階段檢查和項目驗收獨立實踐課成績評估獨立實踐課成績評估n課程設計任務書課程設計任務書n系統(tǒng)分

13、析設計報告系統(tǒng)分析設計報告n模塊詳細設計報告模塊詳細設計報告 n單元測試系統(tǒng)調試報告、用戶手冊單元測試系統(tǒng)調試報告、用戶手冊 20% n階段檢查(內核、應用代碼、測試)階段檢查(內核、應用代碼、測試) 30%n驗收檢查(運行與界面所有數(shù)據(jù))驗收檢查(運行與界面所有數(shù)據(jù))10%n開卷期末考試開卷期末考試40%階段檢查及內容階段檢查及內容l內核模塊功能、應用接口內核模塊功能、應用接口l應用代碼的算法與數(shù)據(jù)結構應用代碼的算法與數(shù)據(jù)結構l單元調試、系統(tǒng)測試單元調試、系統(tǒng)測試l工作量工作量l創(chuàng)新設計與實現(xiàn)、新編程技術、新設計方法創(chuàng)新設計與實現(xiàn)、新編程技術、新設計方法系統(tǒng)驗收檢查及內容系統(tǒng)驗收檢查及內容n

14、系統(tǒng)運行平穩(wěn)系統(tǒng)運行平穩(wěn)n界面友好界面友好n系統(tǒng)功能設計完備系統(tǒng)功能設計完備n系統(tǒng)調試完備系統(tǒng)調試完備文檔成績評估文檔成績評估n課程設計任務書課程設計任務書n系統(tǒng)分析設計報告系統(tǒng)分析設計報告n模塊詳細設計報告模塊詳細設計報告 n單元測試系統(tǒng)調試報告、用戶手冊單元測試系統(tǒng)調試報告、用戶手冊 20% 評價標準:評價標準:根據(jù)文檔質量(可讀性,可根據(jù)文檔質量(可讀性,可操作性,創(chuàng)新性,完整性,工作量)評操作性,創(chuàng)新性,完整性,工作量)評估文檔成績。估文檔成績。課程設計報告課程設計報告的編寫的編寫 n參見參見課程設計報告撰寫規(guī)范課程設計報告撰寫規(guī)范 n報告每組打印一份上交報告每組打印一份上交課程設計報

15、告封面課程設計報告封面課程名稱課程名稱 題目題目指導教師指導教師設計起止日期設計起止日期系別系別專業(yè)專業(yè)學生姓名學生姓名班級班級/學號學號成績成績課程設計任務書內容課程設計任務書內容n題目:n主要系統(tǒng)功能以及目標:n設計要求n成果形式n基本要求n主要參考文獻n工作量課程設計報告撰寫規(guī)范課程設計報告撰寫規(guī)范1、任務書、任務書2、摘要:功能及實現(xiàn)技術的簡練陳述,不超過、摘要:功能及實現(xiàn)技術的簡練陳述,不超過400字,關鍵詞為字,關鍵詞為4個左右個左右3、目錄、目錄4、正文。正文。正文應按目錄編排依次撰寫,要求論正文應按目錄編排依次撰寫,要求論述清楚,文字簡練通順,插圖簡明,書寫整述清楚,文字簡練通

16、順,插圖簡明,書寫整潔。潔。 5、參考文獻、參考文獻(資料資料) 正文正文 核心文檔內容與格式核心文檔內容與格式一、系統(tǒng)分析與設計功能(小組編寫)一、系統(tǒng)分析與設計功能(小組編寫)1、從所使用內核功能和實現(xiàn)應用程序功能兩個方面說明、從所使用內核功能和實現(xiàn)應用程序功能兩個方面說明2、模塊結構圖(按照內核模塊、應用模塊劃分)、模塊結構圖(按照內核模塊、應用模塊劃分)3、系統(tǒng)實現(xiàn)方案編程工具說明、系統(tǒng)實現(xiàn)方案編程工具說明 4、系統(tǒng)運行界面及功能說明、系統(tǒng)運行界面及功能說明 三、系統(tǒng)模塊設計與調試文檔(設計實現(xiàn)者編寫)三、系統(tǒng)模塊設計與調試文檔(設計實現(xiàn)者編寫) 1、模塊功能、模塊功能 2、模塊接口(

17、被調用、調用關系;調用參數(shù)和返回結果)、模塊接口(被調用、調用關系;調用參數(shù)和返回結果) 3、模塊主要處理步驟及其編碼實現(xiàn)方法、模塊主要處理步驟及其編碼實現(xiàn)方法(主要數(shù)據(jù)結構設計實現(xiàn)、主要算法設計實現(xiàn))(主要數(shù)據(jù)結構設計實現(xiàn)、主要算法設計實現(xiàn)) 4、模塊調試:調試數(shù)據(jù)、調試結果、問題分析、模塊調試:調試數(shù)據(jù)、調試結果、問題分析 四、系統(tǒng)集成調試(小組編寫)四、系統(tǒng)集成調試(小組編寫) 五、用戶使用說明五、用戶使用說明n課程郵箱:課程郵箱:n郵箱密碼:郵箱密碼:welcomen答疑時間:答疑時間:7、8周周一下午周周一下午1:30-3:30第二章第二章 c/os-ii系統(tǒng)分析系統(tǒng)分析n通過分析通

18、過分析c/os-ii內核源代碼程序及其數(shù)據(jù)結構的內核源代碼程序及其數(shù)據(jù)結構的設計,理解掌握一個成熟實時操作系統(tǒng)的基本架構設計,理解掌握一個成熟實時操作系統(tǒng)的基本架構n與本學期操作系統(tǒng)課程的通用操作系統(tǒng)原理及其模與本學期操作系統(tǒng)課程的通用操作系統(tǒng)原理及其模塊設計作比較,從中可發(fā)現(xiàn)其異同。塊設計作比較,從中可發(fā)現(xiàn)其異同。n可根據(jù)可根據(jù)c/os-ii內核的運行流程,掌握操作系統(tǒng)的內核的運行流程,掌握操作系統(tǒng)的動態(tài)工作流程,使得在學習操作系統(tǒng)原理中掌握的動態(tài)工作流程,使得在學習操作系統(tǒng)原理中掌握的基本概念和模塊功能得到一個感性的認識,使各個基本概念和模塊功能得到一個感性的認識,使各個模塊的運行機制及其

19、動態(tài)邏輯關系得到真實的展現(xiàn)。模塊的運行機制及其動態(tài)邏輯關系得到真實的展現(xiàn)。嵌入式系統(tǒng)的應用程序嵌入式系統(tǒng)的應用程序n嵌入式系統(tǒng)的應用程序是與操作系統(tǒng)內嵌入式系統(tǒng)的應用程序是與操作系統(tǒng)內核集成在一起運行,實現(xiàn)對系統(tǒng)監(jiān)控對核集成在一起運行,實現(xiàn)對系統(tǒng)監(jiān)控對象的控制和處理,可基于和利用象的控制和處理,可基于和利用c/os-ii內核,構建用戶自己的應用程序代碼,內核,構建用戶自己的應用程序代碼,實現(xiàn)對特定任務的管理。實現(xiàn)對特定任務的管理。具體實施步驟具體實施步驟 n參考參考c/os-ii系統(tǒng)的內核與實例應用程序的系統(tǒng)的內核與實例應用程序的設計資料和源代碼,以及實例程序中實現(xiàn)編譯設計資料和源代碼,以及實

20、例程序中實現(xiàn)編譯鏈接的鏈接的make文件的設計,課題組選定所修改文件的設計,課題組選定所修改的模塊,確立應用程序的功能設計方案,并用的模塊,確立應用程序的功能設計方案,并用(borland c )編碼實現(xiàn)。)編碼實現(xiàn)。n在這個項目中,利用普通的在這個項目中,利用普通的pc機及其通用的機及其通用的操作系統(tǒng)環(huán)境,就可以自己動手搭建嵌入式系操作系統(tǒng)環(huán)境,就可以自己動手搭建嵌入式系統(tǒng)應用程序的開發(fā)平臺,具有實際開發(fā)操作系統(tǒng)應用程序的開發(fā)平臺,具有實際開發(fā)操作系統(tǒng)軟件的實用價值。統(tǒng)軟件的實用價值。授課基本內容授課基本內容1.1.嵌入式軟件系統(tǒng)。嵌入式軟件系統(tǒng)。主要介紹嵌入式軟件分類、主要介紹嵌入式軟件分

21、類、特點、體系結構、運行流程、操作系統(tǒng)及開特點、體系結構、運行流程、操作系統(tǒng)及開發(fā)工具。發(fā)工具。2.2.嵌入式實時嵌入式實時c/os-iic/os-ii內核及模塊接口。內核及模塊接口。具有具有嵌入式操作系統(tǒng)的組成原理和構成特點,主嵌入式操作系統(tǒng)的組成原理和構成特點,主要包括對多任務、任務的調度及任務間的通要包括對多任務、任務的調度及任務間的通信機制,內存管理,時間管理等重要模塊。信機制,內存管理,時間管理等重要模塊。3.3.嵌入式系統(tǒng)軟件的開發(fā)。嵌入式系統(tǒng)軟件的開發(fā)。主要討論嵌入式系主要討論嵌入式系統(tǒng)開發(fā)工具的選擇、嵌入式軟件開發(fā)模式的統(tǒng)開發(fā)工具的選擇、嵌入式軟件開發(fā)模式的實施、實時軟件分析設

22、計方法的運用。實施、實時軟件分析設計方法的運用。 4.4.仿真開發(fā)環(huán)境仿真開發(fā)環(huán)境borland c/c+ v4.5 borland c/c+ v4.5 及其源代及其源代碼資源。碼資源。介紹介紹c/os-iic/os-ii的內核及應用程序的的內核及應用程序的編譯連接運行環(huán)境,講解應用實例,為編寫編譯連接運行環(huán)境,講解應用實例,為編寫實例程序提供指導。實例程序提供指導。5.5.應用方案設計。應用方案設計。為學生提供應用程序的設計為學生提供應用程序的設計方案,可從中選擇,運用方案,可從中選擇,運用c/os-iic/os-ii提供的環(huán)提供的環(huán)境開發(fā)生成自己的實時應用程序。境開發(fā)生成自己的實時應用程序

23、。1、嵌入式軟件系統(tǒng)、嵌入式軟件系統(tǒng) n軟件與嵌入式軟件軟件與嵌入式軟件 n嵌入式軟件體系結構嵌入式軟件體系結構 軟件與嵌入式軟件軟件與嵌入式軟件n嵌入式軟件分為系統(tǒng)軟件、支撐軟件和應用軟件。嵌入式軟件分為系統(tǒng)軟件、支撐軟件和應用軟件。n系統(tǒng)軟件:控制、管理計算機系統(tǒng)資源。如:嵌入系統(tǒng)軟件:控制、管理計算機系統(tǒng)資源。如:嵌入式操作系統(tǒng)、嵌入式中間件(式操作系統(tǒng)、嵌入式中間件(corbacorba、javajava)等)等n支撐軟件:輔助軟件開發(fā)的工具。如:系統(tǒng)分析設支撐軟件:輔助軟件開發(fā)的工具。如:系統(tǒng)分析設計工具、仿真開發(fā)工具、交叉開發(fā)工具、測試工具、計工具、仿真開發(fā)工具、交叉開發(fā)工具、測試

24、工具、配置管理工具、維護工具等。配置管理工具、維護工具等。n應用軟件:面向應用領域。如:手機軟件、路由器應用軟件:面向應用領域。如:手機軟件、路由器軟件、交換機軟件、飛控軟件等。軟件、交換機軟件、飛控軟件等。n運行平臺來分,嵌入式軟件可以分為運行平臺來分,嵌入式軟件可以分為n運行在開發(fā)平臺上的軟件:設計、開發(fā)、測運行在開發(fā)平臺上的軟件:設計、開發(fā)、測試工具等。試工具等。n運行在嵌入式系統(tǒng)上的軟件:嵌入式操作系運行在嵌入式系統(tǒng)上的軟件:嵌入式操作系統(tǒng)、應用程序、驅動程序及部分開發(fā)工具。統(tǒng)、應用程序、驅動程序及部分開發(fā)工具。 嵌入式軟件體系結構嵌入式軟件體系結構n驅動層驅動層n操作系統(tǒng)層操作系統(tǒng)層

25、n中間件層中間件層n應用層應用層 驅動層驅動層n驅動層是直接與硬件的交互層,對操作系統(tǒng)和驅動層是直接與硬件的交互層,對操作系統(tǒng)和應用提供驅動支持。該層主要包括三種類型的應用提供驅動支持。該層主要包括三種類型的程序:程序:n板級初始化程序:嵌入式系統(tǒng)上電后初始化系統(tǒng)的板級初始化程序:嵌入式系統(tǒng)上電后初始化系統(tǒng)的硬件環(huán)境,包括嵌入式微處理器、存儲器、中斷控硬件環(huán)境,包括嵌入式微處理器、存儲器、中斷控制器、制器、dma、定時器等的初始化。、定時器等的初始化。 n與系統(tǒng)軟件相關的驅動:操作系統(tǒng)和中間件等系統(tǒng)與系統(tǒng)軟件相關的驅動:操作系統(tǒng)和中間件等系統(tǒng)軟件所需的驅動程序。軟件所需的驅動程序。n與應用軟件

26、相關的驅動:應用軟件相關的驅動不一與應用軟件相關的驅動:應用軟件相關的驅動不一定需要與操作系統(tǒng)連接,這些驅動的設計和開發(fā)由定需要與操作系統(tǒng)連接,這些驅動的設計和開發(fā)由應用決定。應用決定。操作系統(tǒng)層操作系統(tǒng)層n操作系統(tǒng)層包括嵌入式內核、嵌入式操作系統(tǒng)層包括嵌入式內核、嵌入式tcp/ip網(wǎng)絡系統(tǒng)、嵌入式文件系統(tǒng)、嵌入式網(wǎng)絡系統(tǒng)、嵌入式文件系統(tǒng)、嵌入式gui系系統(tǒng)和電源管理等部分。統(tǒng)和電源管理等部分。n嵌入式內核:內核是嵌入式操作系統(tǒng)的必備基礎。嵌入式內核:內核是嵌入式操作系統(tǒng)的必備基礎。提供任務管理、內存管理、通信、同步與互斥機提供任務管理、內存管理、通信、同步與互斥機制、中斷管理、時間管理及任務

27、擴展等功能制、中斷管理、時間管理及任務擴展等功能 嵌入式操作系統(tǒng)體系結構嵌入式操作系統(tǒng)體系結構 硬件硬件基本進程管理基本進程管理虛存管理虛存管理i/oi/o和設備管理和設備管理進程間通信進程間通信文件系統(tǒng)文件系統(tǒng)用戶用戶用戶模式用戶模式內核模式內核模式中間件層中間件層n復雜的嵌入式系統(tǒng)中也開始采用中間件技術,主要包括復雜的嵌入式系統(tǒng)中也開始采用中間件技術,主要包括嵌入式嵌入式corba、嵌入式、嵌入式java、嵌入式、嵌入式dcom和面向應和面向應用領域的中間件軟件。用領域的中間件軟件。n為解決分布異構問題,提出中間件為解決分布異構問題,提出中間件(middleware)的概的概念。中間件是位

28、于平臺念。中間件是位于平臺(硬件和操作系統(tǒng)硬件和操作系統(tǒng))和應用之間的和應用之間的通用服務,這些服務具有標準的程序接口和協(xié)議。針對通用服務,這些服務具有標準的程序接口和協(xié)議。針對不同的操作系統(tǒng)和硬件平臺,它們可以有符合接口和協(xié)不同的操作系統(tǒng)和硬件平臺,它們可以有符合接口和協(xié)議規(guī)范的多種實現(xiàn)。議規(guī)范的多種實現(xiàn)。 應用層應用層n應用程序劃分為若干應用任務應用程序劃分為若干應用任務n每個應用任務完成特定的工作,如每個應用任務完成特定的工作,如i/o任務、計算任務、通信任務等任務、計算任務、通信任務等n由操作系統(tǒng)按照搶占優(yōu)先級調度策略調由操作系統(tǒng)按照搶占優(yōu)先級調度策略調度各個任務的運行。度各個任務的運

29、行?;趦群说那度胧綉贸绦蚪Y構基于內核的嵌入式應用程序結構n嵌入式實時內核嵌入式實時內核內核運行機制內核運行機制n應用代碼應用代碼調用內核接口調用內核接口n兩級代碼完成編譯連接兩級代碼完成編譯連接n生成可執(zhí)行程序生成可執(zhí)行程序n在宿主機在宿主機pc機上運行機上運行嵌入式實時內核基礎核心概念嵌入式實時內核基礎核心概念n多任務運行多任務運行n任務的優(yōu)先級任務的優(yōu)先級n搶占式優(yōu)先級調度搶占式優(yōu)先級調度n任務間通信機制任務間通信機制n任務中的時間管理機制任務中的時間管理機制嵌入式實時內核的多任務管理嵌入式實時內核的多任務管理n多任務并發(fā)運行多任務并發(fā)運行n優(yōu)先級最高的就緒任務運行優(yōu)先級最高的就緒任務

30、運行n運行權按優(yōu)先級搶占運行權按優(yōu)先級搶占n每個任務的運行是死循環(huán)每個任務的運行是死循環(huán)任務的優(yōu)先級任務的優(yōu)先級n任務創(chuàng)建時確定優(yōu)先級任務創(chuàng)建時確定優(yōu)先級n優(yōu)先級由優(yōu)先數(shù)表示優(yōu)先級由優(yōu)先數(shù)表示n優(yōu)先數(shù)優(yōu)先數(shù)063搶占式優(yōu)先級調度搶占式優(yōu)先級調度n內核采用的調度算法:搶占式優(yōu)先內核采用的調度算法:搶占式優(yōu)先級調度級調度n每個任務有一個唯一優(yōu)先數(shù)每個任務有一個唯一優(yōu)先數(shù)n優(yōu)先數(shù)小優(yōu)先級高優(yōu)先數(shù)小優(yōu)先級高n一旦優(yōu)先級高任務就緒,立即進行任一旦優(yōu)先級高任務就緒,立即進行任務調度務調度任務間通信機制任務間通信機制n任務間通信機制任務間通信機制n并發(fā)執(zhí)行的任務需要使用互斥資源并發(fā)執(zhí)行的任務需要使用互斥資源

31、n并發(fā)執(zhí)行的任務需要傳遞信息,完成并發(fā)執(zhí)行的任務需要傳遞信息,完成合作。合作。n解決由于任務優(yōu)先級引發(fā)的問題解決由于任務優(yōu)先級引發(fā)的問題時間管理機制時間管理機制n任務中的時間管理機制任務中的時間管理機制n必須令任務自主睡眠若干時間n必須控制任務的執(zhí)行頻率n通過時間延遲控制任務自主睡眠2 2、嵌入式實時、嵌入式實時c/os-iic/os-ii內核模塊接口內核模塊接口 n核心雜項模塊核心雜項模塊n任務管理模塊任務管理模塊n消息隊列模塊消息隊列模塊n信號量模塊信號量模塊n消息郵箱模塊消息郵箱模塊n時間管理模塊時間管理模塊n互斥信號量模塊互斥信號量模塊n內存管理模塊內存管理模塊n事件標志模塊事件標志模

32、塊c/os-iic/os-ii內核源代碼結構內核源代碼結構nsoftware/ c/os-ii/source下:下:n#include softwareucos-iisourceos_core.cn#include softwareucos-iisourceos_flag.cn#include softwareucos-iisourceos_mbox.cn#include softwareucos-iisourceos_mem.cn#include softwareucos-iisourceos_mutex.cn#include softwareucos-iisourceos_q.cn#inc

33、lude softwareucos-iisourceos_sem.cn#include softwareucos-iisourceos_task.cn#include softwareucos-iisourceos_time.c內核模塊及核心技術內核模塊及核心技術n核心雜項模塊:實現(xiàn)臨界區(qū)管理核心雜項模塊:實現(xiàn)臨界區(qū)管理n任務管理模塊:實現(xiàn)任務管理任務管理模塊:實現(xiàn)任務管理n時間管理模塊:實現(xiàn)時間及中斷管理時間管理模塊:實現(xiàn)時間及中斷管理n消息隊列模塊:任務間傳遞多個消息消息隊列模塊:任務間傳遞多個消息n信號量模塊:任務實現(xiàn)信號量及其申請釋放信號量模塊:任務實現(xiàn)信號量及其申請釋放n消息郵箱模塊

34、:任務間傳遞一個消息消息郵箱模塊:任務間傳遞一個消息n互斥信號量模塊:解決優(yōu)先級反轉互斥信號量模塊:解決優(yōu)先級反轉n內存管理模塊:內存塊的分配回收內存管理模塊:內存塊的分配回收核心雜項模塊:臨界區(qū)的實現(xiàn)核心雜項模塊:臨界區(qū)的實現(xiàn)n并發(fā)運行任務需要實現(xiàn)臨界區(qū)。并發(fā)運行任務需要實現(xiàn)臨界區(qū)。n臨界區(qū)必須通過關中斷開中斷實現(xiàn)。關中臨界區(qū)必須通過關中斷開中斷實現(xiàn)。關中斷時長是實時系統(tǒng)的重要指標,越短越好。斷時長是實時系統(tǒng)的重要指標,越短越好。n微處理器具有開關中斷的指令,微處理器具有開關中斷的指令,ucos_iiucos_ii用宏命令實現(xiàn)用宏命令實現(xiàn)n宏調用宏調用os_enter_criticalos_

35、enter_critical()實現(xiàn)進入臨界區(qū)()實現(xiàn)進入臨界區(qū)n宏調用宏調用os_exit_criticalos_exit_critical()實現(xiàn)退出臨界區(qū)()實現(xiàn)退出臨界區(qū)應用示例應用示例os_enter_critical();pc_vectset(0 x08, ostickisr); /*install uc/os-iis clock tick isr*/pc_settickrate(os_ticks_per_sec); /*reprogram tick rate*/os_exit_critical();os_core.c中的系統(tǒng)函數(shù)中的系統(tǒng)函數(shù)nint8u os_tcbinit (i

36、nt8u prio, os_stk *ptos, os_stk *pbos, int16u id, int32u stk_size, void *pext, int16u opt)nvoid os_taskstat (void *pdata)nvoid os_taskidle (void *pdata)nvoid os_sched (void)nstatic void os_inittcblist (void)nstatic void os_inittaskstat (void)nstatic void os_inittaskidle (void)nstatic void os_initrdy

37、list (void)nstatic void os_initmisc (void)nstatic void os_initeventlist (void)nvoid os_eventwaitlistinit (os_event *pevent)nvoid os_eventto (os_event *pevent)nvoid os_eventtaskwait (os_event *pevent)nint8u os_eventtaskrdy (os_event *pevent, void *msg, int8u msk)nvoid os_dummy (void)nint16u osversion

38、 (void)nvoid ostimetick (void)nvoid osstatinit (void)nvoid osstart (void)nvoid osschedunlock (void)nvoid osschedlock (void)nvoid osintexit (void)nvoid osintenter (void)nvoid osinit (void)任務管理與調度任務管理與調度n可將應用分解為多個并發(fā)任務。可將應用分解為多個并發(fā)任務。n每個任務是一個獨立的執(zhí)行線程,應用代碼每個任務是一個獨立的執(zhí)行線程,應用代碼中以函數(shù)為單位實現(xiàn)??梢耘c其它的并發(fā)任中以函數(shù)為單位實現(xiàn)。可以

39、與其它的并發(fā)任務競爭處理機時間。務競爭處理機時間。n每個任務都是可調度的,根據(jù)預定的搶占式每個任務都是可調度的,根據(jù)預定的搶占式優(yōu)先級調度算法競爭系統(tǒng)的執(zhí)行時間。優(yōu)先級調度算法競爭系統(tǒng)的執(zhí)行時間。 任務管理任務管理 n可以通過創(chuàng)建、刪除、睡眠、喚醒、改變優(yōu)先級、可以通過創(chuàng)建、刪除、睡眠、喚醒、改變優(yōu)先級、發(fā)送或等待事件等操作對任務進行管理。發(fā)送或等待事件等操作對任務進行管理。n創(chuàng)建任務時,給任務提供一個名字、一個唯一的創(chuàng)建任務時,給任務提供一個名字、一個唯一的id、一個優(yōu)先級、一個任務控制塊、一個堆棧、一個優(yōu)先級、一個任務控制塊、一個堆棧和一個任務函數(shù)代碼,這些內容構成任務對象和一個任務函數(shù)代

40、碼,這些內容構成任務對象 。任務管理任務管理task.c中的系統(tǒng)函數(shù)中的系統(tǒng)函數(shù)nostaskchangeprio():改變優(yōu)先級:改變優(yōu)先級nostaskcreate():任務創(chuàng)建:任務創(chuàng)建nostaskcreateext():任務創(chuàng)建:任務創(chuàng)建nostaskdel():任務刪除:任務刪除nostaskdelreq():任務刪除請求:任務刪除請求nostaskresume():任務恢復:任務恢復nostaskstkchk():任務堆棧檢查:任務堆棧檢查nostasksuspend():任務掛起:任務掛起nostaskquery():任務查詢:任務查詢任務的調度算法任務的調度算法 n嵌入式操作

41、系統(tǒng)多采用基于嵌入式操作系統(tǒng)多采用基于靜態(tài)優(yōu)先級靜態(tài)優(yōu)先級的可搶占式調度的可搶占式調度。n任務優(yōu)先級是在運行前在任務創(chuàng)建時靜任務優(yōu)先級是在運行前在任務創(chuàng)建時靜態(tài)分配完成,開始運行時,一旦有優(yōu)先態(tài)分配完成,開始運行時,一旦有優(yōu)先級更高的任務就緒,就馬上進行調度級更高的任務就緒,就馬上進行調度 。n函數(shù)源代碼如下:參見源文件函數(shù)源代碼如下:參見源文件core.cvoid osstart (void) int8u y; int8u x; if (osrunning = false) y = osunmaptblosrdygrp; /* find highest prioritys task prio

42、rity number */ x = osunmaptblosrdytbly; ospriohighrdy = (int8u)(y ostcbstkptr=sp;4.清中斷源;清中斷源;5.重新開中斷;重新開中斷;6.執(zhí)行用戶代碼做中斷服務執(zhí)行用戶代碼做中斷服務; 7.調用調用osintexit();8.恢復所有恢復所有cpu寄存器;寄存器;9.執(zhí)行中斷返回指令;執(zhí)行中斷返回指令;時間管理模塊時間管理模塊n時鐘節(jié)拍是特定的周期性中斷。中斷時時鐘節(jié)拍是特定的周期性中斷。中斷時間間隔取決于不同的應用。間間隔取決于不同的應用。nc/os-ii需要提供周期性信號源,用于需要提供周期性信號源,用于實現(xiàn)時

43、間延遲和超時確認(時間為節(jié)拍實現(xiàn)時間延遲和超時確認(時間為節(jié)拍的整數(shù)倍)。的整數(shù)倍)。 時間管理功能時間管理功能 n嵌入式系統(tǒng)中,系統(tǒng)任務和用戶任務經(jīng)嵌入式系統(tǒng)中,系統(tǒng)任務和用戶任務經(jīng)常要隨著時間進行調度和執(zhí)行。常要隨著時間進行調度和執(zhí)行。n任務的執(zhí)行時間、任務的掛起時間、時任務的執(zhí)行時間、任務的掛起時間、時鐘節(jié)拍等等與時間相關聯(lián)的數(shù)據(jù)是控制鐘節(jié)拍等等與時間相關聯(lián)的數(shù)據(jù)是控制實時系統(tǒng)的關鍵參數(shù)實時系統(tǒng)的關鍵參數(shù) 時鐘管理時鐘管理time.c中的系統(tǒng)函數(shù)中的系統(tǒng)函數(shù)nostimedly()nostimedlyhmsm()nostimedlyresume()nostimeget()nostimes

44、et()nostimetick()任務間同步、互斥與通信及其實現(xiàn)任務間同步、互斥與通信及其實現(xiàn)n嵌入式系統(tǒng)中使用任務間原語實現(xiàn)任務嵌入式系統(tǒng)中使用任務間原語實現(xiàn)任務的同步和通信,稱為事件機制,一般包的同步和通信,稱為事件機制,一般包括:括:n信號量信號量n消息郵箱消息郵箱n消息隊列消息隊列n互斥信號量互斥信號量n事件標志組事件標志組事件事件 n在嵌入式實時內核中,事件是指一種表明預在嵌入式實時內核中,事件是指一種表明預先定義的系統(tǒng)事件已經(jīng)發(fā)生的機制。一個事先定義的系統(tǒng)事件已經(jīng)發(fā)生的機制。一個事件就是一個標志,不具備其它信息。件就是一個標志,不具備其它信息。n用于實現(xiàn)任務間的互斥和同步關系控制。

45、用于實現(xiàn)任務間的互斥和同步關系控制。n事件機制用于任務與任務之間、任務與事件機制用于任務與任務之間、任務與isr之間的同步。之間的同步。 用于支持后續(xù)具體同步機制。用于支持后續(xù)具體同步機制。事件控制塊事件控制塊ecbn事件本身的定義事件本身的定義n用于信號量的計數(shù)器用于信號量的計數(shù)器n用于指向郵箱的指針用于指向郵箱的指針n指向消息隊列的指針數(shù)組指向消息隊列的指針數(shù)組n等待該事件的所有任務的列表等待該事件的所有任務的列表 typedef struct void *oseventptr; /* 指向消息或者消息隊列的指針指向消息或者消息隊列的指針 */ int8u oseventtblos_eve

46、nt_tbl_size; /* 等待任務表等待任務表 */ int16u oseventcnt; /* 計數(shù)器計數(shù)器(當事件是信號量時當事件是信號量時) */ int8u oseventtype; /* 時間類型時間類型 */ int8u oseventgrp; /* 等待任務所在的組等待任務所在的組 */ os_event;事件的功能函數(shù)事件的功能函數(shù)n初始化一個事件控制塊,初始化一個事件控制塊,oseventwaitlistinit( )n使一個任務進入就緒態(tài),使一個任務進入就緒態(tài),oseventtaskrdy( ) n使一個任務進入等待某事件發(fā)生狀態(tài)使一個任務進入等待某事件發(fā)生狀態(tài), o

47、seventtaskwait( ) n由于等待超時而將任務置為就緒態(tài)由于等待超時而將任務置為就緒態(tài), oseventto( ) 信號量信號量 n在實時操作系統(tǒng)中,根據(jù)信號量的值,在實時操作系統(tǒng)中,根據(jù)信號量的值,內核可以管理等待使用信號量的任務。內核可以管理等待使用信號量的任務。n一般來說,操作系統(tǒng)對信號量提供初始一般來說,操作系統(tǒng)對信號量提供初始化、等待信號、發(fā)送信號等操作。就是化、等待信號、發(fā)送信號等操作。就是創(chuàng)建信號量、獲?。ㄉ暾垼┬盘柫?、釋創(chuàng)建信號量、獲取(申請)信號量、釋放信號量、刪除信號量、獲取有關信號放信號量、刪除信號量、獲取有關信號量的各種信息等操作。量的各種信息等操作。nc/

48、os-ii中的信號量由兩部分組成:中的信號量由兩部分組成:n一個是信號量的計數(shù)值,它是一個一個是信號量的計數(shù)值,它是一個16位的位的無符號整數(shù)(無符號整數(shù)(0 到到65,535之間);之間);n另一個是由等待該信號量的任務組成的等待另一個是由等待該信號量的任務組成的等待任務表。用戶要在任務表。用戶要在os_cfg.h中將中將os_sem_en開關量常數(shù)置成開關量常數(shù)置成1, 信號量如何創(chuàng)建信號量如何創(chuàng)建n調用調用ossemcreate( )函數(shù),對信號量函數(shù),對信號量初始計數(shù)值賦值。該初始值為初始計數(shù)值賦值。該初始值為0到到65,535之間的一個數(shù)。之間的一個數(shù)。n信號量用來表示一個或者多個事

49、件的發(fā)生,信號量用來表示一個或者多個事件的發(fā)生,初始值應設為初始值應設為0。n信號量用于對互斥資源的訪問,初始值應設信號量用于對互斥資源的訪問,初始值應設為為1。n信號量用來表示允許任務訪問信號量用來表示允許任務訪問n個相同的互個相同的互斥資源,初始值應該是斥資源,初始值應該是n。nc/os-ii提供了提供了5個對信號量操作的函數(shù)。個對信號量操作的函數(shù)。nossemcreate()nossempend()/*等待一個信號量等待一個信號量*/nossempost()/*發(fā)送一個信號量發(fā)送一個信號量 */nossemaccept() /*無等待請求一個信號量無等待請求一個信號量 */nossemq

50、uery() /*查詢信號量當前狀態(tài)查詢信號量當前狀態(tài) */nossempost()函數(shù)可由任務或中斷服務子函數(shù)可由任務或中斷服務子程序代碼調用,程序代碼調用,nossempend()和和ossemquery()函數(shù)只能函數(shù)只能由任務代碼調用由任務代碼調用 。信號量管理信號量管理os_sem.c中的系統(tǒng)函數(shù)中的系統(tǒng)函數(shù)nossemaccept()nossemcreate()nossempend()nossempost()nossemquery()消息郵箱消息郵箱 n郵箱是郵箱是c/os-ii中另一種通訊機制,它可以中另一種通訊機制,它可以使一個任務或者中斷服務子程序向另一個任使一個任務或者中斷

51、服務子程序向另一個任務發(fā)送一個指針型的變量。該指針指向一個務發(fā)送一個指針型的變量。該指針指向一個包含了特定包含了特定“消息消息”的數(shù)據(jù)結構。的數(shù)據(jù)結構。 nc/os-ii提供了提供了5種對郵箱的操作函數(shù):種對郵箱的操作函數(shù):osmboxcreate(),osmboxpend(),osmboxpost(),osmboxaccept(),osmboxquery()函數(shù)函數(shù) 操作函數(shù)及其參數(shù)操作函數(shù)及其參數(shù)os_event *osmboxcreate (void *msg) void *osmboxpend (os_event *pevent, int16u timeout, int8u *err)

52、 int8u osmboxpost (os_event *pevent, void *msg) void *osmboxaccept (os_event *pevent) int8u osmboxquery (os_event *pevent, os_mbox_data *pdata) 消息郵箱消息郵箱os_mbox.c中的系統(tǒng)函數(shù)中的系統(tǒng)函數(shù)nosmboxaccept()nosmboxcreate()nosmboxpend()nosmboxpost()nosmboxquery()消息隊列消息隊列n消息隊列是消息隊列是c/os-ii中另一種通訊機制,中另一種通訊機制,它可以使一個任務或者中斷服

53、務子程序它可以使一個任務或者中斷服務子程序向另一個任務發(fā)送多個指針變量。向另一個任務發(fā)送多個指針變量。 n在使用一個消息隊列之前,必須先建立在使用一個消息隊列之前,必須先建立該消息隊列。這可以通過調用該消息隊列。這可以通過調用osqcreate( )函數(shù),并定義消息隊列中函數(shù),并定義消息隊列中的單元數(shù)(消息數(shù))來完成。的單元數(shù)(消息數(shù))來完成。 c/os-ii消息隊列操作函數(shù)消息隊列操作函數(shù)nosqcreate()/*建立一個消息隊列建立一個消息隊列 */nosqpend()/*等待一個消息隊列中的消息等待一個消息隊列中的消息 */nosqpost()/*向消息隊列發(fā)送一個消息(向消息隊列發(fā)送

54、一個消息(fifo) */nosqpostfront()/*向消息隊列發(fā)送一個消息(后進先出向消息隊列發(fā)送一個消息(后進先出lifo) */nosqaccept()/*無等待地從一個消息隊列中取得消息無等待地從一個消息隊列中取得消息 */nosqflush()/*清空一個消息隊列清空一個消息隊列 */nosqquery() /*查詢一個消息隊列的狀態(tài)查詢一個消息隊列的狀態(tài) */消息隊列消息隊列os_q.c中的系統(tǒng)函數(shù)中的系統(tǒng)函數(shù)nosqaccept()nosqcreate()nosqflush()nosqpend()osqpost()nosqpostfront()nosqquery()內存管理

55、和內存管理和i/o管理管理n嵌入式操作系統(tǒng)的內存管理比較簡單,嵌入式操作系統(tǒng)的內存管理比較簡單,通常不采用虛擬存儲管理,而采用靜態(tài)通常不采用虛擬存儲管理,而采用靜態(tài)內存分配和動態(tài)內存分配,內存分配和動態(tài)內存分配,n固定大小內存分配和可變大小內存分配固定大小內存分配和可變大小內存分配相結合的管理方式。相結合的管理方式。 c/os-ii按分區(qū)來管理按分區(qū)來管理n每個分區(qū)中包含有整數(shù)個大小相同的內存塊。每個分區(qū)中包含有整數(shù)個大小相同的內存塊。nc/os-ii設計分配和釋放內存塊函數(shù)可以分配設計分配和釋放內存塊函數(shù)可以分配和釋放固定大小的內存塊。和釋放固定大小的內存塊。n分配和釋放內存塊函數(shù)的執(zhí)行時間

56、也是固定的,分配和釋放內存塊函數(shù)的執(zhí)行時間也是固定的,這樣確保實時內核的系統(tǒng)性能。這樣確保實時內核的系統(tǒng)性能。 內存控制塊內存控制塊n為了便于內存的管理,在為了便于內存的管理,在c/os-ii中使用內存控制塊中使用內存控制塊(memory control blocks)的數(shù)據(jù)結構來跟蹤每一個)的數(shù)據(jù)結構來跟蹤每一個內存分區(qū),系統(tǒng)中的每個內存分區(qū)都有它自己的內存內存分區(qū),系統(tǒng)中的每個內存分區(qū)都有它自己的內存控制塊??刂茐K。 typedef struct void *osmemaddr; void *osmemfreelist; int32u osmemblksize; int32u osmemn

57、blks; int32u osmemnfree; os_mem;內存的功能內存的功能1.使用一個內存分區(qū)之前,必須先建立該內存使用一個內存分區(qū)之前,必須先建立該內存分區(qū)。調用分區(qū)。調用osmemcreate()函數(shù)完成。函數(shù)完成。2.應用程序可以調用應用程序可以調用osmemget()函數(shù)從已創(chuàng)函數(shù)從已創(chuàng)建的內存分區(qū)中申請一個內存塊。建的內存分區(qū)中申請一個內存塊。3.當用戶應用程序不再使用一個內存塊時,必當用戶應用程序不再使用一個內存塊時,必須及時釋放,并放回對應內存分區(qū)。調用須及時釋放,并放回對應內存分區(qū)。調用osmemput()函數(shù)完成。函數(shù)完成。 n在在c/os-ii 中,可以使用中,可

58、以使用osmemquery()函數(shù)來查詢一個特定內存分區(qū)的有關消息:函數(shù)來查詢一個特定內存分區(qū)的有關消息:n特定內存分區(qū)中內存塊的大小、特定內存分區(qū)中內存塊的大小、n可用內存塊數(shù)可用內存塊數(shù)n正在使用的內存塊數(shù)等信息。正在使用的內存塊數(shù)等信息。n所有這些信息都放在一個叫所有這些信息都放在一個叫os_mem_data的的數(shù)據(jù)結構中數(shù)據(jù)結構中 內存塊管理內存塊管理mem.c中的系統(tǒng)函數(shù)中的系統(tǒng)函數(shù)nosmemcreate()nosmemget()nosmemput()nosmemquery()nvoid os_meminit (void)i/o管理管理n所有的嵌入式系統(tǒng)都包括一些負責實現(xiàn)所有的嵌入

59、式系統(tǒng)都包括一些負責實現(xiàn)輸入輸出操作的模塊。這些輸入輸出操作的模塊。這些i/o操作運操作運行于不同類型的行于不同類型的i/o設備上,系統(tǒng)通過設備上,系統(tǒng)通過這些操作來控制這些操作來控制i/o設備的運行。設備的運行。n通常,設計一個嵌入式系統(tǒng)的目的就是通常,設計一個嵌入式系統(tǒng)的目的就是專門用來控制某些設備,并適應該設備專門用來控制某些設備,并適應該設備的特殊需求。的特殊需求。os_flag.c中的系統(tǒng)函數(shù)中的系統(tǒng)函數(shù)nos_flags osflagaccept (os_flag_grp *pgrp, os_flags flags, int8u wait_type, int8u *err)nos_

60、flag_grp *osflagcreate (os_flags flags, int8u *err)nos_flag_grp *osflagdel (os_flag_grp *pgrp, int8u opt, int8u *err)nos_flags osflagpend (os_flag_grp *pgrp, os_flags flags, int8u wait_type, int16u timeout, int8u *err)nos_flags osflagpost (os_flag_grp *pgrp, os_flags flags, int8u opt, int8u *err)c/o

溫馨提示

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

評論

0/150

提交評論