-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

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

( 簡體 字)
作者:[美]Xiaocong Fan 著 類別:1. -> 電腦組織與體系結構 -> 嵌入式系統
譯者:林賜 譯
出版社:清華大學出版社實時嵌入式系統 設計原則與工程實踐 3dWoo書號: 45889
詢問書籍請說出此書號!

缺書
NT售價: 400

出版日:1/1/2017
頁數:530
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302455592
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

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




ISR ISR-Pattern-min
ISR-Pattern-server
中斷鏈
中斷級聯
中斷禁用
雙緩沖
兌現第一個請求 第4.5.1節
第4.5.2節
第4.5.3節中的圖4.7
第4.5.4節中的圖4.9
第4.5.5節中的圖4.11
第4.5.5節中的圖4.12
第12.3.2節中的圖12.17
子類化 抽象-發生
泛化層次 第6.3.3節中的圖6.25
第6.3.4節中的圖6.27
(續表)
類 別 模 式 名 書 中 位 置
軟件架構 輪詢DAS 第12.2.2節中的圖 12.10
帶有中斷的輪詢 第12.3.2節中的圖 12.16
FIFO 隊列 第12.4.1節中的圖 12.20
優先級隊列 第12.4.2節中的圖 12.21
串行端口設計模式 第14.2.2節中的圖 14.5
靜態任務調度器 基于時鐘
基于幀
計時輪 第15.2節
第15.3節
第22.3節
信號量/互斥體 會合同步模式
多實例資源保護模式 第18.3.1節中的圖 18.8
第18.4.1節中的圖 18.19
條件變量 柵欄同步模式
生產者-消費者模式
讀-寫鎖模式 第18.5.1節中的圖 18.24
第18.5.2節中的圖 18.27
第18.5.3節中的圖 18.30
消息隊列 單向排隊模式 第19.3.1節中的圖 19.5
確認-單向排隊模式
雙向排隊模式 第19.3.2節中的圖 19.6
第19.3.3節中的圖 19.7
客戶端-服務器排隊模式 第19.3.4節中的圖 19.10
管道 單向管道模式
雙向管道模式 第20.3節中的圖 20.4
第20.3節中的圖 20.4
死鎖避免 分層消息傳遞模式 第21.7.3節中的圖 21.8
DAS,檢測-確認-服務;FIFO,先進先出;ISR,中斷服務例程

其次,統一建模語言(Unified Modeling Language,UML)是用于指定、可視化、構造和文檔化軟件系統的圖形語言。在各種工程問題中,從單進程的嵌入式系統和單機用戶應用程序到并發分布式系統,UML都發揮著重大的作用。本書詳細描述編寫本書時最新的UML標準:UML 2.4。整本書中,UML圖同時用于系統設計和概念說明。特別是,我們詳細介紹了UML實時配置文件,這樣學生可以學習如何以專業的方式記錄他們的實時系統設計。
另外,POSIX(即“可移植操作系統接口”)是開放性的操作系統接口標準,在各種Unix操作系統變體之間用于開發互操作性和可移植性好的應用程序。構建在實時操作系統上的軟件系統可以很容易地移植到其他POSIX兼容的操作系統上。
本書使用的是POSIX.1-2008(2013年版)。本書中涵蓋的操作系統實現和概念與POSIX.1 -2008標準完全兼容。書中提供的示例代碼已在工業界廣泛采用的操作系統QNX中測試。由于QNX是POSIX兼容的,因此在不改變源代碼的情況下,也可以在另一個POSIX兼容的操作系統中編譯并執行程序。
簡單而言,本書由以下4部分組成:
● 第Ⅰ部分專門介紹實時嵌入式系統和迭代開發過程的基礎知識。雖然我們重點放在軟件方面,但完全與底層硬件隔離既不可行、也不可取。由于這個原因,這個部分也包含微處理器和中斷兩個章節——這是希望構建嵌入式系統軟件工程師的基本主題。
● 第Ⅱ部分專門講述實時系統的建模技術。具體來說,我們介紹UML所涵蓋的建模工具——UML是在學術界和軟件工業中普遍接受的一個標準。此外,我們介紹實時UML——指定系統模型中與實時相關約束的配置文件。全書一致地使用了UML圖來說明關鍵的概念和設計模式。
● 第Ⅲ部分專門討論實時嵌入式系統的軟件架構設計。我們開始于通用架構,這帶領我們來到了最復雜的架構——實時操作系統。然后,我們的焦點切換到多任務和實時調度——這是每一個實時嵌入式系統設計師都要解決的兩個關鍵問題。
● 第Ⅳ部分專門講解系統實施。我們特別專注于在POSIX兼容的操作系統中可用的機制;這個方法意味著本書中給出的設計/實施模式也適用于其他POSIX兼容的操作系統。
這4個部分共有23個章節。在一個學期的課程中,教師可以為學生講授感興趣的部分章節。例如,在第3章中,為了在一個或兩個課時中完成授課,可以跳過一些微處理器類型。如果在軟件工程原則的預修課程中學過UML基礎建模概念,那么第6章、第7章和第8章可用于自我閱讀的任務或僅用作參考。根據不同的學生對操作系統基本概念的熟悉程度,在第Ⅳ部分中提到的一些主題(例如,消息隊列、管道和信號),教師可以因材施教。
內容簡介:

本書融入了實時系統、嵌入式系統和軟件工程的新概念和新主題,為開發實時嵌入式應用軟件描繪了一幅完整的圖像。在本書中,你不僅可以全面地理解與微處理器、中斷和系統引導過程相關的概念,領略到實時建模和調度的重要性,而且也將學習建模文檔、建模分析、設計模式和標準的一致性等軟件工程實踐。
  本書分為四個部分,幫助你學習嵌入式系統的關鍵概念;第Ⅰ部分介紹了開發過程,包括微處理器和中斷章節——這是軟件工程師的基本主題;第Ⅱ部分專門介紹了實時系統的建模技術;第Ⅲ部分討論了軟件體系架構的設計;第Ⅳ部分檢驗了軟件的實現,并重點關注POSIX兼容的操作系統。
主要特色
◆ 涵蓋了最新的UML標準(UML 2.4)
◆ 超過20種具有代表性,可以在一個非常廣泛的實時嵌入式系統系列中重用的最佳的設計模式實踐
◆ 在QNX中通過測試的示例代碼,QNX是在行業中廣泛采用的實時操作系統。
主要內容
◆ 不同嵌入式系統架構的利弊
◆ POSIX實時擴展以及如何開發POSIX兼容的實時應用程序
◆ 如何使用實時UML記錄具有時序約束的系統設計
◆ 與跨平臺開發相關的概念以及所面臨的挑戰
◆ 多任務設計和任務間通信技術(共享內存對象、消息隊列、管道、信號)
◆ 如何使用內核對象(如信號量、互斥體、條件變量)來解決RTOS應用程序資源共享的問題
◆ 支持“資源管理器”這個概念的原理,以及如何使用資源管理器實現虛擬文件系統
◆ 實時調度和幾個關鍵算法的基本原則
目錄:

第Ⅰ部分引言

第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

序: