本書結(jié)合大量實(shí)例,講解了嵌入式Linux應(yīng)用程序設(shè)計(jì)各個(gè)方面的基本方法及必要的核心概念。主要內(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播放器項(xiàng)目設(shè)計(jì)等。重視應(yīng)用是貫穿全書的最大特點(diǎn),在各章和全書結(jié)尾分別設(shè)置了在項(xiàng)目實(shí)踐中常見或類似的應(yīng)用實(shí)例。
第1章 搭建嵌入式Linux開發(fā)環(huán)境
1.1 構(gòu)建嵌入式Linux交叉開發(fā)環(huán)境
1.1.1 搭建嵌入式交叉編譯環(huán)境
1.1.2 配置主機(jī)交叉開發(fā)環(huán)境
1.2 Bootloader
1.2.1 Bootloader的種類
1.2.2 U-Boot編譯與使用
1.2.3 U-Boot移植
1.3 Linux內(nèi)核與移植
1.3.1 Linux內(nèi)核結(jié)構(gòu)
1.3.2 Linux內(nèi)核配置與編譯
1.3.3 Linux內(nèi)核移植的簡介
1.4 嵌入式文件系統(tǒng)構(gòu)建
1.5 本章小結(jié)
1.6 本章習(xí)題
第2章 嵌入式文件I/O編程
2.1 Linux系統(tǒng)調(diào)用及用戶編程接口(API)
2.1.1 Linux系統(tǒng)調(diào)用
2.1.2 用戶編程接口(API)
2.1.3 系統(tǒng)命令
2.2 Linux文件I/O系統(tǒng)概述
2.2.1 虛擬文件系統(tǒng)(VFS)
2.2.2 Linux中的文件及文件描述符
2.3 底層文件I/O操作
2.3.1 基本文件操作
2.3.2 文件鎖
2.3.3 多路復(fù)用
2.4 嵌入式Linux串口應(yīng)用編程
2.4.1 串口編程基礎(chǔ)知識
2.4.2 串口配置
2.4.3 串口使用
2.5 標(biāo)準(zhǔn)I/O編程
2.6 實(shí)驗(yàn)內(nèi)容
2.6.1 文件讀寫及上鎖
2.6.2 多路復(fù)用式串口操作
2.7 本章小結(jié)
2.8 本章習(xí)題
第3章 嵌入式Linux多任務(wù)編程
3.1 Linux下多任務(wù)機(jī)制的介紹
3.1.1 任務(wù)
3.1.2 進(jìn)程
3.1.3 線程
3.2 進(jìn)程控制編程
3.2.1 進(jìn)程編程基礎(chǔ)
3.2.2 Linux守護(hù)進(jìn)程
3.2.3 Linux僵尸進(jìn)程
3.3 實(shí)驗(yàn)內(nèi)容
3.3.1 編寫多進(jìn)程程序
3.3.2 編寫守護(hù)進(jìn)程
3.4 本章小結(jié)
3.5 本章習(xí)題
第4章 嵌入式Linux進(jìn)程間通信
4.1 Linux下進(jìn)程間通信概述
4.2 管道通信
4.2.1 管道簡介
4.2.2 無名管道系統(tǒng)調(diào)用
4.2.3 標(biāo)準(zhǔn)流管道
4.2.4 有名管道(FIFO)
4.3 信號通信
4.3.1 信號概述
4.3.2 信號發(fā)送與捕捉
4.4 信號量
4.4.1 信號量概述
4.4.2 信號量編程
4.5 共享內(nèi)存
4.6 消息隊(duì)列
4.7 實(shí)驗(yàn)內(nèi)容
4.7.1 有名管道通信實(shí)驗(yàn)
4.7.2 共享內(nèi)存實(shí)驗(yàn)
4.8 本章小結(jié)
4.9 本章習(xí)題
第5章 嵌入式Linux多線程編程
5.1 多線程編程
5.1.1 線程基本編程
5.1.2 線程之間的同步與互斥
5.1.3 線程屬性
5.1.4 多線程實(shí)驗(yàn)
5.2 本章小結(jié)
5.3 本章習(xí)題
第6章 嵌入式Linux網(wǎng)絡(luò)編程
6.1 TCP/IP協(xié)議概述
6.1.1 TCP/IP的分層模型
6.1.2 TCP/IP分層模型的特點(diǎn)
6.1.3 TCP/IP核心協(xié)議
6.2 網(wǎng)絡(luò)編程基礎(chǔ)
6.2.1 套接字(socket)概述
6.2.2 地址及順序處理
6.2.3 套接字編程
6.2.4 編程實(shí)例
6.3 網(wǎng)絡(luò)高級編程
6.4 廣播與組播
6.5 實(shí)驗(yàn)內(nèi)容--NTP協(xié)議的客戶端實(shí)現(xiàn)
6.5.1 NTP協(xié)議的客戶端實(shí)現(xiàn)
6.5.2 ARP斷網(wǎng)攻擊實(shí)驗(yàn)
6.6 本章小結(jié)
6.7 本章習(xí)題
第7章 嵌入式Linux設(shè)備驅(qū)動編程
7.1 設(shè)備驅(qū)動編程基礎(chǔ)
7.1.1 Linux設(shè)備驅(qū)動概述
7.1.2 Linux內(nèi)核模塊編程
7.2 字符設(shè)備驅(qū)動編程
7.2.1 字符設(shè)備驅(qū)動編寫流程
7.2.2 重要的數(shù)據(jù)結(jié)構(gòu)
7.2.3 設(shè)備驅(qū)動程序主要組成
7.3 GPIO驅(qū)動程序?qū)嵗?br />7.3.1 GPIO工作原理
7.3.2 GPIO驅(qū)動程序
7.4 按鍵驅(qū)動程序?qū)嵗?br />7.4.1 Linux設(shè)備樹
7.4.2 中斷編程
7.4.3 按鍵工作原理
7.4.4 按鍵驅(qū)動程序
7.4.5 按鍵驅(qū)動的測試
7.5 本章小結(jié)
7.6 本章習(xí)題
第8章 Android應(yīng)用編程
8.1 Android發(fā)展簡史
8.2 Android應(yīng)用開發(fā)環(huán)境
8.2.1 Android體系架構(gòu)簡介
8.2.2 搭建Android應(yīng)用開發(fā)環(huán)境
8.2.3 編寫第一個(gè)Android應(yīng)用程序
8.3 Android的四大組件和Intent
8.3.1 Activity
8.3.2 Service
8.3.3 BroadcastReceiver
8.3.4 ContentProvider
8.3.5 Intent
8.4 表明Android常用圖形界面組件
8.4.1 Android中的布局管理器
8.4.2 TextView
8.4.3 EditText
8.4.4 Button
8.4.5 ImageButton
8.4.6 ImageView
8.4.7 ProgressBar/SeekBar
8.5 本章小結(jié)
8.6 本章習(xí)題
第9章 Android播放器項(xiàng)目設(shè)計(jì)
9.1 簡易音樂播放器應(yīng)用的需求
9.2 界面設(shè)計(jì)
9.3 播放器控制和播放功能的實(shí)現(xiàn)
9.4 項(xiàng)目運(yùn)行
9.5 本章小結(jié)
9.6 本章習(xí)題
本套教材按照專業(yè)整體教學(xué)要求組織編寫,各自對應(yīng)的主干課程之間既相對獨(dú)立又有機(jī)銜接,整套教材具有系統(tǒng)性!稄膶(shí)踐中學(xué)ARM體系結(jié)構(gòu)與接口技術(shù)》側(cè)重介紹接口技術(shù);在操作系統(tǒng)教材方面,根據(jù)各院校的教學(xué)重點(diǎn)和行業(yè)實(shí)際應(yīng)用情況,編寫了《從實(shí)踐中學(xué)嵌入式Linux操作系統(tǒng)》;考慮到嵌入式專業(yè)對學(xué)生C語言能力要求較高,編寫了《從實(shí)踐中學(xué)嵌入式LinuxC編程》,可作為“C語言基礎(chǔ)”課程的后續(xù)提高課程使用;《從實(shí)踐中學(xué)嵌入式Linux應(yīng)用程序開發(fā)(第2版)》則重點(diǎn)突出了貫穿前面所學(xué)知識的實(shí)訓(xùn)內(nèi)容,供“嵌入式Linux應(yīng)用開發(fā)”課程使用。
書中結(jié)合大量代碼和實(shí)例,循序漸進(jìn)地講解了嵌入式Linux應(yīng)用軟件開發(fā)的核心技能、經(jīng)驗(yàn)和技巧。
全書共9章。前7章是對Linux環(huán)境下應(yīng)用開發(fā)方法的學(xué)習(xí),各章包含相應(yīng)的實(shí)驗(yàn)內(nèi)容;第8章是Android應(yīng)用編程的基礎(chǔ)知識;第9章安排了一個(gè)Android應(yīng)用的實(shí)訓(xùn)內(nèi)容。
第1章為搭建嵌入式Linux開發(fā)環(huán)境,首先介紹了交叉編譯環(huán)境等嵌入式開發(fā)環(huán)境的搭建,然后講解了嵌入式Linux系統(tǒng)中Bootloader、內(nèi)核、文件系統(tǒng)的構(gòu)建方法。
第2章為嵌入式文件I/O編程,主要講解了Linux系統(tǒng)調(diào)用、Linux文件I/O系統(tǒng)、底層文件I/O操作、嵌入式Linux串口應(yīng)用編程、標(biāo)準(zhǔn)I/O編程等內(nèi)容。
第3章為嵌入式Linux多任務(wù)編程,主要講解了Linux環(huán)境下的進(jìn)程控制方法。
第4章為嵌入式Linux進(jìn)程間通信,主要講解了幾種常用的進(jìn)程間通信方法,包括管道通信、信號通信、信號量、共享內(nèi)存、消息隊(duì)列等。
第5章為嵌入式Linux多線程編程,主要講解了Linux環(huán)境下的多線程編程方法及注意事項(xiàng)。
第6章為嵌入式Linux網(wǎng)絡(luò)編程,主要講解了Linux環(huán)境下的網(wǎng)絡(luò)編程方法,涉及網(wǎng)絡(luò)的非阻塞訪問、異步處理、多路復(fù)用等。
第7章為嵌入式Linux設(shè)備驅(qū)動編程,主要介紹了Linux設(shè)備驅(qū)動編程基礎(chǔ)和字符設(shè)備驅(qū)動編程的基本思路,并介紹了在S3C2410開發(fā)平臺上編寫GPIO驅(qū)動和按鍵驅(qū)動程序的基本思路。
第8章為Android應(yīng)用編程,包括Android應(yīng)用開發(fā)環(huán)境搭建、Android應(yīng)用圖形界面設(shè)計(jì)基礎(chǔ)、Android主要組件等。
第9章為Android播放器項(xiàng)目設(shè)計(jì),以一個(gè)簡易的Android播放器為例,將Android應(yīng)用開發(fā)所需掌握的相關(guān)知識貫穿起來,讓讀者能對Android應(yīng)用開發(fā)有一個(gè)全局的視野。
本書由華清遠(yuǎn)見嵌入式學(xué)院資深講師苗德行、馮建、劉洪濤、潘啟勇編著并統(tǒng)校全稿。還要感謝華清遠(yuǎn)見嵌入式學(xué)院,教材內(nèi)容參考了學(xué)院與嵌入式企業(yè)需求無縫對接的、科學(xué)的專業(yè)人才培養(yǎng)體系。同時(shí),嵌入式學(xué)院從業(yè)或執(zhí)教多年的行業(yè)專家團(tuán)隊(duì)也對教材的編寫工作作出了貢獻(xiàn),張志華、蔡蒙、王利麗、張丹、楊曼、譚翠君、關(guān)曉強(qiáng)、李媛媛、盧閆進(jìn)、趙松、邱迎龍和賈燕楓等教師在書稿的編寫過程中認(rèn)真閱讀了所有章節(jié),提供了大量在實(shí)際教學(xué)中積累的重要素材,對教材結(jié)構(gòu)、內(nèi)容提出了中肯的建議,并在后期審校工作中提供了很多幫助,在此表示衷心的感謝。
……