嵌入式實時作業系統的設計與開發

內容簡介

本書以電子科技大學自主設計的開源作業系統aCoral在ARM9 Mini2440嵌入式平台上的設計過程為思路,逐步介紹aCoral的實現,再延伸到它對多核嵌入式處理器的支持,在此過程中,介紹嵌入式實時作業系統的其他相關技術和理論,比如:實時調度機制與策略、多核計算等,讓學生對其有更全面的認識。此外,全書綜合套用了計算機組成原理、計算機作業系統、彙編語言、C程式設計、數據結構、嵌入式系統概論、ARM處理器及其套用等課程的知識點,力求理論與實踐緊密結合,幫助讀者融匯貫通上述課程的相關知識。本書中的相關代碼請讀者登錄華信教育資源網免費註冊後下載使用。

目錄信息

第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

相關詞條

熱門詞條

聯絡我們