嵌入式Linux系統開發基礎

《嵌入式Linux系統開發基礎》是2013年清華大學出版社出版的圖書,作者是王大永、葛超、張景春。

基本介紹

  • 書名:嵌入式Linux系統開發基礎
  • 作者:王大永、葛超、張景春
  • ISBN:9787302330240
  • 定價:46元
  • 出版社:清華大學出版社
  • 出版時間:2013-7-5
  • 裝幀:平裝
圖書簡介,目錄,

圖書簡介

嵌入式系統是計算機軟體與硬體的完美結合,廣泛地套用於手持設備、通信家電、儀器儀表、汽車電子、醫療儀器、工業控制、航天航空等各個領域,並嵌入各類設備中,起著核心作用。嵌入式系統開發,無疑是當前最有前途、最為熱門、最需人才的技術領域。
本書共分為13章,對嵌入式系統的基本結構、指令系統以及嵌入式系統移植、設備驅動程式等作了比較全面的介紹。其中包括嵌入式ARM系列處理器、存儲器、定時器及外圍設備的介紹,嵌入式開發編譯工具的使用,設備驅動程式的編寫,嵌入式作業系統的移植及圖形界面的開發。通過閱讀本書可以使讀者掌握開發嵌入式Linux系統的基本知識及套用技巧。
對於嵌入式處理器指令系統,本書給出了詳細的介紹,希望該部分能作為編寫ARM彙編程式的開發人員的參考資料,提高開發人員的工作效率。本書可供嵌入式系統、通信工程、信息技術、系統集成等專業的本科生作為教材使用,也可以作為嵌入式系統開發人員的參考用書。

目錄

