嵌入式 Linux 系統(tǒng)開(kāi)發(fā)入門
定 價(jià):48 元
- 作者:方元
- 出版時(shí)間:2018/5/1
- ISBN:9787121335341
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP316.85
- 頁(yè)碼:260
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書(shū)基于嵌入式Linux系統(tǒng),介紹其軟件開(kāi)發(fā)方法,重點(diǎn)介紹多任務(wù)、網(wǎng)絡(luò)和設(shè)備驅(qū)動(dòng)的編程。本書(shū)分為兩個(gè)部分。第1部分是基礎(chǔ)篇(第1~8章),內(nèi)容包括Linux系統(tǒng)的基本使用方法、Linux系統(tǒng)的主要開(kāi)發(fā)工具、文件讀寫(xiě)、多任務(wù)機(jī)制、網(wǎng)絡(luò)套接字編程、模塊與設(shè)備驅(qū)動(dòng)、嵌入式Linux系統(tǒng)開(kāi)發(fā)、GUI程序設(shè)計(jì)初步。第2部分是實(shí)驗(yàn)篇(第9~21章),內(nèi)容包括實(shí)驗(yàn)系統(tǒng)介紹、嵌入式系統(tǒng)開(kāi)發(fā)實(shí)驗(yàn)、引導(dǎo)加載器、內(nèi)核配置和編譯、根文件系統(tǒng)的構(gòu)建、圖形用戶接口、音頻接口程序設(shè)計(jì)、嵌入式系統(tǒng)中的I/O接口驅(qū)動(dòng)、觸摸屏移植、Qt/Embedded移植、MPlayer移植、GTK+移植、實(shí)時(shí)操作系統(tǒng)RTEMS。本書(shū)可作為電子信息、通信、自動(dòng)化等專業(yè)相關(guān)課程的教材,也可供相關(guān)領(lǐng)域的工程技術(shù)人員學(xué)習(xí)、參考。
方元,博士,南京大學(xué)電子科學(xué)與工程學(xué)院副教授,長(zhǎng)期講授微機(jī)原理、嵌入式系統(tǒng)、DSP原理與應(yīng)用等課程,獲得2013年石林獎(jiǎng)教金。
第1部分 基 礎(chǔ) 篇
第1章 Linux系統(tǒng)的基本使用方法
1.1 Linux系統(tǒng)的使用環(huán)境
1.1.1 Linux系統(tǒng)的目錄結(jié)構(gòu)
1.1.2 Linux系統(tǒng)的用戶
1.2 命令行工作方式
1.2.1 終端
1.2.2 目錄操作
1.2.3 文件操作
1.2.4 瀏覽文件
1.2.5 打包、壓縮和解壓
1.2.6 進(jìn)程控制
1.2.7 管道與重定向
1.2.8 shell腳本程序
1.3 規(guī)則表達(dá)式
1.4 與開(kāi)發(fā)相關(guān)的常用命令
1.4.1 文件比較
1.4.2 文本搜索
1.4.3 流編輯
1.5 文本編輯工具
1.5.1 vim工作模式
1.5.2 vim常用編輯命令
1.5.3 vim高級(jí)操作
本章練習(xí)
本章參考資源
第2章 Linux系統(tǒng)的主要開(kāi)發(fā)工具
2.1 gcc工具鏈
2.1.1 gcc編譯器
2.1.2 匯編器和鏈接器
2.2 代碼分析與轉(zhuǎn)換工具
2.2.1 函數(shù)地址解析addr2line
2.2.2 符號(hào)列表nm
2.2.3 目標(biāo)文件轉(zhuǎn)儲(chǔ)objdump
2.2.4 代碼剖析gprof
2.2.5 ELF符號(hào)解析readelf
2.2.6 代碼瘦身strip
2.3 GNU Make
2.3.1 源代碼的組織
2.3.2 第一個(gè)Makefile
2.3.3 GNU Make基本規(guī)則
2.3.4 完善Makefile
2.3.5 GNU Make的依賴
2.4 開(kāi)源軟件的移植
2.4.1 工具準(zhǔn)備
2.4.2 源代碼的組織結(jié)構(gòu)
2.4.3 配置編譯環(huán)境
2.4.4 編譯和安裝
2.5 調(diào)試工具
2.5.1 gdb使用示例
2.5.2 遠(yuǎn)程調(diào)試
2.6 版本控制系統(tǒng)
2.6.1 集中式版本控制系統(tǒng)svn
2.6.2 追溯歷史、分支與合并
2.6.3 分布式版本控制系統(tǒng)git
2.6.4 git基本操作
2.6.5 git分支與合并
2.7 合理地組織程序
2.7.1 頭文件的要求
2.7.2 C語(yǔ)言源文件
2.7.3 庫(kù)的產(chǎn)生和作用
2.7.4 項(xiàng)目的目錄組織結(jié)構(gòu)
2.8 交叉編譯工具鏈的制作
本章練習(xí)
本章參考資源
第3章 文件讀寫(xiě)
3.1 文件系統(tǒng)的概念
3.2 文件與目錄
3.2.1 Linux系統(tǒng)中的虛擬文件系統(tǒng)
3.2.2 Linux系統(tǒng)的文件類型
3.2.3 改變文件屬性
3.3 文件描述符
3.3.1 標(biāo)準(zhǔn)I/O設(shè)備
3.3.2 有關(guān)文件操作的系統(tǒng)功能調(diào)用
3.3.3 文件描述符復(fù)制
3.3.4 文件描述符操作
3.3.5 文件共享與讀寫(xiě)沖突
3.4 標(biāo)準(zhǔn)I/O庫(kù)的文件操作
3.4.1 打開(kāi)文件
3.4.2 文件流讀寫(xiě)
3.4.3 文件流定位
3.4.4 格式化I/O文件操作函數(shù)
本章練習(xí)
本章參考資源
第4章 多任務(wù)機(jī)制
4.1 理解進(jìn)程的概念
4.1.1 什么是進(jìn)程
4.1.2 進(jìn)程的狀態(tài)
4.1.3 進(jìn)程的創(chuàng)建和結(jié)束
4.1.4 創(chuàng)建進(jìn)程的例子
4.2 進(jìn)程間的數(shù)據(jù)交換
4.2.1 管道
4.2.2 共享內(nèi)存
4.2.3 消息隊(duì)列
4.3 守護(hù)進(jìn)程
4.4 線程——輕量級(jí)進(jìn)程
4.5 線程的競(jìng)爭(zhēng)與同步
4.5.1 互斥鎖
4.5.2 信號(hào)和信號(hào)量
4.5.3 進(jìn)程與線程的對(duì)比
本章練習(xí)
本章參考資源
第5章 網(wǎng)絡(luò)套接字編程
5.1 套接字API
5.1.1 兩種類型的套接口
5.1.2 網(wǎng)絡(luò)協(xié)議分層
5.1.3 關(guān)閉套接口
5.2 TCP網(wǎng)絡(luò)程序分析
5.2.1 網(wǎng)絡(luò)地址
5.2.2 端口
5.3 TCP服務(wù)器程序設(shè)計(jì)
5.4 簡(jiǎn)單的數(shù)據(jù)流對(duì)話
5.5 多任務(wù)數(shù)據(jù)流對(duì)話
5.6 基于數(shù)據(jù)報(bào)的對(duì)話程序
本章練習(xí)
本章參考資源
第6章 模塊與設(shè)備驅(qū)動(dòng)
6.1 設(shè)備驅(qū)動(dòng)程序簡(jiǎn)介
6.1.1 內(nèi)核功能劃分
6.1.2 設(shè)備驅(qū)動(dòng)程序的作用
6.1.3 設(shè)備和模塊分類
6.2 構(gòu)建和運(yùn)行模塊
6.2.1 第一個(gè)示例模塊
6.2.2 模塊的編譯
6.2.3 模塊的運(yùn)行
6.2.4 內(nèi)核模塊與應(yīng)用程序
6.3 模塊的結(jié)構(gòu)
6.3.1 模塊的初始化和清除函數(shù)
6.3.2 內(nèi)核符號(hào)表
6.3.3 模塊的卸載
6.3.4 資源使用
6.4 字符設(shè)備驅(qū)動(dòng)程序
6.4.1 timer的設(shè)計(jì)
6.4.2 文件操作
6.4.3 打開(kāi)設(shè)備
6.4.4 I/O控制
6.4.5 阻塞型I/O
6.5 設(shè)備驅(qū)動(dòng)程序的使用
6.5.1 驅(qū)動(dòng)程序與應(yīng)用程序
6.5.2 內(nèi)核源碼中的模塊結(jié)構(gòu)
6.5.3 將模塊加入內(nèi)核
6.6 調(diào)試技術(shù)
6.6.1 輸出調(diào)試
6.6.2 查詢調(diào)試
6.6.3 監(jiān)視調(diào)試
6.6.4 故障調(diào)試
6.6.5 使用gdb調(diào)試工具
6.6.6 使用內(nèi)核調(diào)試工具
6.7 硬件管理與中斷處理
6.7.1 I/O寄存器和常規(guī)內(nèi)存
6.7.2 中斷
6.8 內(nèi)核的定時(shí)
6.8.1 時(shí)間間隔
6.8.2 獲取當(dāng)前時(shí)間
6.8.3 延遲執(zhí)行
6.8.4 定時(shí)器
本章練習(xí)
本章參考資源
第7章 嵌入式Linux系統(tǒng)開(kāi)發(fā)
7.1 引導(dǎo)裝載程序
7.2 內(nèi)核設(shè)置
7.2.1 內(nèi)核布局
7.2.2 內(nèi)核鏈接和裝入
7.2.3 參數(shù)傳遞和內(nèi)核引導(dǎo)
7.3 設(shè)備驅(qū)動(dòng)程序
7.3.1 幀緩沖區(qū)驅(qū)動(dòng)程序
7.3.2 輸入設(shè)備驅(qū)動(dòng)程序
7.3.3 MTD驅(qū)動(dòng)程序
7.3.4 MTD驅(qū)動(dòng)程序設(shè)置
7.4 嵌入式設(shè)備的文件系統(tǒng)
7.4.1 擴(kuò)展文件系統(tǒng)
7.4.2 日志閃存文件系統(tǒng)的第2版(JFFS2)
7.4.3 tmpfs
7.5 圖形用戶界面(GUI)
7.5.1 XFree86 4.X(帶幀緩沖區(qū)支持的X11R6)
7.5.2 Microwindows
7.5.3 Microwindows上的FLTKAPI
7.5.4 Qt/Embedded
7.6 幀緩沖
第8章 GUI程序設(shè)計(jì)初步
8.1 基本組件介紹
8.1.1 一個(gè)簡(jiǎn)單的圖形接口程序
8.1.2 按鈕類組件
8.1.3 數(shù)據(jù)類組件
8.1.4 菜單欄與工具欄
8.2 畫(huà)圖區(qū)
8.3 界面布局方法
8.3.1 盒子
8.3.2 表格
8.3.3 對(duì)位
8.3.4 便簽
第2部分 實(shí) 驗(yàn) 篇
第9章 實(shí)驗(yàn)系統(tǒng)介紹
9.1 實(shí)驗(yàn)系統(tǒng)性能概括
9.2 軟件
9.2.1 交叉編譯工具鏈
9.2.2 工具鏈安裝
9.2.3 嵌入式操作系統(tǒng)軟件
9.3 實(shí)驗(yàn)系統(tǒng)搭建
第10章 嵌入式系統(tǒng)開(kāi)發(fā)實(shí)驗(yàn)
10.1 實(shí)驗(yàn)?zāi)康? 10.2 嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程
10.2.1 串口設(shè)置(使用minicom)
10.2.2 TFTP(簡(jiǎn)單文件傳輸協(xié)議)
10.2.3 NFS服務(wù)器架設(shè)
10.2.4 編譯應(yīng)用程序
10.3 實(shí)驗(yàn)報(bào)告要求
第11章 引導(dǎo)加載器
11.1 實(shí)驗(yàn)?zāi)康? 11.2 BootLoader
11.2.1 BootLoader的作用
11.2.2 BootLoader程序結(jié)構(gòu)框架
11.3 實(shí)驗(yàn)內(nèi)容
11.3.1 獲取U-Boot
11.3.2 配置BootLoader選項(xiàng)
11.3.3 制作TF卡
11.4 實(shí)驗(yàn)報(bào)告要求
第12章 內(nèi)核配置和編譯
12.1 實(shí)驗(yàn)?zāi)康? 12.2 相關(guān)知識(shí)
12.2.1 內(nèi)核源代碼目錄結(jié)構(gòu)
12.2.2 內(nèi)核配置的基本結(jié)構(gòu)
12.2.3 編譯規(guī)則Makefile
12.3 編譯內(nèi)核
12.3.1 Makefile的選項(xiàng)參數(shù)
12.3.2 內(nèi)核配置項(xiàng)介紹
12.4 實(shí)驗(yàn)內(nèi)容
12.5 實(shí)驗(yàn)報(bào)告要求
第13章 根文件系統(tǒng)的構(gòu)建
13.1 實(shí)驗(yàn)?zāi)康? 13.2 Linux文件系統(tǒng)的類型
13.2.1 EXT文件系統(tǒng)
13.2.2 NFS文件系統(tǒng)
13.2.3 JFFS2文件系統(tǒng)
13.2.4 YAFFS2
13.2.5 RAM Disk
13.3 文件系統(tǒng)的制作
13.3.1 BusyBox介紹
13.3.2 BusyBox的編譯
13.3.3 配置文件系統(tǒng)
13.3.4 制作ramdisk文件鏡像
13.3.5 制作init_ramfs
13.4 實(shí)驗(yàn)內(nèi)容
13.5 實(shí)驗(yàn)報(bào)告要求
第14章 圖形用戶接口
14.1 實(shí)驗(yàn)?zāi)康? 14.2 原理概述
14.2.1 幀緩沖設(shè)備
14.2.2 幀緩沖與色彩
14.2.3 LCD控制器
14.2.4 幀緩沖設(shè)備操作
14.3 實(shí)驗(yàn)內(nèi)容
14.3.1 實(shí)現(xiàn)基本畫(huà)圖功能
14.3.2 合理的軟件結(jié)構(gòu)
14.4 實(shí)驗(yàn)報(bào)告要求
第15章 音頻接口程序設(shè)計(jì)
15.1 實(shí)驗(yàn)?zāi)康? 15.2 接口介紹
15.3 應(yīng)用軟件設(shè)計(jì)
15.3.1 OSS
15.3.2 ALSA
15.4 實(shí)驗(yàn)內(nèi)容
15.5 實(shí)驗(yàn)報(bào)告要求
第16章 嵌入式系統(tǒng)中的I/O接口驅(qū)動(dòng)
16.1 實(shí)驗(yàn)?zāi)康? 16.2 接口電路介紹
16.3 I/O端口地址映射
16.4 LED控制
16.5 實(shí)驗(yàn)內(nèi)容
16.6 實(shí)驗(yàn)報(bào)告要求
第17章 觸摸屏移植
17.1 實(shí)驗(yàn)?zāi)康? 17.2 Linux系統(tǒng)的觸摸屏支持
17.2.1 觸摸屏的基本原理
17.2.2 內(nèi)核配置
17.2.3 觸摸屏庫(kù)tslib
17.2.4 觸摸屏庫(kù)的安裝和測(cè)試
17.3 實(shí)驗(yàn)內(nèi)容
17.4 實(shí)驗(yàn)報(bào)告要求
第18章 Qt/Embedded移植
18.1 實(shí)驗(yàn)?zāi)康? 18.2 Qt/Embedded介紹
18.2.1 Qt/Embedded軟件包結(jié)構(gòu)
18.2.2 編譯環(huán)境設(shè)置
18.2.3 編譯過(guò)程
18.2.4 Qt/Embedded的安裝
18.2.5 Qt-4.8版本編譯
18.3 實(shí)驗(yàn)要求
18.4 實(shí)驗(yàn)報(bào)告要求
第19章 MPlayer移植
19.1 實(shí)驗(yàn)?zāi)康? 19.2 軟件介紹
19.3 編譯準(zhǔn)備
19.4 編譯
19.5 擴(kuò)展功能
19.6 實(shí)驗(yàn)報(bào)告要求
第20章 GTK+移植
20.1 實(shí)驗(yàn)?zāi)康? 20.2 GTK+的背景
20.3 GTK+庫(kù)的依賴關(guān)系
20.4 編譯過(guò)程
20.4.1 編譯準(zhǔn)備
20.4.2 一般方法
20.4.3 環(huán)境變量
20.4.4 一些特殊的設(shè)置
20.4.5 編譯技巧
20.5 測(cè)試
20.6 實(shí)驗(yàn)要求
20.7 實(shí)驗(yàn)報(bào)告要求
第21章 實(shí)時(shí)操作系統(tǒng)RTEMS
21.1 實(shí)驗(yàn)?zāi)康? 21.2 實(shí)時(shí)操作系統(tǒng)RTEMS簡(jiǎn)介
21.3 編譯RTEMS
21.4 啟用RTEMS終端
21.5 實(shí)驗(yàn)報(bào)告要求