注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡計算機組織與體系結構嵌入式Linux系統(tǒng)開發(fā)全程解析

嵌入式Linux系統(tǒng)開發(fā)全程解析

嵌入式Linux系統(tǒng)開發(fā)全程解析

定 價:¥59.00

作 者: 韓超 等著
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 單片機與嵌入式 計算機與互聯(lián)網(wǎng)

ISBN: 9787121228889 出版時間: 2014-04-01 包裝: 平裝
開本: 16開 頁數(shù): 436 字數(shù):  

內容簡介

  本書是一本全面介紹嵌入式Linux開發(fā)的專著,書中涵蓋了程序生成工具、調試工具、引導加載器、Linux系統(tǒng)結構、Linux內核、驅動程序、用戶空間編程、用戶空間中間件等方面的內容。本書內容前后照應、貼近實踐,且有較強的延伸型,有利于讀者建立嵌入式Linux開發(fā)系統(tǒng)化的知識結構和技術理念。

作者簡介

  韓 超中國大陸地區(qū)Linux和移動設備領域的資深工程師、架構師。長期從事一線開發(fā)工作,兼具開發(fā)實踐經(jīng)驗和完備的教育思維模式。韓超是中國大陸地區(qū)較早開發(fā)Android系統(tǒng)的人員,曾從事系統(tǒng)框架、芯片移植適配和移動產品等開發(fā)領域;也曾經(jīng)引領各種技術人員進入Android領域,并組織參與技術交流。曾出版《Android系統(tǒng)原理及開發(fā)要點詳解》、《Android系統(tǒng)級深入開發(fā)――移植與調試》、《Android經(jīng)典應用程序開發(fā)》、《Android核心原理與系統(tǒng)級應用高效開發(fā)》等作品。多本Android圖書版權輸出。

圖書目錄