第1章嵌入式系統概述 1
1.1嵌入式系統簡介 1
1.1.1嵌入式系統的定義 1
1.1.2嵌入式系統的硬體/軟體特徵 3
1.1.3嵌入式作業系統 4
1.1.4學習嵌入式系統的意義 6
1.2嵌入式系統硬體 7
1.2.1嵌入式處理器 7
1.2.2嵌入式微處理器 8
1.2.3嵌入式微控制器 9
1.2.4嵌入式DSP處理器 9
1.2.5嵌入式片上系統 10
1.2.6嵌入式處理器的選擇 10
1.3存儲器 11
1.3.1存儲器的分類 11
1.3.2存儲器的層次結構 13
1.3.3隨機存儲器RAM 14
1.3.4隻讀存儲器ROM 17
1.4輸入/輸出設備 19
1.4.1液晶顯示 19
1.4.2觸控螢幕 21
1.4.3語音輸入/輸出技術 23
1.4.4鍵盤 25
1.5電源轉換與管理 26
1.5.1電源IC的分類 26
1.5.2電源IC的特點 27
1.5.3電源IC選用指南 28
1.6接口技術 29
1.6.1並口 29
1.6.2串口 30
1.6.3USB 31
1.6.4藍牙 32
1.7匯流排 33
1.7.1ISA 33
1.7.2PCI 34
1.7.3I2C 35
1.7.4SPI 37
1.7.5PC-104 38
1.7.6CAN 39
1.8課後練習 41
第2章嵌入式處理器介紹 43
2.1ARM微處理器概述 43
2.1.1ARM微處理器套用領域及特點 43
2.1.2ARM微處理器系列 44
2.1.3ARM微處理器體系結構 50
2.1.4ARM微處理器的套用選型 57
2.1.5ARM微處理器存儲體系結構 58
2.1.6ARM微處理器的工作狀態 60
2.1.7ARM微處理器運行模式 61
2.1.8ARM微處理器的存儲格式 62
2.1.9ARM狀態下的暫存器結構 63
2.1.10ARM異常中斷 66
2.2ARM微處理器指令系統 70
2.2.1ARM指令的一般格式 70
2.2.2ARM指令的定址方式 73
2.2.3ARM存儲器訪問指令 78
2.2.4跳轉指令 82
2.2.5數據處理指令 84
2.2.6程式狀態暫存器(PSR)傳輸指令 90
2.2.7協處理器指令 91
2.2.8ARM雜項指令 93
2.2.9ARM偽指令 96
2.3Thumb指令集 98
2.4課後練習 99
第3章嵌入式系統設計方法 101
3.1嵌入式系統設計概述 101
3.1.1嵌入式系統的總體結構 101
3.1.2嵌入式系統的設計內容 103
3.1.3嵌入式系統的設計特點 104
3.1.4嵌入式系統設計方法的分類 105
3.2嵌入式系統設計流程 107
3.3ARM920T簡介 111
3.4S3C2410X開發板 112
3.4.1S3C2410處理器的特點 114
3.4.2ARM片上匯流排 118
3.4.3S3C2410的處理器中斷 119
3.4.4S3C2410處理器片上資源的定義和使用 126
3.4.5編程參考軟體包2410TEST 129
3.5課後練習 133
第4章BootLoader 135
4.1BootLoader概述 135
4.1.1BootLoader的基本概念 136
4.1.2BootLoader所支持的CPU和
嵌入式體系結構 137
4.1.3BootLoader的安裝介質 138
4.1.4BootLoader的概念擴展 138
4.1.5ARMBootLoader的共性 138
4.1.6BootLoader移植的必要性 140
4.1.7BootLoader的燒錄和存儲 140
4.1.8BootLoader與主機之間進行
檔案傳輸所用的通信設備及
協定 140
4.1.9BootLoader的通用執行
流程 140
4.2常用的嵌入式LinuxBootLoader 141
4.2.1U-Boot 141
4.2.2VIVI 142
4.2.3BLOB 143
4.2.4RedBoot 143
4.2.5ARMBoot 143
4.2.6DIY 143
4.3U-Boot基礎 144
4.3.1U-Boot原始碼的目錄結構 144
4.3.2U-Boot支持的主要功能 146
4.3.3U-Boot的命令介紹及
環境變數 146
4.4U-Boot的啟動過程 147
4.5U-Boot的編譯過程 151
4.6U-Boot移植的關鍵技術 154
4.7課後練習 155
第5章嵌入式系統交叉編譯 156
5.1交叉編譯環境簡介 156
5.1.1交叉編譯概念模型 156
5.1.2目標板與宿主機之間的連線 157
5.1.3檔案傳輸方式 159
5.1.4網路檔案系統 160
5.2交叉編譯工具 160
5.2.1gcc編譯器 160
5.2.2Binutils工具包 162
5.2.3GNUmake 162
5.2.4glibc庫 164
5.2.5gdb調試工具 165
5.2.6交叉編譯環境的建立 166
5.3主機開發環境配置 170
5.3.1配置主機服務 170
5.3.2串口控制台工具 172
5.3.3配置DHCP服務 175
5.3.4配置TFTP服務 177
5.3.5配置NFS服務 179
5.4課後練習 181
第6章嵌入式Linux的軟體
開發環境 182
6.1交叉編譯環境 182
6.1.1安裝交叉編譯環境 182
6.1.2添加設備驅動和核心模組 183
6.2執行檔 183
6.2.1COFF檔案格式 183
6.2.2ELF檔案格式 183
6.2.3FLAT檔案格式 184
6.3調試技術 184
6.3.1基於主機的調試 186
6.3.2遠程調試器與調試核心 187
6.3.3線上仿真ICE 188
6.3.4BDM 188
6.3.5軟體仿真器 189
6.3.6記憶體調試 190
6.3.7MEMWATCH 190
6.3.8YAMD 191
6.4程式調試 193
6.4.1gdb 193
6.4.2kgdb 194
6.4.3Oops 196
6.5ROM仿真器 197
6.6JTAG接口 198
6.7系統引導和核心啟動 199
6.7.1BootLoader程式的設計與
實現 199
6.7.2硬體平台的通信 200
6.7.3硬體平台初始化程式 200
6.7.4硬體平台監控程式 200
6.8?CLinux移植 201
6.8.1第一階段 201
6.8.2第二階段 202
6.9課後練習 203
第7章設備驅動程式 205
7.1概述 205
7.1.1設備類型 206
7.1.2設備號 206
7.1.3模組化編程 207
7.2設備驅動基礎 212
7.2.1設備驅動程式的結構 214
7.2.2設備驅動程式的接口 215
7.3設備檔案接口 216
7.3.1用戶訪問接口 216
7.3.2open入口點 216
7.3.3close入口點 217
7.3.4read入口點 217
7.3.5write入口點 217
7.3.6ioctl入口點 218
7.4檔案操作 218
7.4.1file_operations結構 218
7.4.2file結構 219
7.5I/O操作 220
7.5.1阻塞型I/O 221
7.5.2select 221
7.5.3異步觸發 222
7.6中斷處理 223
7.6.1註冊中斷處理程式 223
7.6.2返回值 223
7.6.3參數 223
7.6.4實現中斷處理程式 225
7.7實例:簡單設備驅動程式 226
7.7.1按鍵 226
7.7.2觸控螢幕 228
7.8課後練習 236
第8章FlashROM存儲器實例 238
8.1S3C44B0存儲器控制器 238
8.1.1概述 238
8.1.2功能描述 238
8.1.3特殊暫存器 243
8.2FlashRom原理分析 249
8.2.1Flash器件介紹 249
8.2.2Flash讀寫操作 250
8.2.3SST39VF160晶片介紹 251
8.2.4SST39VF1601晶片操作 252
8.3實例過程 256
8.3.1電路連線 256
8.3.2硬體和暫存器設定 257
8.3.3程式的編寫 257
8.3.4調試與運行結果 260
8.4課後練習 261
第9章定時器中斷實例 262
9.1S3C44B0中斷機制分析 262
9.1.1中斷控制器 262
9.1.2中斷源與中斷模式 264
9.1.3中斷優先權 266
9.1.4其他特殊暫存器 268
9.2PWM定時器 271
9.2.1定時器結構概述 271
9.2.2定時器操作 272
9.2.3死區產生器 274
9.2.4DMA請求模式 275
9.2.5特殊暫存器 276
9.3實例過程 279
9.3.1暫存器設定 279
9.3.2程式的編寫 280
9.3.3調試與運行結果 281
9.4課後練習 281
第10章?C/OS-Ⅱ移植與套用實例 283
10.1?C/OS-Ⅱ實時作業系統 283
10.1.1實時作業系統概念 283
10.1.2?C/OS-Ⅱ的檔案結構 284
10.1.3?C/OS-Ⅱ的任務與中斷 284
10.1.4?C/OS-Ⅱ中的任務函式 286
10.2?C/OS-Ⅱ的移植 293
10.2.1移植條件和內容分析 293
10.2.2OS_CPU.H 295
10.2.3OS_CPU_A.ASM 297
10.2.4OS_CPU_C.C 301
10.3實例過程 302
10.3.1配置OS_CFG.H檔案 302
10.3.2任務函式的編寫 302
10.3.3調試與運行結果 305
10.4課後練習 305
第11章mCLinux移植實例 307
11.1Linux作業系統 307
11.1.1Linux介紹 307
11.1.2Linux核心 311
11.2mCLinux作業系統 316
11.2.1mCLinux介紹 316
11.2.2mCLinux檔案結構 319
11.3實例過程 319
11.3.1暫存器配置和檔案修改 319
11.3.2編譯過程 321
11.3.3下載與運行結果 322
11.4課後練習 325
第12章Linux下網路通信實例 327
12.1網路協定介紹 327
12.1.1乙太網協定 327
12.1.2ARP協定 328
12.1.3ICMP協定 330
12.1.4UDP協定 330
12.1.5TCP協定 332
12.1.6FTP、HTTP等套用層
協定 334
12.2Linux網路協定層 336
12.2.1網路層次總體結構 336
12.2.2網路設備驅動程式分析 340
12.3實例過程 342
12.3.1CS800A驅動的編寫 342
12.3.2TCP編程實例 349
12.3.3UDP編程實現 351
12.4課後練習 353
第13章圖形用戶界面實例 355
13.1概述 355
13.1.1GUI簡介 355
13.1.2GUI特徵 356
13.1.3GUI架構 357
13.2嵌入式LinuxGUI簡介 358
13.2.1MicroWindows 358
13.2.2OpenGUI 359
13.2.3Qt/Embedded 359
13.2.4MiniGUI 360
13.3Qt/Embedded圖形開發實例 361
13.3.1Qt/Embedded介紹與安裝 361
13.3.2Qt/Embedded信號和插槽機制 366
13.3.3Qt/Embedded實現技術分析 369
13.3.4Qt/Embedded圖形引擎實現基礎 370
13.3.5Qt/Embedded事件驅動的基礎 371
13.3.6Qt/Embedded應用程式的開發流程 371
13.3.7Qt/Embedded的移植與套用 372
13.3.8Qt/Embedded視窗實例 374
13.4課後練習 378
附錄各章課後練習參考答案 379

相關詞條

熱門詞條

聯絡我們