本書(shū)結(jié)合大量實(shí)例,講解了嵌入式Linux應(yīng)用程序設(shè)計(jì)各個(gè)方面的基本方法及必要的核心概念。主要內(nèi)容包括搭建嵌入式Linux開(kāi)發(fā)環(huán)境、嵌入式文件I/O編程、嵌入式Linux多任務(wù)編程、嵌入式Linux進(jìn)程間通信、嵌入式Linux多線程編程、嵌入式Linux網(wǎng)絡(luò)編程、嵌入式Linux設(shè)備驅(qū)動(dòng)編程、Android應(yīng)用編程、Android播放器項(xiàng)目設(shè)計(jì)等。重視應(yīng)用是貫穿全書(shū)的最大特點(diǎn),在各章和全書(shū)結(jié)尾分別設(shè)置了在項(xiàng)目實(shí)踐中常見(jiàn)或類似的應(yīng)用實(shí)例。
第1章 搭建嵌入式Linux開(kāi)發(fā)環(huán)境
1.1 構(gòu)建嵌入式Linux交叉開(kāi)發(fā)環(huán)境
1.1.1 搭建嵌入式交叉編譯環(huán)境
1.1.2 配置主機(jī)交叉開(kāi)發(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)核移植的簡(jiǎn)介
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ǔ)知識(shí)
2.4.2 串口配置
2.4.3 串口使用
2.5 標(biāo)準(zhǔn)I/O編程
2.6 實(shí)驗(yàn)內(nèi)容
2.6.1 文件讀寫(xiě)及上鎖
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 編寫(xiě)多進(jìn)程程序
3.3.2 編寫(xiě)守護(hù)進(jìn)程
3.4 本章小結(jié)
3.5 本章習(xí)題
第4章 嵌入式Linux進(jìn)程間通信
4.1 Linux下進(jìn)程間通信概述
4.2 管道通信
4.2.1 管道簡(jiǎn)介
4.2.2 無(wú)名管道系統(tǒng)調(diào)用
4.2.3 標(biāo)準(zhǔn)流管道
4.2.4 有名管道(FIFO)
4.3 信號(hào)通信
4.3.1 信號(hào)概述
4.3.2 信號(hào)發(fā)送與捕捉
4.4 信號(hào)量
4.4.1 信號(hào)量概述
4.4.2 信號(hào)量編程
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ò)高級(jí)編程
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ū)動(dòng)編程
7.1 設(shè)備驅(qū)動(dòng)編程基礎(chǔ)
7.1.1 Linux設(shè)備驅(qū)動(dòng)概述
7.1.2 Linux內(nèi)核模塊編程
7.2 字符設(shè)備驅(qū)動(dòng)編程
7.2.1 字符設(shè)備驅(qū)動(dòng)編寫(xiě)流程
7.2.2 重要的數(shù)據(jù)結(jié)構(gòu)
7.2.3 設(shè)備驅(qū)動(dòng)程序主要組成
7.3 GPIO驅(qū)動(dòng)程序?qū)嵗?br />7.3.1 GPIO工作原理
7.3.2 GPIO驅(qū)動(dòng)程序
7.4 按鍵驅(qū)動(dòng)程序?qū)嵗?br />7.4.1 Linux設(shè)備樹(shù)
7.4.2 中斷編程
7.4.3 按鍵工作原理
7.4.4 按鍵驅(qū)動(dòng)程序
7.4.5 按鍵驅(qū)動(dòng)的測(cè)試
7.5 本章小結(jié)
7.6 本章習(xí)題
第8章 Android應(yīng)用編程
8.1 Android發(fā)展簡(jiǎn)史
8.2 Android應(yīng)用開(kāi)發(fā)環(huán)境
8.2.1 Android體系架構(gòu)簡(jiǎn)介
8.2.2 搭建Android應(yīng)用開(kāi)發(fā)環(huán)境
8.2.3 編寫(xiě)第一個(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 簡(jiǎn)易音樂(lè)播放器應(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é)要求組織編寫(xiě),各自對(duì)應(yīng)的主干課程之間既相對(duì)獨(dú)立又有機(jī)銜接,整套教材具有系統(tǒng)性。《從實(shí)踐中學(xué)ARM體系結(jié)構(gòu)與接口技術(shù)》側(cè)重介紹接口技術(shù);在操作系統(tǒng)教材方面,根據(jù)各院校的教學(xué)重點(diǎn)和行業(yè)實(shí)際應(yīng)用情況,編寫(xiě)了《從實(shí)踐中學(xué)嵌入式Linux操作系統(tǒng)》;考慮到嵌入式專業(yè)對(duì)學(xué)生C語(yǔ)言能力要求較高,編寫(xiě)了《從實(shí)踐中學(xué)嵌入式LinuxC編程》,可作為“C語(yǔ)言基礎(chǔ)”課程的后續(xù)提高課程使用;《從實(shí)踐中學(xué)嵌入式Linux應(yīng)用程序開(kāi)發(fā)(第2版)》則重點(diǎn)突出了貫穿前面所學(xué)知識(shí)的實(shí)訓(xùn)內(nèi)容,供“嵌入式Linux應(yīng)用開(kāi)發(fā)”課程使用。
書(shū)中結(jié)合大量代碼和實(shí)例,循序漸進(jìn)地講解了嵌入式Linux應(yīng)用軟件開(kāi)發(fā)的核心技能、經(jīng)驗(yàn)和技巧。
全書(shū)共9章。前7章是對(duì)Linux環(huán)境下應(yīng)用開(kāi)發(fā)方法的學(xué)習(xí),各章包含相應(yīng)的實(shí)驗(yàn)內(nèi)容;第8章是Android應(yīng)用編程的基礎(chǔ)知識(shí);第9章安排了一個(gè)Android應(yīng)用的實(shí)訓(xùn)內(nèi)容。
第1章為搭建嵌入式Linux開(kāi)發(fā)環(huán)境,首先介紹了交叉編譯環(huán)境等嵌入式開(kāi)發(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)程間通信方法,包括管道通信、信號(hào)通信、信號(hào)量、共享內(nèi)存、消息隊(duì)列等。
第5章為嵌入式Linux多線程編程,主要講解了Linux環(huán)境下的多線程編程方法及注意事項(xiàng)。
第6章為嵌入式Linux網(wǎng)絡(luò)編程,主要講解了Linux環(huán)境下的網(wǎng)絡(luò)編程方法,涉及網(wǎng)絡(luò)的非阻塞訪問(wèn)、異步處理、多路復(fù)用等。
第7章為嵌入式Linux設(shè)備驅(qū)動(dòng)編程,主要介紹了Linux設(shè)備驅(qū)動(dòng)編程基礎(chǔ)和字符設(shè)備驅(qū)動(dòng)編程的基本思路,并介紹了在S3C2410開(kāi)發(fā)平臺(tái)上編寫(xiě)GPIO驅(qū)動(dòng)和按鍵驅(qū)動(dòng)程序的基本思路。
第8章為Android應(yīng)用編程,包括Android應(yīng)用開(kāi)發(fā)環(huán)境搭建、Android應(yīng)用圖形界面設(shè)計(jì)基礎(chǔ)、Android主要組件等。
第9章為Android播放器項(xiàng)目設(shè)計(jì),以一個(gè)簡(jiǎn)易的Android播放器為例,將Android應(yīng)用開(kāi)發(fā)所需掌握的相關(guān)知識(shí)貫穿起來(lái),讓讀者能對(duì)Android應(yīng)用開(kāi)發(fā)有一個(gè)全局的視野。
本書(shū)由華清遠(yuǎn)見(jiàn)嵌入式學(xué)院資深講師苗德行、馮建、劉洪濤、潘啟勇編著并統(tǒng)校全稿。還要感謝華清遠(yuǎn)見(jiàn)嵌入式學(xué)院,教材內(nèi)容參考了學(xué)院與嵌入式企業(yè)需求無(wú)縫對(duì)接的、科學(xué)的專業(yè)人才培養(yǎng)體系。同時(shí),嵌入式學(xué)院從業(yè)或執(zhí)教多年的行業(yè)專家團(tuán)隊(duì)也對(duì)教材的編寫(xiě)工作作出了貢獻(xiàn),張志華、蔡蒙、王利麗、張丹、楊曼、譚翠君、關(guān)曉強(qiáng)、李媛媛、盧閆進(jìn)、趙松、邱迎龍和賈燕楓等教師在書(shū)稿的編寫(xiě)過(guò)程中認(rèn)真閱讀了所有章節(jié),提供了大量在實(shí)際教學(xué)中積累的重要素材,對(duì)教材結(jié)構(gòu)、內(nèi)容提出了中肯的建議,并在后期審校工作中提供了很多幫助,在此表示衷心的感謝。
……