實時嵌入式系統:設計原則與工程實踐

實時嵌入式系統:設計原則與工程實踐

《實時嵌入式系統:設計原則與工程實踐》是2017年1月清華大學出版社出版的圖書,作者是[美]Xiaocong Fan 。

基本介紹

  • 中文名:實時嵌入式系統:設計原則與工程實踐
  • 作者:[美]Xiaocong Fan
  • 出版社:清華大學出版社
  • 出版時間:2017年1月
  • 定價:79.8 元
  • ISBN:9787302455592
內容簡介,圖書目錄,

內容簡介

本書融入了實時系統、嵌入式系統和軟體工程的新概念和新主題,為開發實時嵌入式套用軟體描繪了一幅完整的圖像。在本書中,你不僅可以全面地理解與微處理器、中斷和系統引導過程相關的概念,領略到實時建模和調度的重要性,而且也將學習建模文檔、建模分析、設計模式和標準的一致性等軟體工程實踐。
本書分為四個部分,幫助你學習嵌入式系統的關鍵概念;第Ⅰ部分介紹了開發過程,包括微處理器和中斷章節——這是軟體工程師的基本主題;第Ⅱ部分專門介紹了實時系統的建模技術;第Ⅲ部分討論了軟體體系架構的設計;第Ⅳ部分檢驗了軟體的實現,並重點關注POSIX兼容的作業系統。

圖書目錄

