3dwoo大學簡體電腦書店
嵌入式實時操作系統的設計與開發
( 簡體 字)
作者:廖勇類別:1. -> 電腦組織與體系結構 -> 嵌入式系統
出版社:電子工業出版社嵌入式實時操作系統的設計與開發 3dWoo書號: 40987
詢問書籍請說出此書號!
有庫存
NT售價: 210
出版日:3/1/2015
頁數:292
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787121255236 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1章 概論 1
1.1 輪詢系統(Polling Systems) 2
1.2 前后臺系統(Foreground Background Systems) 2
1.3 嵌入式操作系統 3
1.3.1 簡單內核 3
1.3.2 RTOS結構 4
1.3.3 多核RTOS 5
1.4 從裸板開始啊啊 6
1.5 aCoral 6
1.6 本書結構 7
習題 8
第2章 輪詢系統 9
2.1 輪詢系統概述 9
2.1.1 程序框架 9
2.1.2 調度 9
2.1.3 典型系統 11
2.2 搭建開發環境 11
2.3 啟動Mini2440 14
2.3.1 為什么需要啟動 14
2.3.2 啟動流程 15
2.4 輪詢的實現 29
習題 30
第3章 前后臺系統 31
3.1 前后臺結構 31
3.1.1 前后臺系統的應用 31
3.1.2 運行方式 32
3.1.3 系統性能 32
3.1.4 前后臺交換 33
3.1.5 典型系統 34
3.2 中斷和中斷服務 34
3.2.1 中斷 34
3.2.2 中斷服務 35
3.3 ARM的中斷機制 35
3.4 一個簡單的S3C2440中斷服務 35
3.4.1 中斷返回 36
3.4.2 中斷注冊 37
3.4.3 狀態保存和現場恢復 39
3.5 前后臺的實現 40
3.5.1 啟動Mini2440 40
3.5.2 后臺主循環 40
3.5.3 前臺中斷處理 43
習題 44
第4章 內核基礎 46
4.1 基本術語 46
4.2 RTOS的特點 47
習題 50
第5章 搭建aCoral交叉開發環境 51
5.1 安裝Ubuntu 51
5.2 安裝交叉開發工具鏈 52
5.2.1 使用制作好的工具鏈 52
5.2.2 自己制作工具鏈 52
5.3 構建aCoral項目文件 53
習題 55
第6章 編寫內核 56
6.1 aCoral線程 56
6.1.1 描述線程 57
6.1.2 線程優先級 65
6.2 調度策略 67
6.2.1 線程調度分層結構 67
6.2.2 調度策略分類 67
6.2.3 描述調度策略 68
6.2.4 查找調度策略 69
6.2.5 注冊調度策略 70
6.3 基本調度機制 72
6.3.1 創建線程 72
6.3.2 調度線程 85
6.3.3 線程退出 96
6.3.4 其他基本機制 99
6.4 事務處理機制 106
6.4.1 中斷管理 106
6.4.2 時鐘管理 121
6.5 內存管理機制 124
6.5.1 主流內存管理機制 125
6.5.2 嵌入式系統對內存管理的特殊要求 126
6.5.3 aCoral的內存管理機制 127
6.5.4 aCoral內存管理初始化 150
6.6 線程交互機制 151
6.6.1 互斥機制 152
6.6.2 同步機制 166
6.6.3 通信機制 168
習題 179
第7章 啟動內核 181
7.1 RTOS的引導模式 181
7.1.1 需要Bootloader的引導模式 181
7.1.2 不需要Bootloader的引導模式 182
7.2 Bootloader 182
7.3 aCoral環境下啟動2440 185
7.4 啟動aCoral 191
習題 199
第8章 移植內核 200
8.1 硬件抽象層移植 200
8.1.1 啟動接口 201
8.1.2 中斷接口 201
8.1.3 線程相關接口 203
8.1.4 時間相關接口 204
8.1.5 內存相關接口 205
8.1.6 開發板相關接口 205
8.1.7 多核(CMP)相關接口 205
8.1.8 移植文件規范 207
8.1.9 移植實例 208
8.2 項目移植 216
8.2.1 生成對應開發板的項目 216
8.2.2 添加到官網 220
習題 221
第9章 編譯與運行內核 222
9.1 編譯aCoral 222
9. 2 燒寫aCoral到開發板ARM Mini2440 223
9.2.1 安裝串口工具 223
9.2.2 安裝燒寫工具(DNW工具) 224
9.2.3 燒寫與運行aCoral 225
習題 226
第10章 實時調度策略 227
10.1 任務調度策略基本概念 227
10.2 任務調度策略 228
10.2.1 典型實時調度策略 229
10.2.2 基于公平策略的時間片輪轉調度 230
10.2.3 基于優先級的可搶占調度 230
10.2.4 RM調度算法 232
10.2.5 EDF調度算法 243
10.3 優先級反轉及解決辦法 245
10.3.1 優先級繼承 246
10.3.2 優先級天花板 248
10.4 提高系統實時性的其他措施 251
10.4.1 評價RTOS的性能指標 251
10.4.2 提高實時任務響應性的措施 252
10.5 多核/處理器調度 261
10.5.1 多核/處理器技術 261
10.5.2 多核/處理器調度策略 263
習題 264
第11章 支持多核 266
11.1 ARM11 MPCore 266
11.2 多核運行機制 267
11.3 aCoral對多核機制的支持 269
11.3.1 多核啟動 269
11.3.2 多核調度 276
習題 281
參考文獻 282
本書以電子科技大學自主設計的開源操作系統aCoral在ARM9 Mini2440嵌入式平臺上的設計過程為思路,逐步介紹aCoral的實現,再延伸到它對多核嵌入式處理器的支持,在此過程中,介紹嵌入式實時操作系統的其他相關技術和理論,比如:實時調度機制與策略、多核計算等,讓學生對其有更全面的認識。此外,全書綜合應用了計算機組成原理、計算機操作系統、匯編語言、C程序設計、數據結構、嵌入式系統概論、ARM處理器及其應用等課程的知識點,力求理論與實踐緊密結合,幫助讀者融匯貫通上述課程的相關知識。本書中的相關代碼請讀者登錄華信教育資源網(www.hxedu.com.cn)免費注冊后下載使用。

