《普通高等“十二五”規劃教材·電子信息科學與工程類專業規劃教材:嵌入式操作系統原理及應用》重點講述嵌入式操作系統原理及應用。全書共分14章,包括嵌入式操作系統基礎知識,μCOS-Ⅱ在FPGA平臺上的移植,嵌入式操作系統的構成元素,嵌入式操作系統一般的啟動方式,任務管理的各個組成模塊及其實現方式,任務間通信方式及其實現,內存管理方式及其實現,中斷與異步通信的方式及其實現,Linux內核及驅動編寫,μClinux內核及驅動編寫,Android體系結構及藍牙驅動編寫,Windows CE內核及驅動編寫等內容。《普通高等“十二五”規劃教材·電子信息科學與工程類專業規劃教材:嵌入式操作系統原理及應用》最后還提供了實驗指導,供讀者參考。
《普通高等“十二五”規劃教材·電子信息科學與工程類專業規劃教材:嵌入式操作系統原理及應用》內容新穎、層次清晰,可作為高等院校本科、研究生各相關專業的程序設計教材,也適合嵌入式系統開發人員自學使用。
嵌入式系統與計算機系統的起源一樣久遠,由于嵌入式系統的硬件形形色色,軟件也帶著各個行業的不同特點,因此一直沒有像計算機系統一樣被大眾普遍認識。尤其是嵌入式操作系統雖然也風風雨雨發展了很多年,但是由于應用的范圍比計算機操作系統小,因此也不被大眾所了解。
可是隨著計算機系統發展受到了固有統一形態的限制,嵌入式系統在近幾個世紀呈現出了蓬勃的發展勢頭。隨著物聯網的概念出現,嵌入式系統將成為這一輪科技革命的主力軍。
嵌入式操作系統也隨著要求軟件的編寫更加簡單和實現多硬件平臺的可跨越而逐漸成熟起來。
從想開設嵌入式操作系統的課程時苦尋教材而不見,到萌發了自己編寫一本專門介紹嵌入式操作系統原理的教材的思想,不過一兩年時間。在和學生們的探討中,感到必須編寫一本高水平的、內容新穎全面的教材,用于指導學生的學習。
本書重點講述嵌入式操作系統原理,尤其是不同于計算機操作系統的一些原理。另外,由于有些嵌入式系統的規模較小,需要自己編寫操作系統,因此側重于介紹怎樣編寫嵌入式操作系統內核。同時,本書介紹了uCOS2在Xilinx FPGA 上的移植,讓讀者了解如何移植一個已有的嵌入式操作系統去某一個硬件平臺。最后還介紹了各種常用的嵌入式操作系統,包括Linux、uClinux、Andriod、Windows CE等。這些常用的嵌入式操作系統的介紹,主要以編寫某設備驅動為主線,讓讀者大略了解一個嵌入式操作系統的組織。
本書內容可分為兩大部分。
第1~10章為第一部分,屬于嵌入式操作系統原理。其中,第1章介紹嵌入式操作系統基礎知識,如嵌入式操作系統的發展歷史、分類、編寫方式。第2章詳細介紹本書嵌入式操作系統實驗的運行平臺,包括uCOS2和Xilinx公司的FPGA平臺,以及uCOS2在FPGA平臺上的移植,讓讀者體會嵌入式操作系統的具體硬件接口設計。第3章介紹嵌入式操作系統的體系結構和基本概念。第4章詳細介紹嵌入式操作系統的構成元素——各種常用數據結構和其在嵌入式操作系統中的使用方式。第5章詳細介紹嵌入式操作系統的一般啟動方式,包括bootloader的編寫方式,uCOS2、uClinux的啟動方式和用到的數據結構。第6章詳細介紹任務管理的各個組成模塊及其實現方式。第7章詳細介紹嵌入式操作系統中資源管理的各種方式及實現方式,并通過對uCOS2的改造,講述如何在已有嵌入式操作系統中實現所需要功能模塊做擴展。第8章詳細介紹任務間通信方式及其實現。第9章詳細介紹內存管理方式及其實現。第10章詳細介紹中斷與異步通信的方式及其實現。
第11~14章為第二部分,屬于常用嵌入式操作系統的介紹和應用。其中,第11章介紹Linux內核及驅動編寫。第12章介紹uClinux內核及驅動編寫。第13章介紹Android體系結構及藍牙驅動編寫。第14章介紹Windows CE內核及驅動編寫。
本書最后還提供了實驗指導,供讀者參考。
本書內容新穎,立足點高,同時力求重點突出,層次清晰,語言通俗易懂,內容覆蓋面廣。學習本書需要有一定的C語言閱讀能力和硬件的入門知識。本書可作為高等院校本科、研究生各相關專業(如嵌入式系統、物聯網、計算機、電子信息、通信)的程序設計教材,也適合于程序開發人員培訓、廣大嵌入式系統技術愛好者自學使用。
根據我們的教學體會,本書的教學可以安排為32~48學時。如果安排的學時較少,可以根據學生的水平適當刪減第二部分的內容。
本書提供的實驗實例全部在目標硬件上調試通過。
盡管我們在寫作過程中投入了大量的時間和精力,但由于水平有限,錯誤和不足之處仍在所難免,敬請讀者批評指正。我們會在適當時間對本書進行修訂和補充。
本書第2章及實驗指導由張川同學編寫,第11章由陳連升同學組織內容,第13章由丁亞周同學組織部分內容,全書的實驗要感謝Digilent公司的趙峰經理和戴碩先生。Digilent公司的趙峰經理審閱了本書并提供了寶貴的修改意見,Xilinx公司的謝凱年經理對本書結構提出了許多寶貴意見,在此一并表示感謝。還要感謝北京工業大學嵌入式系統與軟件系的全體師生,本書的最終出版得到了他們的幫助。北京工業大學研究生教材建設基金對本書的編寫進行了資助。最后還要感謝我的家人對我的支持,感謝電子出版社的董亞峰編輯為本書的編寫和出版付出的辛勤勞動,以及感謝張杰、武翠梅同學的幫助。
嚴海蓉
2012年2月
于北京工業大學
第1章 緒論
1.1 嵌入式操作系統發展歷史
1.2 嵌入式操作系統分類
1.3 嵌入式操作系統的組成
1.4 目前主流嵌入式操作系統概述
1.5 嵌入式操作系統的發展趨勢
1.6 編寫嵌入式操作系統的方法
習題
第2章 嵌入式操作系統的運行環境
2.1 運行平臺介紹
2.2 嵌入式操作系統文件構成與接口定義
2.3 嵌入式操作系統下載與運行
第3章 嵌入式操作系統
3.1 嵌入式操作系統的定義
3.2 嵌入式操作系統的體系結構
3.2.1 整體型
3.2.2 層次型
3.2.3 微內核
3.2.4 客戶-服務器
3.3 嵌入式操作系統組成要素及概念
習題
第4章 嵌入式操作系統常用數據結構
4.1 數組
4.2 指針
4.3 結構體
4.4 鏈表
4.5 差分鏈表
4.6 樹
4.7 位圖
4.8 文件
4.9 內核線程
習題
第5章 嵌入式操作系統初始化
5.1 bootloader
5.1.1 bootloader裝在哪里
5.1.2 bootloader的啟動過程
5.1.3 基于MicroBlaze軟核處理器的bootloader設計
5.2 嵌入式操作系統初始化數據結構及主要操作
5.2.1 uCOS主要數據結構及操作
5.2.2 uCOS系統初始化
5.2.3 uClinux的系統初始化
習題
第6章 任務管理
6.1 任務和任務優先級
6.2 任務狀態
6.3 任務控制塊鏈
6.4 任務的生成
6.5 任務的掛起
6.6 任務的喚醒
6.7 任務的刪除
6.8 任務調度
6.9 任務編程
習題
第7章 資源管理
7.1 資源共享、互斥和任務同步
7.2 臨界區
7.3 信號量
7.4 信號量的使用
7.5 優先級反轉
7.6 優先級繼承協議
7.7 在uCOS2上實現優先級繼承協議
7.8 優先級天花板協議
7.9 在uCOS2上擴展優先級天花板協議
習題
第8章 任務間通信
8.1 通信實現的基本數據結構
8.2 信號量--資源
8.3 消息隊列
8.4 郵箱
8.5 管道
8.7 事件集
習題
第9章 內存管理
9.1 內存保護
9.2 內存管理機制
9.2.1 固定大小存儲區管理
9.2.2 可變大小存儲區管理
9.2.3 uCOS實現內存管理的方式
9.2.4 Linux的內存機制
9.2.5 uClinux下虛擬內存機制的屏蔽
習題
第10章 中斷與異步信號
10.1 中斷
10.2 中斷向量表
10.3 中斷處理過程
10.3.1 中斷檢測
10.3.2 中斷響應
10.3.3 中斷處理
10.3.4 MicroBlaze中斷管理
10.3.5 uCOS2中斷服務程序實現
10.4 時鐘中斷和時鐘管理
10.5 軟中斷
10.6 異步信號系統
10.7 中斷性能評價指標
習題
第11章 Linux
11.1 Linux內核
11.2 Linux文件結構模型
11.3 Linux驅動編寫
11.4 Linux驅動的編寫實例--字符設備驅動
11.4.1 字符設備驅動原理分析
11.4.2 字符設備驅動數據結構
11.4.3 字符設備驅動的編寫步驟
11.4.4 驅動程序的編譯與裝載
第12章 uClinux
12.1 uClinux內核
12.2 uClinux移植
12.3 uClinux驅動編寫
第13章 Android
13.1 Android系統構架
13.2 Android SDK開發環境
13.3 Android平臺開發環境搭建
13.4 Andriod藍牙驅動編寫
13.5 Android平臺藍牙編程
第14章 Windows CE
14.1 內核與驅動
14.2 Windows CE系統驅動簡介
14.3 Windows CE驅動程序實例
實驗指導
實驗一 移植uCOS2到FPGA上
實驗二 任務的建立與多任務的執行
實驗三 系統中斷機制的建立與使用
實驗四 蓄水池綜合實驗