第Ⅰ部分 引 言
第1章 嵌入式系統和實時系統導論 1
1.1 嵌入式系統 3
1.2 實時系統 4
1.2.1 軟實時系統 4
1.2.2 硬實時系統 5
1.2.3 實時系統的範圍 6
1.3 案例分析:雷達系統 7
1.4 習題 10
第2章 跨平台開發 11
2.1 跨平台開發流程 11
2.2 硬體架構 12
2.3 軟體開發 13
2.3.1 軟體設計 13
2.3.2 系統程式語言C/C++ 13
2.3.3 測試硬體無關模組 18
2.4 生成目標映像 18
2.4.1 交叉開發工具鏈 18
2.4.2 可執行和連結格式 21
2.4.3 記憶體映射 26
2.4.4 案例研究:製作QNX映像 28
2.5 轉移執行檔對象到
目標平台 29
2.6 在目標系統上的集成測試 30
2.7 系統生產 30
2.8 習題 31
第3章 微處理器入門 33
3.1 微處理器簡介 33
3.1.1 常用的微處理器 33
3.1.2 微處理器特性 35
3.2 PIC18F8720微型晶片 38
3.2.1 存儲器組織 39
3.2.2 字寫模式 41
3.2.3 位元組選擇模式 43
3.2.4 位元組寫模式 45
3.3 Intel 8086 46
3.3.1 存儲器組織 47
3.3.2 獨立的I/O地址空間 48
3.3.3 存儲器地址空間 50
3.3.4 等待狀態 52
3.4 Intel Pentium 53
3.4.1 匯流排狀態轉換 56
3.4.2 存儲器組織 60
3.5 ARM926EJ-S 61
3.6 習題 64
第4章 中斷 67
4.1 中斷導論 67
4.2 外部中斷 67
4.2.1 非向量中斷 68
4.2.2 PIC和向量中斷 69
4.3 軟體中斷 74
4.4 內部中斷 75
4.5 ISR的設計模式 75
4.5.1 一般的ISR設計模式 75
4.5.2 具有伺服器任務的ISR 76
4.5.3 ISR鏈 77
4.5.4 ISR級聯 78
4.5.5 與ISR進行數據共享 79
4.6 中斷回響時間 81
4.7 案例分析:x86 82
4.7.1 硬體中斷 84
4.7.2 綜合匯總 85
4.8 案例研究:ARM處理器 86
4.8.1 硬體中斷 87
4.8.2 綜合匯總 90
4.9 習題 91
第5章 嵌入式系統的引導過程 93
5.1 系統引導載入程式 93
5.2 系統的引導過程 94
5.2.1 載入嵌入式軟體 94
5.2.2 準備執行嵌入式軟體 95
5.3 案例研究:AT91SAM9G45
引導過程 96
5.4 載入嵌入在作業系統映像中的
ELF目標檔案 96
5.5 案例研究:基於QNX嵌入式
系統的引導過程 97
5.6 習題 99
第Ⅱ部分 實時系統建模
第6章 UML結構建模基礎 103
6.1 統一建模語言 103
6.2 類圖和類建模 104
6.2.1 類 106
6.2.2 實例層次的關係 109
6.2.3 依賴關係 121
6.2.4 泛化關係 125
6.3 類建模原則 128
6.3.1 模型演化 128
6.3.2 子類化 130
6.3.3 最小信息冗餘 131
6.3.4 重構 134
6.4 對象圖 137
6.5 包圖 138
6.5.1 包引入 138
6.5.2 包合併 139
6.6 習題 141
第7章 UML體系架構建模 143
7.1 體系架構的抽象層次 143
7.2 UML結構圖 144
7.3 建模組件 148
7.4 子系統建模 150
7.5 完整系統建模 153
7.6 部署圖 154
7.7 習題 155
第8章 UML行為建模的基礎 157
8.1 用例圖和用例建模 157
8.1.1 用例圖 157
8.1.2 用例描述 160
8.1.3 用例層次 161
8.2 序列圖 162
8.3 活動圖 167
8.4 習題 171
第9章 UML中有狀態行為的建模 173
9.1 狀態機圖的基礎 173
9.1.1 狀態 173
9.1.2 轉移和事件 174
9.1.3 偽狀態 175
9.1.4 用狀態機對網路協定建模 176
9.2 複合狀態 178
9.2.1 進入點、退出點與歷史 179
9.2.2 並發 180
9.3 狀態行為的繼承 181
9.4 有狀態對象時序圖 183
9.5 舉例:雷達系統有狀態行為
的建模 184
9.5.1 收發機建模 185
9.5.2 鏈路驅動器的建模 186
9.5.3 指揮訊息器的建模 188
9.6 習題 189
第10章 實時UML:通用資源
建模 191
10.1 實時UML配置檔案 191
10.2 資源建模 194
10.2.1 UML核心資源模型 195
10.2.2 動作和動作執行 196
10.2.3 受保護資源的UML構
造型 197
10.2.4 資源使用 199
10.2.5 資源-客戶圖 200
10.3 時間建模 201
10.3.1 時間觀念 201
10.3.2 定時裝置 202
10.3.3 時間建模構造型 204
10.4 並發建模 206
10.5 習題 209
第11章 實時UML:模型分析 211
11.1 時序約束的啟發 211
11.2 RT-UML配置檔案可調度性
建模子配置檔案 214
11.2.1 RT-UML配置檔案中的可
調度性分析的元概念 214
11.2.2 可調度性構造型 219
11.2.3 使用可調度性子配置
檔案 221
11.3 RT-UML配置檔案性能建模
子配置檔案 223
11.3.1 RT-UML配置檔案中的性
能分析的元概念 223
11.3.2 性能構造型 225
11.3.3 使用性能子配置檔案 227
11.4 習題 231
第Ⅲ部分 實時系統設計
第12章 實時嵌入式系統軟體
架構 237
12.1 實時任務 237
12.1.1 最壞情況下的任務執行
時間 238
12.1.2 任務規範 239
12.1.3 任務時序圖 239
12.1.4 最壞情況下的回響時間 241
12.1.5 任務實現 242
12.2 輪詢架構 242
12.2.1 案例研究:體溫計 242
12.2.2 通用輪詢架構 250
12.2.3 最壞情況下的事件回響
時間 253
12.3 帶有中斷的輪詢 254
12.3.1 案例研究:西蒙遊戲 254
12.3.2 通用架構 257
12.3.3 最壞情況下的事件回響
時間 259
12.4 基於佇列的架構 260
12.4.1 非搶占式FIFO佇列 261
12.4.2 非搶占式優先佇列 262
12.5 習題 264
第13章 POSIX和RTOS 267
13.1 POSIX簡介 267
13.1.1 POSIX進程和執行緒 268
13.1.2 POSIX實時擴展 269
13.1.3 POSIX的兼容性和一
致性 275
13.2 任務的靜態結構和動態
行為 276
13.2.1 一般任務結構 276
13.2.2 任務狀態轉移 278
13.3 實時作業系統 279
13.4 POSIX實時調度策略 282
13.4.1 FIFO調度策略 282
13.4.2 輪詢調度策略 283
13.4.3 偶發伺服器調度策略 284
13.5 其他實時調度策略 286
13.5.1 最小鬆弛度優先 286
13.5.2 最早截止期限優先 287
13.5.3 截止期限單調分配的
調度 288
13.5.4 速率單調分配的調度 288
13.6 習題 289
第14章 多任務 291
14.1 多任務簡介 291
14.2 多任務設計 292
14.2.1 任務標識 292
14.2.2 任務轉換 295
14.2.3 任務參數估計 299
14.3 多任務資源共享 301
14.3.1 資源死鎖 301
14.3.2 優先權反轉 302
14.4 解決資源死鎖 304
14.4.1 死鎖預防 304
14.4.2 死鎖檢測 304
14.4.3 死鎖避免 305
14.5 解決優先權反轉 307
14.5.1 優先權繼承協定 307
14.5.2 最高鎖協定 309
14.5.3 優先權天花板協定 310
14.6 習題 312
第15章 實時調度:時鐘驅動
方式 315
15.1 周期性調度簡介 315
15.1.1 若干假設 315
15.1.2 可搶占的非周期作業 316
15.2 點對點時鐘驅動調度 317
15.2.1 點對點時鐘驅動調度
程式 318
15.2.2 執行開銷 319
15.3 基於幀的調度 320
15.3.1 幀尺寸的約束 320
15.3.2 健壯的基於幀的調度 323
15.3.3 基於幀的調度程式 324
15.4 調度非周期作業 325
15.5 拆分任務 328
15.6 習題 330
第16章 實時調度:速率單調
方式 331
16.1 優先權分配 331
16.2 RMA原則 332
16.3 速率單調分析 335
16.4 完成時間測試 336
16.5 周期變換 339
16.6 通用的可調度性分析 342
16.6.1 具有阻塞時間項的任務 342
16.6.2 具有更早截止時間的
任務 346
16.6.3 示例 347
16.6.4 優先權相同的任務 350
16.7 習題 351
第17章 實時調度:偶發伺服器
程式 355
17.1 偶發任務 355
17.2 偶發伺服器程式 356
17.2.1 偶發伺服器程式的相關
任務設計 356
17.2.2 驗收測試 358
17.3 樸素偶發伺服器程式 360
17.3.1 任務設計 361
17.3.2 驗收測試 361
17.4 固定優先權的偶發伺服器
程式 362
17.5 具有動態優先權的偶發
伺服器程式 368
17.6 習題 371
第IV部分 實現模式
第18章 資源共享 375
18.1 共享變數 375
18.2 共享的記憶體 378
18.2.1 映射檔案對象 380
18.2.2 共享的記憶體對象 382
18.3 信號量 384
18.3.1 任務同步 385
18.3.2 流控制 387
18.3.3 資源保護 387
18.3.4 信號量相關的POSIX
函式 389
18.3.5 信號量示例 390
18.4 互斥體 397
18.4.1 互斥體使用模式 398
18.4.2 互斥體相關的POSIX
函式 400
18.4.3 使用互斥體的例子 401
18.5 條件變數 404
18.5.1 柵欄同步 405
18.5.2 生產者-消費者模式 410
18.5.3 讀-寫鎖 414
18.6 習題 418
第19章 任務間通信:訊息佇列 421
19.1 訊息佇列簡介 421
19.2 訊息佇列靜態結構和動態
轉移 421
19.3 訊息佇列使用模式 424
19.3.1 單向通信 424
19.3.2 確認-單向通信 425
19.3.3 雙向通信 426
19.3.4 客戶端-伺服器之間的
通信 427
19.4 與訊息佇列相關的POSIX
函式 430
19.5 使用訊息佇列的例子 432
19.6 習題 437
第20章 任務間通信:管道 439
20.1 管道簡介 439
20.2 管道的靜態結構和動態
狀態轉移 439
20.3 管道使用模式 442
20.4 與管道相關的POSIX函式 442
20.4.1 多個作者和讀者 444
20.4.2 在管道上POSIX的選擇
操作 445
20.5 使用管道的示例 446
20.6 習題 451
第21章 任務間通信:傳送信號 453
21.1 POSIX信號簡介 453
21.2 信號處理 455
21.3 信號向量表和處理程式 455
21.4 POSIX信號函式 456
21.5 POSIX信號的QNX實現 457
21.5.1 示例:在不同進程中處理
信號 457
21.5.2 示例:控制任務伺服器 460
21.6 來自ISR的自旋鎖和中斷
事件 463
21.6.1 POSIX自旋鎖 463
21.6.2 QNX事件結構 464
21.6.3 QNX應用程式的中斷
處理 465
21.6.4 示例:來自ISR的中斷
事件 466
21.7 QNX脈衝 473
21.7.1 QNX同步訊息傳遞 473
21.7.2 QNX異步脈衝發生機制 476
21.7.3 分層訊息傳遞模式 478
21.7.4 訊息接收者的優先權
繼承 478
21.7.5 示例:簡單的計時管
理器 479
21.8 習題 488
第22章 軟體計時器管理 489
22.1 硬體計時器和軟體計時器 489
22.2 軟體計時管理器 491
22.2.1 連結到專用計時器ISR 492
22.2.2 使用OS計時器 492
22.3 計時輪 493
22.3.1 精度誤差 495
22.3.2 寬範圍計時器 497
22.4 分層計時輪 497
22.4.1 計時輪參考上下文和計時
器管理 498
22.4.2 實現 500
22.5 習題 502
第23章 QNX資源管理 505
23.1 QNX資源管理簡介 505
23.2 資源管理器體系架構 506
23.2.1 控制結構 507
23.2.2 關鍵數據結構 508
23.3 示例1:作為資源管理器的
計算器 508
23.3.1 上層結構 509
23.3.2 處理來自客戶端的訊息 510
23.3.3 註冊到進程管理器 517
23.3.4 使用資源管理器 518
23.4 示例2:設備驅動程式 520
23.4.1 操縱桿 520
23.4.2 LED指示燈 521
23.4.3 基於輪詢的輸入事件
檢測 523
23.5 習題 526
參考文獻 527
縮略語 531

相關詞條

熱門詞條

聯絡我們