目 錄
第1章 Linux的開發(fā)環(huán)境 1
1.1 開發(fā)環(huán)境概述 1
1.2 串口終端工具 2
1.3 TFTP 6
1.4 NFS 7
1.5 SAMBA共享 8
1.6 Linux系統(tǒng)的軟件發(fā)布協(xié)議 9
第2章 程序生成和GCC 11
2.1 程序生成工具概述 11
2.1.1 GUN的GCC工具 11
2.1.2 ELF文件格式 14
2.2 GCC工具的使用 16
2.2.1 示例工程 16
2.2.2 編譯、匯編和連接 18
2.2.3 預處理和匯編 20
2.2.4 歸檔工具(ar)和靜態(tài)庫 20
2.2.5 動態(tài)庫 22
2.2.6 ELF格式文件信息讀?。╮eadelf) 22
2.2.7 符號信息工具(nm) 25
2.2.8 字符串工具(strings) 26
2.2.9 去除符號(strip) 27
2.2.10 目標文件復制(objcopy) 28
2.2.11 目標文件信息(objdump) 28
第3章 工程管理和make機制 33
3.1 make工具 33
3.2 Makefile的基本原則 34
3.2.1 Makefile的變量 34
3.2.2 Makefile的條件執(zhí)行 36
3.2.3 Makefile中的函數(shù) 36
3.3 Makefile使用示例 39
3.3.1 簡單的Makefile 39
3.3.2 依賴關系實例 39
3.3.3 隱含規(guī)則的編譯實例 41
3.3.4 指定依賴的編譯實例 44
3.4 自動生成Makefile 46
3.4.1 autoconf工具介紹 46
3.4.2 automake工具介紹 46
3.4.3 其他工具 47
3.4.4 自動生成Makefile的流程 47
第4章 調試和GDB 49
4.1 嵌入式系統(tǒng)的調試技術 49
4.1.1 調試技術 49
4.1.2 硬件調試 50
4.1.3 代碼調試 51
4.2 Linux的基本信息 51
4.3 GDB調試和遠程調試 52
4.4 GDB的安裝與使用 57
4.4.1 使用gdbstub實現(xiàn)調試用戶
程序 57
4.4.2 GDB和GDB Server的編譯 59
4.5 使用gdbserver調試 61
第5章 Linux系統(tǒng)的結構 65
5.1 Linux操作系統(tǒng)基本概念 65
5.1.1 Linux的進程信息 65
5.1.2 Linux的文件系統(tǒng)和文件
信息 70
5.1.3 文件的另外三位屬性 71
5.2 Linux系統(tǒng)的組成和構建 72
5.2.1 Linux系統(tǒng)的組成 72
5.2.2 嵌入式Linux的構建 73
5.3 Linux系統(tǒng)的啟動流程 74
第6章 BootLoader及其構建 76
6.1 嵌入式Linux的BootLoader 76
6.1.1 BootLoader的開發(fā)要點 76
6.1.2 BootLoader的結構 78
6.2 U-Boot的使用 80
6.2.1 U-Boot概述 80
6.2.2 U-Boot的結構 81
6.2.3 U-Boot的生成 83
6.2.4 U-Boot的啟動流程 84
6.3 U-Boot的命令 86
6.3.1 U-Boot命令概述 86
6.3.2 增加命令 88
6.4 U-Boot的移植 91
6.4.1 U-Boot的移植概述 92
6.4.2 U-Boot的擴展 92
6.4.3 板級支持 94
第7章 Linux內核及其構建 97
7.1 Linux內核概述 97
7.1.1 Linux內核結構 97
7.1.2 Linux源文件結構 98
7.2 嵌入式Linux的配置和編譯 99
7.2.1 Linux內核配置結構 99
7.2.2 Linux內核的配置 99
7.2.3 Linux內核的生成 107
7.3 Linux內核的啟動過程 108
7.4 特定系統(tǒng)的Linux的構建 114
7.4.1 Linux內核的移植 114
7.4.2 ARM處理器上運行的Linux
系統(tǒng) 115
7.4.3 S3C6410 Linux內核的構建 117
7.4.4 S3C6410 Linux內核的移植
內容 118
第8章 文件系統(tǒng)及其構建 123
8.1 Linux文件系統(tǒng)特性 123
8.2 Linux文件系統(tǒng)的結構 125
8.2.1 文件系統(tǒng)的主要接口 125
8.2.2 文件系統(tǒng)的實現(xiàn) 130
8.2.3 默認的公共實現(xiàn) 134
8.3 幾種Linux使用的文件系統(tǒng) 136
8.3.1 EXT 2/3(擴展文件系統(tǒng)2/3) 136
8.3.2 NFS(網(wǎng)絡文件系統(tǒng)) 136
8.3.3 ROMFS(只讀文件系統(tǒng)) 137
8.3.4 CRAMFS(壓縮ROM文件
系統(tǒng)) 137
8.3.5 JFFS2(日志Flash文件
系統(tǒng)) 138
8.3.6 YAFFS(另一種Flash文件
系統(tǒng)) 138
8.3.7 UBIFS(非排序塊映像文件
系統(tǒng)) 139
8.4 Linux文件系統(tǒng)的構建 140
8.4.1 根文件系統(tǒng)的結構 140
8.4.2 制作根文件系統(tǒng)映像 141
8.4.3 內核啟動中根文件系統(tǒng)的
參數(shù) 142
第9章 Linux用戶空間的核心 143
9.1 嵌入式系統(tǒng)中的操作系統(tǒng)和系統(tǒng)關系 143
9.2 C語言庫 144
9.3 Shell工具Busybox 147
9.3.1 Busybox配置和編譯 148
9.3.2 Busybox的源代碼結構 150
第10章 Linux用戶空間的編程 152
10.1 Linux用戶空間編程概述 152
10.2 文件的相關內容 154
10.2.1 文件的打開、關閉和
讀寫等 155
10.2.2 文件的控制、映射和
查詢等 157
10.2.3 文件的其他操作 158
10.3 進程相關的內容 159
10.3.1 fork和exec 159
10.3.2 管道 161
10.3.3 System V IPC 162
10.3.4 POSIX IPC 165
10.4 信號相關的內容 166
10.5 pthread線程 168
10.5.1 線程的基本使用 169
10.5.2 線程的屬性 171
10.5.3 線程互斥量 172
10.5.4 線程條件量 173
10.5.5 線程取消 175
10.6 dlopen機制 176
10.6.1 dlopen的結構和意義 176
10.6.2 在C語言中使用dlopen 178
10.6.3 在C++中使用dlopen 180
第11章 Linux用戶空間的中間件 185
11.1 基于嵌入式Linux的系統(tǒng)與中間件 185
11.2 網(wǎng)絡協(xié)議相關 186
11.2.1 Linux套接字編程的基礎 186
11.2.2 TCP和UDP協(xié)議的流程 189
11.2.3 TCP編程實例 189
11.2.4 UDP編程實例 193
11.2.5 深入網(wǎng)絡編程 196
11.2.6 用作IPC的UNIX Socket 198
11.3 GUI應用開發(fā) 201
11.3.1 Qt系統(tǒng) 203
11.3.2 MiniGUI應用程序 209
11.3.3 MicroWindows(Nano-X Window) 216
11.4 數(shù)據(jù)庫 217
11.4.1 關于嵌入式數(shù)據(jù)庫 217
11.4.2 SQLite 218
第12章 Linux驅動基礎 228
12.1 Linux驅動概述 228
12.1.1 驅動的理念和結構 228
12.1.2 驅動程序對用戶空間的
接口 230
12.2 設備文件和相關文件系統(tǒng) 230
12.2.1 設備文件 230
12.2.2 sys文件系統(tǒng) 231
12.2.3 proc文件系統(tǒng) 233
第13章 Linux的內核編程 237
13.1 Linux內核編程概述 237
13.2 內核模塊的編寫 237
13.2.1 Linux內核中的模塊 237
13.2.2 內核模塊的編譯結構 239
13.3 內核編程接口 241
13.3.1 Linux編程風格 241
13.3.2 Linux編程主要接口 242
第14章 Linux的驅動核心架構 248
14.1 用戶空間的接口 248
14.1.1 用戶空間的驅動調用接口 248
14.1.2 系統(tǒng)調用 248
14.1.3 驅動的主要調用函數(shù) 249
14.2 字符設備和塊設備的框架 250
14.2.1 文件操作file_operations 250
14.2.2 字符設備的基本框架 251
14.2.3 塊設備的框架 252
14.2.4 字符設備和塊設備的默認
file_operations實現(xiàn) 254
14.3 網(wǎng)絡協(xié)議和網(wǎng)絡設備的框架 258
14.3.1 網(wǎng)絡系統(tǒng)的核心 259
14.3.2 網(wǎng)絡協(xié)議的實現(xiàn) 261
14.3.3 網(wǎng)絡設備的框架 263
14.4 proc文件系統(tǒng)的框架 264
14.4.1 proc文件系統(tǒng)的編程接口 264
14.4.2 proc文件系統(tǒng)的實現(xiàn) 266
14.5 sys文件系統(tǒng)的框架 266
14.5.1 sys文件系統(tǒng)的編程接口 266
14.5.2 sys文件系統(tǒng)的實現(xiàn) 267
第15章 Linux驅動的要點 269
15.1 驅動程序的核心實現(xiàn) 269
15.2 設備、驅動和資源 273
15.3 中斷的處理 276
15.4 中斷的下半部 277
15.4.1 軟中斷 277
15.4.2 軟中斷之tasklet 278
15.4.3 軟中斷之定時器 279
15.5 競態(tài)處理 280
15.5.1 自旋鎖 280
15.5.2 信號量 280
15.6 阻塞處理 281
15.7 異步操作 282
第16章 幾個典型的簡單驅動 283
16.1 設備驅動概述 283
16.2 內存設備驅動 284
16.2.1 內存設備驅動的公共內容 284
16.2.2 空設備 286
16.2.3 零設備 287
16.2.4 滿設備 288
16.3 內存塊設備驅動 288
16.4 回環(huán)塊設備驅動 291
16.5 回環(huán)網(wǎng)絡設備驅動 294
第17章 幾個典型的驅動框架和相應
的驅動 296
17.1 Misc驅動框架 296
17.2 幀緩沖驅動框架和具體驅動 297
17.2.1 幀緩沖驅動框架 297
17.2.2 虛擬幀緩沖驅動 300
17.2.3 針對硬件實現(xiàn)的幀緩沖
驅動 302
17.3 輸入-事件驅動框架 305
17.3.1 輸入-事件驅動框架概述 305
17.3.2 針對硬件的事件驅動 307
17.4 GPIO驅動框架和具體驅動 310
17.4.1 GPIO驅動框架 310
17.4.2 GPIO具體硬件的驅動 312
17.5 Power Supply驅動框架和具體驅動 312
17.5.1 Power Supply驅動框架 312
17.5.2 Power Supply驅動 313
17.6 TTY驅動框架和驅動 314
17.6.1 TTY驅動框架 314
17.6.2 偽TTY驅動 316
17.6.3 串口TTY和虛擬TTY 316
第18章 MTD系統(tǒng)和驅動 318
18.1 MTD概述 318
18.2 MTD的核心 319
18.2.1 MTD的接口部分 320
18.2.2 MTD的核心實現(xiàn)部分 322
18.3 MTD的設備層 322
18.3.1 MTD字符設備 322
18.3.2 MTD塊設備 323
18.4 CFI硬件實現(xiàn)層 324
18.4.1 公用部分 324
18.4.2 ROM的MTD實現(xiàn) 325
18.4.3 RAM的MTD實現(xiàn) 325
18.4.4 Nor Flash的MTD實現(xiàn) 326
18.5 Nand Flash的硬件實現(xiàn)層 326
18.5.1 公用部分 326
18.5.2 GPIO的Nand Flash實現(xiàn) 327
18.5.3 處理器芯片上的Nand Flash
實現(xiàn) 330
第19章 USB系統(tǒng)和驅動 331
19.1 USB概述 331
19.1.1 USB規(guī)范 331
19.1.2 USB的軟件系統(tǒng) 333
19.2 Linux的USB主機端支持 334
19.2.1 USB主機端的軟件結構 334
19.2.2 USB主機端的核心部分 335
19.2.3 USB驅動的實現(xiàn) 337
19.2.4 HCI的實現(xiàn) 339
19.3 Linux的USB設備端支持 340
19.3.1 USB設備端的軟件結構 340
19.3.2 Gadget的核心部分 340
19.3.3 Gadget驅動 342
19.3.4 UDC驅動的實現(xiàn) 345
第20章 SPI總線和驅動 348
20.1 SPI概述 348
20.2 SPI總線驅動的框架 349
20.3 簡單字符設備spidev 353
20.4 SPI主控制器的實現(xiàn) 355
20.4.1 GPIO實現(xiàn)的SPI主控制器 355
20.4.2 S3C64xx的SPI主控制器 356
20.5 SPI從設備的驅動 358
第21章 I2C總線和驅動 361
21.1 I2C概述 361
21.1.1 基本概念 361
21.1.2 SMBus 362
21.2 I2C總線驅動的框架 362
21.2.1 I2C核心框架 362
21.2.2 I2C總線接口 367
21.2.3 I2C設備和驅動 368
21.3 具體的I2C主控制器 370
21.4 I2C從設備的驅動 372
第22章 PCI總線和驅動 375
22.1 PCI概述 375
22.1.1 PCI的基本結構 375
22.1.2 PCI的總線信號 377
22.1.3 PCI的總線操作 378
22.1.4 PCI的總線配置 379
22.1.5 PCI的發(fā)展和衍生標準 381
22.2 PCI總線的驅動框架 381
22.3 PCI設備的驅動 384
22.3.1 PCI的樁實現(xiàn) 384
22.3.2 網(wǎng)卡的PCI實現(xiàn) 385
第23章 音頻系統(tǒng)和驅動 389
23.1 音頻系統(tǒng)概述 389
23.2 OSS架構 389
23.2.1 OSS系統(tǒng)的結構 390
23.2.2 OSS系統(tǒng)的核心 391
23.2.3 OSS系統(tǒng)的實現(xiàn) 392
23.3 ALSA架構 393
23.3.1 ALSA系統(tǒng)的結構 393
23.3.2 ALSA系統(tǒng)的核心 395
23.3.3 ALSA系統(tǒng)芯片層 395
23.3.4 ALSA的用戶空間 400
第24章 視頻系統(tǒng)和驅動 403
24.1 視頻系統(tǒng)概述 403
24.2 Video for Linux系統(tǒng) 403
24.2.1 基本結構 404
24.2.2 Video for Linux的核心
結構 405
24.2.3 Video for Linux的其他
方面 410
24.2.4 Video for Linux驅動的
接口 413
24.2.5 Video for Linux驅動的實
現(xiàn)層 417

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號