當(dāng)前位置: 首頁 > 原創(chuàng)圖書 >從實踐中學(xué)嵌入式Linux應(yīng)用程序開發(fā)(第2版)
本書可作為大學(xué)院校電子、通信、計算機(jī)、自動化等專業(yè)的嵌入式Linux開發(fā)課程的教材,也可供嵌入式開發(fā)人員參考。學(xué)習(xí)本書應(yīng)具有Linux C語言編程和Java編程的基本知識。
《從實踐中學(xué)嵌入式Linux應(yīng)用程序開發(fā)(第2版)》結(jié)合大量實例,講解了嵌入式Linux應(yīng)用程序設(shè)計各個方面的基本方法及必要的核心概念。主要內(nèi)容包括搭建嵌入式Linux開發(fā)環(huán)境、嵌入式文件I/O編程、嵌入式Linux多任務(wù)編程、嵌入式Linux進(jìn)程間通信、嵌入式Linux多線程編程、嵌入式Linux網(wǎng)絡(luò)編程、嵌入式Linux設(shè)備驅(qū)動編程、Android應(yīng)用編程、Android播放器項目設(shè)計等。重視應(yīng)用是貫穿全書的最大特點,在各章和全書結(jié)尾分別設(shè)置了在項目實踐中常見或類似的應(yīng)用實例。
第1章 搭建嵌入式Linux開發(fā)環(huán)境 1
1.1 構(gòu)建嵌入式Linux交叉開發(fā)環(huán)境 2
1.1.1 搭建嵌入式交叉編譯環(huán)境 2
1.1.2 配置主機(jī)交叉開發(fā)環(huán)境 6
1.2 Bootloader 10
1.2.1 Bootloader的種類 10
1.2.2 U-Boot編譯與使用 12
1.2.3 U-Boot移植 24
1.3 Linux內(nèi)核與移植 27
1.3.1 Linux內(nèi)核結(jié)構(gòu) 28
1.3.2 Linux內(nèi)核配置與編譯 29
1.3.3 Linux內(nèi)核移植的簡介 32
1.4 嵌入式文件系統(tǒng)構(gòu)建 33
1.5 本章小結(jié) 37
1.6 本章習(xí)題 37
第2章 嵌入式文件I/O編程 38
2.1 Linux系統(tǒng)調(diào)用及用戶編程接口(API) 39
2.1.1 Linux系統(tǒng)調(diào)用 39
2.1.2 用戶編程接口(API) 39
2.1.3 系統(tǒng)命令 40
2.2 Linux文件I/O系統(tǒng)概述 40
2.2.1 虛擬文件系統(tǒng)(VFS) 40
2.2.2 Linux中的文件及文件描述符 41
2.3 底層文件I/O操作 42
2.3.1 基本文件操作 42
2.3.2 文件鎖 46
2.3.3 多路復(fù)用 51
2.4 嵌入式Linux串口應(yīng)用編程 57
2.4.1 串口編程基礎(chǔ)知識 57
2.4.2 串口配置 58
2.4.3 串口使用 67
2.5 標(biāo)準(zhǔn)I/O編程 70
2.6 實驗內(nèi)容 79
2.6.1 文件讀寫及上鎖 79
2.6.2 多路復(fù)用式串口操作 85
2.7 本章小結(jié) 89
2.8 本章習(xí)題 90
第3章 嵌入式Linux多任務(wù)編程 91
3.1 Linux下多任務(wù)機(jī)制的介紹 92
3.1.1 任務(wù) 92
3.1.2 進(jìn)程 92
3.1.3 線程 98
3.2 進(jìn)程控制編程 99
3.2.1 進(jìn)程編程基礎(chǔ) 99
3.2.2 Linux守護(hù)進(jìn)程 110
3.2.3 Linux僵尸進(jìn)程 117
3.3 實驗內(nèi)容 123
3.3.1 編寫多進(jìn)程程序 123
3.3.2 編寫守護(hù)進(jìn)程 127
3.4 本章小結(jié) 129
3.5 本章習(xí)題 130
第4章 嵌入式Linux進(jìn)程間通信 131
4.1 Linux下進(jìn)程間通信概述 132
4.2 管道通信 133
4.2.1 管道簡介 133
4.2.2 無名管道系統(tǒng)調(diào)用 134
4.2.3 標(biāo)準(zhǔn)流管道 137
4.2.4 有名管道(FIFO) 139
4.3 信號通信 142
4.3.1 信號概述 142
4.3.2 信號發(fā)送與捕捉 144
4.4 信號量 153
4.4.1 信號量概述 153
4.4.2 信號量編程 154
4.5 共享內(nèi)存 158
4.6 消息隊列 163
4.7 實驗內(nèi)容 168
4.7.1 有名管道通信實驗 168
4.7.2 共享內(nèi)存實驗 172
4.8 本章小結(jié) 176
4.9 本章習(xí)題 177
第5章 嵌入式Linux多線程編程 178
5.1 多線程編程 179
5.1.1 線程基本編程 179
5.1.2 線程之間的同步與互斥 182
5.1.3 線程屬性 187
5.1.4 多線程實驗 191
5.2 本章小結(jié) 196
5.3 本章習(xí)題 196
第6章 嵌入式Linux網(wǎng)絡(luò)編程 197
6.1 TCP/IP協(xié)議概述 198
6.1.1 TCP/IP的分層模型 198
6.1.2 TCP/IP分層模型的特點 199
6.1.3 TCP/IP核心協(xié)議 200
6.2 網(wǎng)絡(luò)編程基礎(chǔ) 203
6.2.1 套接字(socket)概述 203
6.2.2 地址及順序處理 204
6.2.3 套接字編程 210
6.2.4 編程實例 215
6.3 網(wǎng)絡(luò)高級編程 218
6.4 廣播與組播 225
6.5 實驗內(nèi)容--NTP協(xié)議的客戶端實現(xiàn) 231
6.5.1 NTP協(xié)議的客戶端實現(xiàn) 231
6.5.2 ARP斷網(wǎng)攻擊實驗 238
6.6 本章小結(jié) 241
6.7 本章習(xí)題 242
第7章 嵌入式Linux設(shè)備驅(qū)動編程 243
7.1 設(shè)備驅(qū)動編程基礎(chǔ) 244
7.1.1 Linux設(shè)備驅(qū)動概述 244
7.1.2 Linux內(nèi)核模塊編程 246
7.2 字符設(shè)備驅(qū)動編程 256
7.2.1 字符設(shè)備驅(qū)動編寫流程 256
7.2.2 重要的數(shù)據(jù)結(jié)構(gòu) 256
7.2.3 設(shè)備驅(qū)動程序主要組成 257
7.3 GPIO驅(qū)動程序?qū)嵗?264
7.3.1 GPIO工作原理 264
7.3.2 GPIO驅(qū)動程序 266
7.4 按鍵驅(qū)動程序?qū)嵗?275
7.4.1 Linux設(shè)備樹 275
7.4.2 中斷編程 278
7.4.3 按鍵工作原理 279
7.4.4 按鍵驅(qū)動程序 280
7.4.5 按鍵驅(qū)動的測試 281
7.5 本章小結(jié) 282
7.6 本章習(xí)題 282
第8章 Android應(yīng)用編程 283
8.1 Android發(fā)展簡史 284
8.2 Android應(yīng)用開發(fā)環(huán)境 286
8.2.1 Android體系架構(gòu)簡介 286
8.2.2 搭建Android應(yīng)用開發(fā)環(huán)境 287
8.2.3 編寫第一個Android應(yīng)用程序 291
8.3 Android的四大組件和Intent 295
8.3.1 Activity 295
8.3.2 Service 300
8.3.3 BroadcastReceiver 301
8.3.4 ContentProvider 302
8.3.5 Intent 303
8.4 表明Android常用圖形界面組件 305
8.4.1 Android中的布局管理器 305
8.4.2 TextView 308
8.4.3 EditText 309
8.4.4 Button 311
8.4.5 ImageButton 313
8.4.6 ImageView 313
8.4.7 ProgressBar/SeekBar 313
8.5 本章小結(jié) 317
8.6 本章習(xí)題 317
第9章 Android播放器項目設(shè)計 318
9.1 簡易音樂播放器應(yīng)用的需求 319
9.2 界面設(shè)計 321
9.3 播放器控制和播放功能的實現(xiàn) 323
9.4 項目運行 328
9.5 本章小結(jié) 340
9.6 本章習(xí)題 340