在后PC 時代的今天,嵌入式操作系統琳瑯滿目,在各行各業已有廣泛應用,嵌入式
Linux、VxWorks、INTEGRITY、Nuclear、DeltaOS、 pSOS+、VRTX、QNX、RTEMS、Cisco-IOS、
ERISON-EPOC、uC/OS、uC/OSII、uC/OSIII、TinyOS、T-kernel、 Windows CE、Windows mobile、
Symbian、Android、Apple-IOS在一些大學,本科生編寫一個簡易的操作系統內核也不是
什么難事。此外,市面上也已出版了一些關于嵌入式操作系統(或者操作系統)設計和代碼
實現的書籍,比如,1999 年出版的《MicroC/OS-II:The Real-Time Kernel》,2005 年出版的《自
己動手寫操作系統完全版》,2011 年出版《一步步寫嵌入式操作系統:ARM 編程的方法與實
踐》等。為什么還要撰寫一本關于嵌入式操作系統設計的書呢?其目是從本科教學特點出發,
順應國內高校“工程教育”的發展趨勢(比如:“卓越工程師計劃”的實施),根據計算機專
業及相關專業嵌入式方向系列教材建設的需要,將課程知識體系與操作系統設計實現過程有
機結合,讓學生更好地理解課程知識點,通過操作系統在具體嵌入式平臺ARM9 Mini2440 的
設計與實現,融會貫通相關核心知識點,進而激發讀者自己設計操作系統的熱情(寫操作系
統不是最終目的),其最終目的是通過寫的過程來鍛煉學生的系統設計能力、工程實現能力、
分析與解決問題能力,充分體現教育家約翰.杜威先生“To learn by doing”的教學理念。
本書以aCoral 的設計過程為線索,首先從ARM9 Mini2440 的裸板串口驅動開始,介紹如
何用匯編語言實現一個輪詢結構的簡單嵌入式系統。然后,引入中斷機制,介紹如何實現一
個前后臺系統,以滿足用戶更為復雜的應用要求。在前兩步的基礎上,一步一步敘述aCoral
實現細節,比如:從任務定義開始,逐步啟發讀者思考如何用C 語言描述一個任務、創建任
務,如何將任務掛載到就緒隊列上、從就緒隊列中找到最高優先級任務、在ARM9 Mini2440
上實現任務切換、觸發任務調度、協調任務執行、響應用戶的外部請求、通過時鐘推動操作
系統運行、啟動內核、移植內核、搭建aCoral 的交叉開發環境、編譯與運行aCoral、支持多
核(以ARM 公司ARM11MPCORE 的四核心嵌入式處理器為例)等等。全書將原理與代碼緊
密結合;從工程實踐中發現問題,在理論上對其進行詳細分析并最終指導操作系統設計與實
現;此外,本書還對嵌入式實時操作系統編寫過程中設計的相關知識進行了整合。
貫穿本書的嵌入式實時操作系統源代碼來自電子科技大學嵌入式實時計算實驗室設計的
aCoral,參考了三星公司ARM9 S3C2440A、S3C2410A 芯片手冊、ARM11MPCORE 芯片手冊、
Linux 開源社區、實時系統及實時調度學術論文等資料。此外,還借鑒了邵貝貝教授翻譯Jean
J. Labrosse 先生的《MicroC/OS-II:The Real-Time Kernel》、C.M.Krishna 和KANG G. Shin 的
《Real-Time Computing》、羅蕾教授的《嵌入式實時操作系統及應用開發(第4 版)》、桑楠教
授的《嵌入式系統原理及應用開發技術(第2 版)》、李無言老師的《一步步寫嵌入式操作系
統:ARM 編程的方法與實踐》,于淵老師寫的《自己動手寫操作系統完全版》等書籍。
本書在撰寫過程中得到了電子工業出版社“卓越工程師計劃”系列教材建設項目的支持
和電子科技大學教務處特色教材建設項目的支持,作者對此深表感謝。此外,本書的撰寫得
到了電子科技大學計算機學院熊光澤教授、羅克露教授、羅蕾教授,信息與軟件學院桑楠教
·IV·
授、雷航教授、蔡竟業教授、江維副教授、陳麗蓉副教授、李允副教授、徐旭如老師,廈門
大學于杰老師,電子工業出版章海濤老師、裴杰老師的幫助,他們為本書的撰寫提供了許多
寶貴的意見和建議。
感謝電子科技大學實時計算實驗室的研究生楊茂林、蔣世勇、李恒瑞、劉黎民、張晉川、
陳澤瑋、羅超、Furkan Hassan Saleh Rabee 以及賓夕法尼亞大學研究生廖聰、南加州大學研究
生李龍杰、國防科技大學研究生龔俊如、上海交通大學讀研的羅赟、復旦大學研究生胡偉松、
人民大學研究生范旭、清華大學研究生陸文詳、核九院研究生張朝,電子科技大學實時計算
實驗室學習的本科生蘭宇航、陳維偉、胡斌,華為成都研究所軟件工程師徐新、華為深圳研
究所軟件工程師陳朱旭、百度軟件研發工程師李天華、三星公司南京研究所軟件研發工程席
臣、微軟蘇州研究院林添、美團網研發工程師許斌、美國云控公司成都研發中心謝鑫、美國
豪威公司上海研發中心周強等,他們在作者的引導下,從本科二年級開始學習嵌入式實時系
統,并在本科期間圍繞(ARM9 Mini2440 + C/OS-II + LWIP + GUI + aCoral + Linux)平臺
上做過系列實驗、課程設計、畢業設計,還在此平臺上實現了智能家居及安防系統、智慧交
通流量信息采集與顯示系統、學習型遙控器、網絡收音機、智能小車防撞系統、四軸飛行器
等本科創新/實踐項目(其中智能家居及安防系統獲得了2010 年電子科技大學“銀杏黃”項
目最佳獎,四軸飛行器獲得全國一等獎),他們為aCoral 代碼分析及驗證做了許多細節工作。
感謝在上海自主創業的申建晶先生,他與作者一起于2009 年創建了開源嵌入式實時多
核操作系統項目aCoral(www.aCoral.org),并為該項目做出了巨大貢獻,同時為本科教育和
研究生教育中付出了許多寶貴的時間。感謝在成都自主創業的劉堅、朱葛、鄭亞斌,感謝完
美世界的高攀、蘭王靖輝、建設銀行四川分行閆志強、美國美滿電子(Marvell)上海研究所
的陳勇明及成都研究所的魏守峰、程潛、任艷偉、淘寶杭州研發中心的張林江等曾在電子科
技大學實時計算實驗室學習過的同志們,他們在校期間陸續加入項目組,與作者共同探討嵌
入式操作系統相關的技術、教學改革、本科生學習及就業等問題,這為本書結構的擬定、撰
寫方法等提供了思路和素材。
特別感謝我的父母、妻子和兒子,他們在本書撰寫過程中給予了極大鼓勵和支持。
由于作者知識和水平有限,書中不足之處在所難免,懇求各位專家及讀者賜正。
作 者
pagetop