當前位置:編程學習大全網 - 源碼下載 - 嵌入式軟件設計之思想與方法的目錄

嵌入式軟件設計之思想與方法的目錄

第壹篇基礎方法篇

第1章程序基礎

1.1設計高性能程序的必要性3

1.1.2嵌入式軟件的設計範疇3

1.1.3嵌入式軟件的分層結構6

1.2嵌入式軟件的程序設計要求8

1.2.1代碼結果的要求9

1.2.2代碼形式的要求10

1.3嵌入式軟件開發的基本思路和原則10

1.3.1系統分析,定義接口11

1.3.2函數實現,優化算法12

1.3.3清理代碼,補充註釋14

1.3.4測試修訂,完善文檔14

1.4程序實例剖析14

1.4.1正確理解棧14

1.4.2內存泄漏18

1.4.3消除編譯依賴18

1.4.4消除潛在隱患20

1.4.5規範實現範例21

1.4.6性能優化23

1.5程序設計其他註意點30

1.5.1謹慎使用“宏”30

1.5.2正確理解預定義宏34

1.5.3避免歧義37

第2章多任務操作系統

2.1板級支持包40

2.2嵌入式操作系統與實時性40

2.2.1嵌入式操作系統41

2.2.2實時操作系統42

2.3多任務概述42

2.3.1進程、線程與任務43

2.3.2何時需要多任務44

2.3.3任務狀態的轉換50

2.3.4進程調度與調試算法51

2.3.5任務相關的API51

2.4進程間***享代碼與可重入性53

2.4.1***享代碼53

2.4.2***享代碼可重入性問題53

2.4.3使用私有數據55

2.4.4使用臨界區數據57

2.5線程間通信57

2.5.1***享數據結構57

2.5.2互斥59

2.5.3信號量60

2.5.4臨界區與信號量的實現實例63

第3章硬件基礎

3.1ARM74

3.1.1ARM編程模式75

3.1.2ARM指令概述78

3.1.3ARM異常及處理80

3.2MIPS86

3.2.1MIPS編程模式87

3.2.2MIPS指令概述90

3.2.3MIPS中斷與異常95

3.3接口基礎98

3.3.1總線概述99

3.3.2I2C總線105

3.3.3PCI總線108

3.3.4設備模型115

3.3.5壹個IDE控制器設備實例117第二篇驅動模型篇

第4章驅動的通用模型

4.1設備驅動的作用121

4.2驅動類型123

4.2.1Linux中的驅動類型123

4.2.2WinCE中的驅動類型125

4.2.3VxWorks中的驅動類型125

4.3設備驅動的通用模型126

4.3.1模塊部分的驅動126

4.3.2設備的驅動例程127

第5章VxWorks的驅動模型

5.1VxWorks的I/O系統131

5.1.1I/O系統概述131

5.1.2文件名與設備133

5.1.3基本I/O134

5.1.4緩沖I/O136

5.1.5格式化I/O136

5.2VxWorks的驅動及其內部結構137

5.2.1驅動的安裝、驅動表138

5.2.2設備的創建、設備鏈表140

5.2.3文件的打開、文件描述符表142

5.2.4文件的讀、寫、控制和關閉操作143

第6章Linux的驅動模型

6.1Linux的驅動加載方式145

6.1.1內核驅動模塊與模塊化驅動145

6.1.2模塊化驅動的加載與卸載146

6.2Linux的驅動架構147

6.2.1壹個最簡單的內核驅動148

6.2.2壹個最簡單的模塊驅動151

6.2.3Linux驅動中註冊驅動153

6.2.4Linux系統中的設備文件154

6.3Linux字符型設備驅動155

6.3.1驅動的加載與清理155

6.3.2中斷的申請與釋放156

第7章WinCE的驅動模型

7.1WinCE驅動類型158

7.2設備管理器及其驅動模型159第三篇BSP/OAL篇

第8章BSP的基本概念

8.1BSP與驅動161

8.2BSP開發的目標任務162

第9章BSP的設計要素

9.1中斷處理163

9.1.1物理中斷號與邏輯中斷號163

9.1.2CPU中斷與中斷控制器擴展164

9.1.3中斷源的查找165

9.1.4中斷處理線程166

9.2CPU異常166

9.2.1異常向量表167

9.2.2向量表的安裝173

9.2.3異常處理代碼實例177

9.3硬件I/O的訪問188

9.3.1避免使用絕對物理地址188

9.3.2內存壹致性問題192

9.3.3I/O訪問的刷新198

第10章Linux的啟動過程

10.1Linux的啟動流程199

10.2Linux的啟動過程簡介201

10.2.1_stext函數201

