嵌入式Linux系統(tǒng)開發(fā)教程(第2版)
定 價:36 元
叢書名:高等學校計算機應用規(guī)劃教材
- 作者:賀丹丹
- 出版時間:2014/7/1
- ISBN:9787302365044
- 出 版 社:清華大學出版社
- 中圖法分類:TP316.85
- 頁碼:347
- 紙張:膠版紙
- 版次:2
- 開本:16K
《嵌入式Linux系統(tǒng)開發(fā)教程(第2版)/高等學校計算機應用規(guī)劃教材》系統(tǒng)論述了在Linux環(huán)境下開發(fā)嵌入式系統(tǒng)的設(shè)計思想、設(shè)計方法及開發(fā)流程,通過實例與設(shè)計項目,幫助讀者盡快掌握嵌入式系統(tǒng)的基本概念,提高嵌入式設(shè)計技能。《嵌入式Linux系統(tǒng)開發(fā)教程(第2版)/高等學校計算機應用規(guī)劃教材》共12章,內(nèi)容包括嵌入式基礎(chǔ)知識、Linux概述、ARM體系架構(gòu)、嵌入式編程、交叉工具鏈、Bootloader、定制內(nèi)核、文件系統(tǒng)、驅(qū)動程序開發(fā)基礎(chǔ)、嵌入式圖形設(shè)計等!肚度胧絃inux系統(tǒng)開發(fā)教程(第2版)/高等學校計算機應用規(guī)劃教材》的最后給出了一個綜合實例,幫助讀者理解嵌入式Linux的開發(fā)方法和技巧。
《嵌入式Linux系統(tǒng)開發(fā)教程(第2版)/高等學校計算機應用規(guī)劃教材》可作為高校計算機、通信、電子專業(yè)相關(guān)課程的教材,也可供廣大嵌入式開發(fā)人員參考。
讀者對象:
《嵌入式Linux系統(tǒng)開發(fā)教程(第2版)/高等學校計算機應用規(guī)劃教材》可作為高等學校計算機、通信、電子等專業(yè)嵌入式設(shè)計課
程的教材,也可供嵌入式開發(fā)技術(shù)人員參考。
《嵌入式Linux系統(tǒng)開發(fā)教程(第2版)/高等學校計算機應用規(guī)劃教材》特色:
·以通俗易懂的語言詳細介紹嵌入式Linux系統(tǒng)開發(fā)的基礎(chǔ)知識、開發(fā)方法和相關(guān)技巧,避免冗長的理論介紹,便于讀者理解。
·書中配有大量典型的嵌入式系統(tǒng)開發(fā)實例,具有很強的針對性,讀者可通過這些實例,深入理解嵌入式Linux系統(tǒng)的開發(fā)方法。
·對于程序中的關(guān)鍵部分,都給予特別說明,點明要點和應注意的地方,使讀者深刻理解程序的設(shè)計思想。
·章前給出重點內(nèi)容,章后給出了豐富的練習題,以加深讀者對知識點的理解和掌握,并能做到舉一反三。
嵌入式Linux系統(tǒng)由于具有開源、網(wǎng)絡(luò)功能強大、內(nèi)核穩(wěn)定、高效等特性,在產(chǎn)品開發(fā)周期、產(chǎn)品的功能可擴充性、開發(fā)時的人力投入等方面都具有顯著的優(yōu)勢,因此廣泛應用于高、中、低端智能電子設(shè)備中。而它與ARM的結(jié)合,更是一種主流的解決方案。嵌入式Linux+ARM已經(jīng)廣泛應用于機頂盒、智能手機、平板電腦、MPC(多媒體個人計算機)、網(wǎng)絡(luò)設(shè)備、工業(yè)控制等領(lǐng)域,并且具有良好的市場前景。
嵌入式系統(tǒng)是以應用為中心,以計算機技術(shù)為基礎(chǔ),采用可裁剪軟硬件,適用于對功能、可靠性、成本、體積、功耗等要求嚴格的專用計算機系統(tǒng)。
在新興的嵌入式系統(tǒng)產(chǎn)品中,常見的有MP3、智能手機、平板電腦、數(shù)字播放器、GPS、機頂盒、嵌入式服務器、家庭游戲網(wǎng)關(guān)、VoIP、PDA、數(shù)字視訊錄像機及瘦客戶機等。嵌入式系統(tǒng)是未來生活的一個基礎(chǔ)平臺,將會大大影響人們的生活方式。
本書將系統(tǒng)地講解嵌入式Linux開發(fā)流程中的各個步驟,詳細解析各個流程中的疑點、難點。本書分3個部分,共12章。各部分內(nèi)容如下:
第一部分為基礎(chǔ)知識篇,主要講解嵌入式系統(tǒng)與Linux相關(guān)的基礎(chǔ)知識,其中第1章為嵌入式系統(tǒng)基礎(chǔ),主要講解嵌入式相關(guān)的概念、歷史、應用及前景;第2章為Linux概論,主要是與Linux基礎(chǔ)相關(guān)的知識,如Linux桌面系統(tǒng)、Linux常用軟件的使用及Linux常見命令等;第3章為ARM體系架構(gòu),主要介紹ARM架構(gòu)的相關(guān)知識,如ARM指令集、ARM處理器基本原理等;第4章為嵌入式編程,將簡要介紹嵌入式匯編語言及C語言的編程基礎(chǔ)。
第二部分為開發(fā)入門篇,主要介紹嵌入式開發(fā)的基本方法,這部分是本書的重點,也是嵌入式Linux學習的難點,讀者要認真學習。這部分共5章,其中第5章介紹了嵌入式開發(fā)的軟硬件環(huán)境,如工具的驅(qū)動程序安裝、Ubuntu的安裝、DNW的使用、NFS的配置和使用,以及Telnet、ftp等的配置使用;第6章主要講解交叉編譯環(huán)境的概念以及工具鏈的編譯、獲;第7章介紹了Bootloader及典型引導程序的制作,如Vivi;第8章講解內(nèi)核的定制;第9章介紹了嵌入式Linux文件系統(tǒng),這部分內(nèi)容較多,希望讀者重點掌握。
第三部分是提高篇,主要包括第10章驅(qū)動程序的開發(fā);第11章嵌入式Linux的圖形設(shè)計;第12章將給出一個開發(fā)實例,使讀者能系統(tǒng)地了解嵌入式Linux的開發(fā)過程。
本書內(nèi)容豐富,實例典型,有很強的針對性。書中各章不僅詳細介紹了實例的具體操作步驟,而且還配有一定數(shù)量的練習題供讀者學習使用。讀者只需按照書中介紹的步驟一步步地實際操作,就能完全掌握本書的內(nèi)容。
盡管本書只討論如何在嵌入式系統(tǒng)中使用Linux,但是對想要在嵌入式系統(tǒng)中使用BSD(伯克利軟件發(fā)行中心)的開發(fā)者來說也會有一些幫助,但本書所作的許多說明都必須依據(jù)BSD與Linux間的差異重新詮釋。
本書可作為高等學校計算機、通信、電子等專業(yè)嵌入式設(shè)計課程的教材,也可供嵌入式開發(fā)技術(shù)人員參考。
本書PPT教學課件可以通過http://www.tupwk.com.cn/downpage下載。
本書由賀丹丹編著,此外,馬建紅、許小榮、張澤、劉榮、張璐、王統(tǒng)、王東、周艷麗、劉波、蘇靜等也參與了本書的編寫,在此,同樣致以誠摯的謝意!
由于時間倉促及作者水平所限,本書難免有紕漏和不妥之處,敬請廣大讀者批評指正。
編 者
2013年12月
第1章 嵌入式系統(tǒng)基礎(chǔ)
1.1 嵌入式系統(tǒng)
1.1.1 嵌入式系統(tǒng)的概念
1.1.2 嵌入式系統(tǒng)的組成
1.1.3 嵌入式系統(tǒng)的發(fā)展
1.1.4 嵌入式系統(tǒng)的應用前景
1.2 嵌入式處理器
1.2.1 嵌入式微控制器(EMCU)
1.2.2 嵌入式微處理器(EMPU)
1.2.3 嵌入式數(shù)字信號處理器(EDSP)
1.2.4 嵌入式片上系統(tǒng)(ESOC)
1.3 嵌入式操作系統(tǒng)
1.3.1 Linux
1.3.2 VxWorks
1.3.3 WinCE
1.3.4 μC/OS-II
1.3.5 eCOS
1.3.6 Android
1.3.7 iOS
1.3.8 WP和Windows RT
1.4 嵌入式系統(tǒng)設(shè)計
1.4.1 嵌入式系統(tǒng)開發(fā)流程
1.4.2 嵌入式系統(tǒng)開發(fā)方法
思考與練習
第2章 Linux基礎(chǔ)
2.1 Linux簡介
2.1.1 Linux的歷史
2.1.2 Linux特點
2.1.3 Linux與Windows
2.1.4 Linux的主要組成部分
2.1.5 Linux的種類和特性
2.2 圖形操作界面
2.2.1 Linux與圖形界面
2.2.2 KDE
2.2.3 GNOME
2.2.4 GNOME與KDE發(fā)展趨勢
2.3 Linux的基本命令行操作
2.3.1 目錄操作
2.3.2 文件操作
2.3.3 壓縮、解壓與打包
2.3.4 磁盤管理
2.3.5 用戶系統(tǒng)
2.3.6 網(wǎng)絡(luò)管理
2.4 Linux內(nèi)核
思考與練習
第3章 ARM體系架構(gòu)
3.1 ARM微處理器簡介
3.1.1 ARM微處理器的發(fā)展
3.1.2 ARM微處理器的特點和應用
3.2 ARM微處理器系列
3.2.1 Classic(傳統(tǒng))系列
3.2.2 Cortex-M系列
3.2.3 Cortex-R系列
3.2.4 Cortex-A系列
3.2.5 Cortex-A50系列
3.3 ARM編程模型
3.3.1 ARM硬件架構(gòu)
3.3.2 ARM微處理器模式
3.3.3 ARM寄存器
3.3.4 異常處理
3.3.5 ARM的存儲器組織
3.4 ARM指令系統(tǒng)
3.4.1 ARM指令格式
3.4.2 ARM指令的尋址方式
3.4.3 ARM最常用指令和條件后綴
3.5 ARM微處理器的應用選型
思考與練習
第4章 嵌入式編程
4.1 ARM匯編語言程序設(shè)計
4.1.1 ARM匯編語言中的程序結(jié)構(gòu)
4.1.2 ARM匯編語言的語句格式
4.1.3 基于Linux下GCC的匯編語言程序結(jié)構(gòu)
4.1.4 基于Windows下ADS的匯編語言程序結(jié)構(gòu)
4.1.5 ARM匯編器所支持的偽指令
4.2 ARM匯編與C語言編程
4.2.1 基本的ATPCS規(guī)則
4.2.2 C語言中內(nèi)嵌匯編代碼
4.2.3 從匯編程序中訪問C程序變量
4.2.4 在匯編代碼中調(diào)用C函數(shù)
4.2.5 在C語言代碼中調(diào)用匯編函數(shù)
4.3 基于Linux的C語言編程
4.3.1 C語言編程概述
4.3.2 Linux下的C開發(fā)工具
4.3.3 vim編輯器
4.3.4 gedit編輯器
4.3.5 編譯器gcc
4.3.6 調(diào)試器gdb
4.3.7 項目管理器make
思考與練習
第5章 軟硬件開發(fā)環(huán)境
5.1 硬件環(huán)境
5.1.1 主機硬件環(huán)境
5.1.2 目標板硬件環(huán)境
5.2 Windows軟件環(huán)境
5.2.1 超級終端的設(shè)置
5.2.2 DNW的設(shè)置
5.2.3 設(shè)置GIVEIO驅(qū)動
5.3 Linux軟件環(huán)境
5.3.1 Linux系統(tǒng)的VMware安裝
5.3.2 Windows與Ubuntu雙系統(tǒng)安裝
5.3.3 Linux網(wǎng)絡(luò)服務配置
5.3.4 配置NFS服務
5.3.5 配置FTP服務
5.4 刻錄鏡像文件
5.4.1 刻錄工具
5.4.2 使用方法
思考與練習
第6章 交叉編譯工具
6.1 工具鏈軟件
6.1.1 工具鏈組成
6.1.2 構(gòu)建工具鏈
6.2 分步構(gòu)建交叉編譯鏈
6.2.1 準備工具
6.2.2 基本過程
6.2.3 詳細步驟
6.3 用Crosstool工具構(gòu)建交叉工具鏈
6.3.1 準備工具
6.3.2 基本過程
6.3.3 詳細步驟
6.4 使用現(xiàn)成的交叉工具
思考與練習
第7章 Bootloader詳解及移植
7.1 嵌入式Bootloader簡介
7.1.1 Bootloader功能
7.1.2 基于Bootloader軟件架構(gòu)
7.1.3 Bootloader的操作模式
7.1.4 Bootloader的依賴性
7.1.5 Bootloader的啟動方式
7.1.6 Bootloader啟動流程
7.1.7 各種Bootloader
7.2 Vivi
7.2.1 Vivi簡介
7.2.2 Vivi體系架構(gòu)
7.2.3 Vivi的運行過程分析
7.2.4 Vivi的配置與編譯
7.2.5 Vivi命令
7.3 Bootloader程序的調(diào)試和刻錄
思考與練習
第8章 定制內(nèi)核移植
8.1 Linux內(nèi)核源碼組織
8.2 內(nèi)核基本配置
8.2.1 內(nèi)核配置系統(tǒng)
8.2.2 Makefile
8.2.3 具體的配置操作
8.2.4 添加自己的代碼
8.3 內(nèi)核定制
8.3.1 獲取源碼
8.3.2 移植過程
8.4 內(nèi)核裁剪
8.4.1 取消虛擬內(nèi)存的支持
8.4.2 取消多余的調(diào)度器
8.4.3 取消對舊版本二進制執(zhí)行文件的支持
8.4.4 取消不必要的設(shè)備的支持
8.4.5 取消不需要的文件系統(tǒng)的支持
思考與練習
第9章 嵌入式Linux文件系統(tǒng)
9.1 嵌入式Linux的文件系統(tǒng)
9.1.1 文件系統(tǒng)結(jié)構(gòu)
9.1.2 文件系統(tǒng)特性
9.1.3 系統(tǒng)存儲設(shè)備及其管理機制
9.1.4 基于Flash閃存的文件系統(tǒng)
9.1.5 基于RAM的文件系統(tǒng)
9.1.6 網(wǎng)絡(luò)文件系統(tǒng)
9.2 根文件系統(tǒng)及其定制
9.2.1 根文件系統(tǒng)架構(gòu)
9.2.2 定制工具Busybox
9.2.3 庫文件構(gòu)建
9.2.4 設(shè)備文件的構(gòu)建
9.2.5 根文件系統(tǒng)初始化
9.3 文件系統(tǒng)的制作
9.3.1 根文件系統(tǒng)的制作
9.3.2 NFS文件系統(tǒng)的制作
9.3.3 Cramfs文件系統(tǒng)的制作
9.3.4 Yaffs文件系統(tǒng)的制作
9.3.5 Ramdisk文件系統(tǒng)的制作
思考與練習
第10章 嵌入式Linux驅(qū)動程序開發(fā)基礎(chǔ)
10.1 嵌入式Linux驅(qū)動程序概述
10.1.1 Linux驅(qū)動程序工作原理
10.1.2 Linux驅(qū)動程序功能
10.2 設(shè)備驅(qū)動程序的基礎(chǔ)知識
10.2.1 Linux的設(shè)備管理機制
10.2.2 驅(qū)動層次結(jié)構(gòu)
10.2.3 設(shè)備驅(qū)動程序與外界的接口
10.2.4 設(shè)備驅(qū)動程序的特點
10.2.5 驅(qū)動程序開發(fā)流程
10.3 模塊編程
10.3.1 模塊與內(nèi)核
10.3.2 建立模塊文件
10.3.3 編寫makefile
10.3.4 模塊加載
10.3.5 模塊的其他信息
10.3.6 模塊參數(shù)
10.4 字符設(shè)備驅(qū)動程序
10.4.1 相關(guān)的數(shù)據(jù)結(jié)構(gòu)
10.4.2 字符設(shè)備驅(qū)動程序開發(fā)流程
10.4.3 字符設(shè)備驅(qū)動程序擴展操作
10.5 網(wǎng)絡(luò)設(shè)備驅(qū)動程序
10.5.1 基本概念
10.5.2 網(wǎng)絡(luò)數(shù)據(jù)包處理流程
思考與練習
第11章 嵌入式Linux圖形設(shè)計
11.1 嵌入式GUI
11.1.1 嵌入式GUI簡介
11.1.2 嵌入式GUI需求
11.1.3 嵌入式GUI組成
11.1.4 Qt/Embedded
11.1.5 MiniGUI
11.1.6 MicroWindows
11.1.7 OpenGUI
11.1.8 Tiny-X
11.1.9 各種GUI比較
11.2 Qt/Embedded開發(fā)入門
11.2.1 Qt/Embedded簡介
11.2.2 Qt/Embedded架構(gòu)
11.2.3 Qt的開發(fā)環(huán)境
11.2.4 Qt的支撐工具及組件
11.2.5 Qt/Embedded對象模型
11.2.6 信號與插槽機制
11.2.7 Qt/Embedded常用的類
11.3 安裝Qt/Embedded
11.3.1 配置
11.3.2 編譯
11.3.3 測試
11.4 Qt設(shè)計實例——密碼驗證程序
11.4.1 快速安裝QDevelop和Qt Designer
11.4.2 界面設(shè)計
11.4.3 信號與槽
11.4.4 添加代碼
11.4.5 編譯
11.4.6 程序測試
11.4.7 移植
思考與練習
第12章 嵌入式視頻監(jiān)視系統(tǒng)開發(fā)實例
12.1 系統(tǒng)設(shè)計背景
12.2 系統(tǒng)總體設(shè)計
12.2.1 系統(tǒng)總體設(shè)計思路
12.2.2 系統(tǒng)的設(shè)計要求及特點
12.2.3 系統(tǒng)總體架構(gòu)設(shè)計
12.3 系統(tǒng)詳細設(shè)計
12.3.1 系統(tǒng)的硬件設(shè)計與調(diào)試
12.3.2 系統(tǒng)的軟件設(shè)計與調(diào)試
12.3.3 USB數(shù)據(jù)輸入驅(qū)動程序移植
12.3.4 USB攝像頭數(shù)據(jù)輸入驅(qū)動程序測試
12.3.5 嵌入式網(wǎng)絡(luò)視頻服務器的設(shè)計
12.3.6 Video4Linux程序設(shè)計
12.4 系統(tǒng)測試
12.4.1 準備工作
12.4.2 測試方法
12.4.3 測試結(jié)果