注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)計(jì)算機(jī)組織與體系結(jié)構(gòu)嵌入式Linux系統(tǒng)開(kāi)發(fā)全程解析

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

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

定 價(jià):¥59.00

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

購(gòu)買這本書(shū)可以去


ISBN: 9787121228889 出版時(shí)間: 2014-04-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 436 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)是一本全面介紹嵌入式Linux開(kāi)發(fā)的專著,書(shū)中涵蓋了程序生成工具、調(diào)試工具、引導(dǎo)加載器、Linux系統(tǒng)結(jié)構(gòu)、Linux內(nèi)核、驅(qū)動(dòng)程序、用戶空間編程、用戶空間中間件等方面的內(nèi)容。本書(shū)內(nèi)容前后照應(yīng)、貼近實(shí)踐,且有較強(qiáng)的延伸型,有利于讀者建立嵌入式Linux開(kāi)發(fā)系統(tǒng)化的知識(shí)結(jié)構(gòu)和技術(shù)理念。

作者簡(jiǎn)介

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

圖書(shū)目錄

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

本目錄推薦

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