10.2.2start_kernel函數203

10.2.3setup_arch函數204

10.2.4trap_init函數204

10.2.5init_IRQ函數205

10.2.6sched_init函數205

10.2.7do_initcalls函數205

10.2.8init函數206

10.2.9init程序207

第11章WinCE的設計

11.1WinCEOS平臺開發簡介209

11.1.1WinCE平臺的開發流程209

11.1.2WinCE內核結構211

11.1.3WinCE設計中的壹些名詞術語212

11.2WinCEBSP開發213

11.2.1啟動裝載器213

11.2.2OAL開發215

11.2.3WinCE配置文件219

11.3WinCE設備驅動的開發流程221

11.3.1設備驅動源代碼221

11.3.2修改配置文件222

11.3.3向OS平臺註入驅動223第四篇擴展篇

第12章理解程序的內部結構

12.1x86匯編及其程序結構226

12.1.1x86程序段定義227

12.1.2關聯段寄存器、確定段的種類230

12.1.3段組偽指令230

12.2嵌入式系統中的程序結構231

12.2.1嵌入式系統中執行程序的映像231

12.2.2鏈接器與命令腳本236

12.3ELF文件格式241

12.3.1ELF文件格式概述241

12.3.2ELF文件格式分析器248

第13章嵌入式系統的設計思想

13.1直截了當的思想262

13.2層次化的思想267

13.3循序漸進的思想269

13.4實踐是最好的老師269

13.5團隊協作意識270

13.6大膽嘗試與積極創新270

結束語272

參考文獻273

插圖索引

圖11嵌入式軟件的分層結構7

圖21VxWorks中的任務狀態轉換圖50

圖22驅動中的可重入性問題154

圖23驅動中的可重入性問題256

圖24使用***享數據區訪問臨界區的例子58

圖31ARM程序狀態寄存器格式77

圖32MIPSCPU寄存器88

圖33MIPSFPU寄存器90

圖34I2C數據位的傳輸106

圖35I2C起始條件和停止條件106

圖36I2C總線數據傳輸時序圖107

圖37PCICONFIGADDRESS寄存器格式113

圖38PCI類型0配置空間頭部114

圖39ITE8172IDE控制器框圖118

圖51驅動在系統中的層次結構132

圖52VxWorksI/O系統的調用關系133

圖53VxWorks驅動安裝140

圖54VxWorks設備添加141

圖55VxWorks文件打開142

圖56文件讀操作的I/O控制流程143

圖61Linux驅動與操作系統核心之間的關系147

圖71WinCE驅動內部框圖158

圖72WinCE系統中應用程序與設備驅動的交互160

圖91驅動程序中完整的中斷處理架構164

圖92IT8172G中斷控制器內部框圖177

圖101Linux啟動流程框圖200

圖102Linux啟動執行過程細節201

圖111WinCEOS開發的工作流程210

圖112WinCE的內部層次結構211

圖113WinCEBSP框圖214

圖121x86匯編段結構228

圖122宏匯編中的段鏈接映像230

圖123x86段組定義231

圖124節的簡單格式237

圖125節的完整定義239

圖126口(ENTRY)的定義240

圖127ELF目標文件格式242

插表索引

表31ARM寄存器組織結構75

表32ARM狀態寄存器的模式位78

表33ARM異常處理的入口地址81

表34ARM異常的優先級86

表35MIPS系統控制寄存器CP088

表36MIPS32/MIPS64裝入/存儲指令所支持的數據類型91

表37MIPS對齊的裝入存儲指令91

表38MIPS非對齊的裝入存儲指令91

表39MIPS原子更新的裝入存儲指令92

表310協處理器裝入存儲指令92

表311MIPS立即數操作的算術指令92

表312MIPS三操作數算術指令92

表313MIPS二操作數算術指令93

表314MIPS移位指令93

表315MIPS乘除法指令94

表316MIPS256M區域內無條件跳轉指令95

表317MIPSPC相對的條件轉移指令95

表318MIPS的中斷、狀態及緣由寄存器的映射關系96

表319MIPS異常向量的基地址97

表320MIPS異常向量的偏移地址97

表321I2C總線術語定義105

表322PCI總線命令110

表323ITE8172IDE控制器的PCI配置寄存器119

表324ITE8172IDE總線主設備IDE輸入/輸出寄存器119

表325IDE命令寄存器120

表111WinCE常見的映像配置文件219

表121字符串表簡單例子246

表122對字符串表索引所得到的字符串246

……

  • 上一篇:土壤化學指標
  • 下一篇:濟南尚未進行信息登記的乘客將無法使用乘坐公交了嗎?
  • copyright 2024編程學習大全網