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

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

基本介紹

  • 書名:實時嵌入式系統設計原則與工程實踐
  • 出版社:清華大學出版社
  • 出版時間:2017年1月
前言,圖書簡介,目錄,

前言

嵌入式系統是在一個較大的系統中設計以執行專用功能的電子系統。實時系統為在臨界事件的最壞情況下的回響時間提供了保證,同時為非臨界事件提供了可接受的一般情況下的回響時間。當實時系統設計成為一個嵌入式組件時,這個組件就稱為實時嵌入式系統,此系統廣泛地套用在消費、工業、醫療和軍事方面。
隨著我們的日常生活越來越依賴於嵌入式技術,近幾年來,對具有開發實時嵌入式軟體技能集的工程師的需求大幅增長。結果是,培養學生在嵌入式軟體的設計和實現方面的能力變得日益重要。本書專門為高年級本科生或攻讀軟體工程、計算機工程或相關學科的研究生撰寫,但也有益於專注嵌入式軟體開發的在職工程師。
本書採用了協同合作的方法,引進了實時系統、嵌入式系統和軟體開發原則的概念和主題。讀者不僅可以深入了解有關微處理器、中斷和跨平台開發流程的概念,意識到實時建模和調度的重要性,並且可以得到良好的軟體工程實踐的訓練,這些實踐包括建模文檔、建模分析、設計模式和系統標準的一致性。
本書介紹開發實時嵌入式軟體至關重要的三個方面。
首先,開發實時嵌入式系統軟體涉及許多活動,包括需求規格說明、時序分析、體系架構設計、多任務設計以及跨平台的測試和調試。本書涵蓋嵌入式軟體開發的全過程,對一些主題進行全面充分的解釋,而對另外一些主題則一筆帶過(例如,調試和測試)。
具體來說,本書系統地介紹各種嵌入式軟體架構,專注於實時作業系統,這是在大型實時作業系統中採用的最先進的架構。此外,我們選擇性地強調可重複使用的設計解決方案。如表0.1所示,本書介紹許多設計模式,這些設計模式代表了在廣泛的實時嵌入式系統中可重用的最佳實踐。

圖書簡介

本書融入了實時系統、嵌入式系統和軟體工程的新概念和新主題,為開發實時嵌入式套用軟體描繪了一幅完整的圖像。在本書中,你不僅可以全面地理解與微處理器、中斷和系統引導過程相關的概念,領略到實時建模和調度的重要性,而且也將學習建模文檔、建模分析、設計模式和標準的一致性等軟體工程實踐。
本書分為四個部分,幫助你學習嵌入式系統的關鍵概念;第Ⅰ部分介紹了開發過程,包括微處理器和中斷章節——這是軟體工程師的基本主題;第Ⅱ部分專門介紹了實時系統的建模技術;第Ⅲ部分討論了軟體體系架構的設計;第Ⅳ部分檢驗了軟體的實現,並重點關注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.2PIC18F8720微型晶片38
3.2.1存儲器組織39
3.2.2字寫模式41
3.2.3位元組選擇模式43
3.2.4位元組寫模式45
3.3Intel808646
3.3.1存儲器組織47
3.3.2獨立的I/O地址空間48
3.3.3存儲器地址空間50
3.3.4等待狀態52
3.4IntelPentium53
3.4.1匯流排狀態轉換56
3.4.2存儲器組織60
3.5ARM926EJ-S61
3.6習題64
第4章中斷67
4.1中斷導論67
4.2外部中斷67
4.2.1非向量中斷68
4.2.2PIC和向量中斷69
4.3軟體中斷74
4.4內部中斷75
4.5ISR的設計模式75
4.5.1一般的ISR設計模式75
4.5.2具有伺服器任務的ISR76
4.5.3ISR鏈77
4.5.4ISR級聯78
4.5.5與ISR進行數據共享79
4.6中斷回響時間81
4.7案例分析:x8682
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.2UML結構圖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.1UML核心資源模型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.2RT-UML配置檔案可調度性
建模子配置檔案214
11.2.1RT-UML配置檔案中的可
調度性分析的元概念214
11.2.2可調度性構造型219
11.2.3使用可調度性子配置
檔案221
11.3RT-UML配置檔案性能建模
子配置檔案223
11.3.1RT-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和RTOS267
13.1POSIX簡介267
13.1.1POSIX進程和執行緒268
13.1.2POSIX實時擴展269
13.1.3POSIX的兼容性和一
致性275
13.2任務的靜態結構和動態
行為276
13.2.1一般任務結構276
13.2.2任務狀態轉移278
13.3實時作業系統279
13.4POSIX實時調度策略282
13.4.1FIFO調度策略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.2RMA原則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.1POSIX信號簡介453
21.2信號處理455
21.3信號向量表和處理程式455
21.4POSIX信號函式456
21.5POSIX信號的QNX實現457
21.5.1示例:在不同進程中處理
信號457
21.5.2示例:控制任務伺服器460
21.6來自ISR的自旋鎖和中斷
事件463
21.6.1POSIX自旋鎖463
21.6.2QNX事件結構464
21.6.3QNX應用程式的中斷
處理465
21.6.4示例:來自ISR的中斷
事件466
21.7QNX脈衝473
21.7.1QNX同步訊息傳遞473
21.7.2QNX異步脈衝發生機制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連結到專用計時器ISR492
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.1QNX資源管理簡介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.2LED指示燈521
23.4.3基於輪詢的輸入事件
檢測523
23.5習題526
參考文獻527
縮略語531

相關詞條

熱門詞條

聯絡我們