《嵌入式Linux開發(fā)實(shí)踐教程》從實(shí)用的角度出發(fā),介紹了嵌入式Linux中常用的內(nèi)容。這些內(nèi)容大部分是Linux開發(fā)過程中不同方面的工程師都需要掌握的知識。按照知識結(jié)構(gòu)可以分為以下幾個方面:嵌入式Linux的開發(fā)簡介(第1章);Linux操作系統(tǒng)(第2章);開發(fā)環(huán)境與編程基礎(chǔ)(第36章);Linux系統(tǒng)結(jié)構(gòu)(第79章);Linux GUI應(yīng)用開發(fā)(第10章)。
《嵌入式Linux開發(fā)實(shí)踐教程》可作為高職院校計算機(jī)應(yīng)用類專業(yè)、自動化類和電子信息類專業(yè)的教學(xué)用書,也適用于嵌入式Linux工程師增強(qiáng)能力、快速開發(fā)Linux系統(tǒng)的指導(dǎo)書。
《嵌入式Linux開發(fā)實(shí)踐教程》配有授課電子課件,需要的教師可登錄wwwcmpeducom免費(fèi)注冊,審核通過后下載,或聯(lián)系編輯索。≦Q:1239258369,電話:010-88379739)。
適讀人群 :高職院校計算機(jī)應(yīng)用類專業(yè)、自動化類和電子信息類專業(yè)學(xué)生
提供相關(guān)課程標(biāo)準(zhǔn)、教學(xué)視頻、電子教案、多媒體課件、試題庫、項(xiàng)目案例庫、常見問題及解答等在內(nèi)的豐富教學(xué)資源。
提供與企業(yè)共同開發(fā)的大量真實(shí)案例和培訓(xùn)資源包。
采用了嵌入式Linux 學(xué)習(xí)中主流的2440 開發(fā)板,并提供基于QEMU的Mini2440虛擬開發(fā)平臺,學(xué)生可以先利用仿真軟件在虛擬平臺上練習(xí)熟悉操作。
目前的IT技術(shù)領(lǐng)域有很多熱點(diǎn),如移動開發(fā)、云計算、大數(shù)據(jù)和嵌入式Linux。IT技術(shù)領(lǐng)域及工業(yè)控制領(lǐng)域的工程師都需要了解一些嵌入式Linux的知識。
本書根據(jù)編者團(tuán)隊(duì)多年研究學(xué)習(xí)嵌入式產(chǎn)品及設(shè)計的實(shí)踐經(jīng)驗(yàn),按照案例式教學(xué)的寫作模式,以嵌入式系統(tǒng)開發(fā)為實(shí)例,全面剖析,系統(tǒng)地講解嵌入式Linux開發(fā)的基本知識。
本書共分為10章,主要內(nèi)容包括:嵌入式系統(tǒng)開發(fā)概述、Linux使用基礎(chǔ)、嵌入式開發(fā)常用的開發(fā)工具、嵌入式Linux C語言開發(fā)、嵌入式開發(fā)常用服務(wù)配置、構(gòu)建嵌入式Linux開發(fā)環(huán)境、Bootloader移植、內(nèi)核移植、文件系統(tǒng)以及嵌入式應(yīng)用開發(fā)與移植。在本書的編寫過程中,精心挑選了各個項(xiàng)目和任務(wù),力爭做到既有針對性,又能夠讓讀者通過完成相應(yīng)的任務(wù)很快掌握對應(yīng)知識。
本教材的特色主要可以歸結(jié)為以下幾點(diǎn)
1 線上線下互動,新舊媒體融合。
本書通過在線開放課程的建設(shè)推動配套數(shù)字資源的建設(shè),包括相關(guān)課程標(biāo)準(zhǔn)、教學(xué)視頻、電子教案、多媒體課件、試題庫、項(xiàng)目案例庫、常見問題及解答等在內(nèi)的豐富教學(xué)資源,同時提供與企業(yè)共同開發(fā)的大量真實(shí)案例和培訓(xùn)資源包。讀者通過觀看每個知識點(diǎn)對應(yīng)的教學(xué)視頻,能對知識有更形象、更深入的理解。
2 圖文結(jié)合、便于閱讀
全書配有大量插圖與實(shí)例代碼,在介紹設(shè)備原理、系統(tǒng)架構(gòu)、數(shù)據(jù)流、軟件配置、實(shí)驗(yàn)操作等內(nèi)容時,插圖與實(shí)例代碼的作用是顯而易見的,這會有助于讀者對相關(guān)內(nèi)容的理解。
3 真實(shí)項(xiàng)目、任務(wù)驅(qū)動、教學(xué)做合一
以企業(yè)真實(shí)項(xiàng)目為導(dǎo)向,對嵌入式Linux的開發(fā)崗位技術(shù)人員所需的職業(yè)能力進(jìn)行分解,覆蓋了使用嵌入式Linux技術(shù)進(jìn)行軟件開發(fā)、測試和應(yīng)用維護(hù)等幾個重要的工作過程。使讀者在完成企業(yè)真實(shí)項(xiàng)目的過程中鍛煉并提高了自己的動手能力、實(shí)踐能力,以達(dá)到最佳的學(xué)習(xí)效果。
4 緊密聯(lián)系開發(fā)板
本書采用了嵌入式Linux 學(xué)習(xí)中最主流的2440 開發(fā)板,并提供基于QEMU的Mini2440虛擬開發(fā)平臺,使學(xué)生得到更多的實(shí)操訓(xùn)練機(jī)會,而且提高了硬件設(shè)備使用的安全性。學(xué)生可以先利用仿真軟件在虛擬平臺上練習(xí)熟悉操作,然后在真實(shí)的硬件設(shè)備上進(jìn)行操作。
本書可作為高職院校計算機(jī)應(yīng)用類專業(yè)、自動化類和電子信息類專業(yè)的教學(xué)用書,也適用于嵌入式Linux的工程師增強(qiáng)能力、快速開發(fā)Linux系統(tǒng)的指導(dǎo)書。
由于時間有限,書中難免有疏漏之處,敬請廣大讀者批評指正。
前言
第1章認(rèn)識嵌入式系統(tǒng)開發(fā)
1.1認(rèn)識嵌入式系統(tǒng)
1.1.1什么是嵌入式系統(tǒng)
1.1.2嵌入式系統(tǒng)的構(gòu)成與特點(diǎn)
1.2認(rèn)識嵌入式微處理器
1.2.1嵌入式微處理器
1.2.2ARM微處理器
1.3認(rèn)識嵌入式操作系統(tǒng)
1.3.1Linux
1.3.2VxWorks
1.3.3Windows Embedded
1.3.4μC/OS-II
1.4嵌入式系統(tǒng)設(shè)計流程
1.4.1嵌入式系統(tǒng)開發(fā)
1.4.2嵌入式系統(tǒng)設(shè)計學(xué)習(xí)線路
1.4.3嵌入式Linux書籍
1.4.4嵌入式Linux資源列表
第2章體驗(yàn)Linux系統(tǒng)
2.1Linux的基本概念
2.1.1文件系統(tǒng)
2.1.2Shell
2.1.3環(huán)境變量
2.2任務(wù):管理Linux文件
2.2.1pwd
2.2.2ls
2.2.3cd
2.2.4cp
2.2.5mv
2.2.6touch
2.2.7mkdir
2.2.8rm
2.2.9ln
2.2.10find
2.3任務(wù):內(nèi)容管理
2.3.1cat
2.3.2grep
2.3.3diff
2.3.4patch
2.4任務(wù):權(quán)限管理
2.4.1chmod
2.4.2chown
2.4.3useradd
2.4.4passwd
2.4.5userdel
2.5任務(wù):備份壓縮
2.5.1gzip/gunzip
2.5.2tar
2.6任務(wù):磁盤管理
2.6.1mount
2.6.2umount
2.6.3du
2.6.4fdisk
2.6.5mkfs
2.7任務(wù):進(jìn)程控制
2.7.1ps
2.7.2kill
2.7.3top
2.7.4free
2.8任務(wù):網(wǎng)絡(luò)設(shè)置
2.8.1ifconfig
2.8.2route
2.8.3ping
2.8.4netstat
2.9任務(wù):編輯工具vi
2.9.1vi簡易使用范例
2.9.2vi命令說明
2.9.3vi范例
2.9.4文件的恢復(fù)與暫存盤
第3章配置嵌入式開發(fā)常用服務(wù)
3.1任務(wù):配置NFS服務(wù)
3.1.1安裝NFS服務(wù)
3.1.2啟動與停止NFS服務(wù)
3.1.3配置NFS服務(wù)
3.1.4NFS服務(wù)配置實(shí)例
3.2任務(wù):配置Samba服務(wù)
3.2.1安裝Samba服務(wù)
3.2.2啟動與停止Samba服務(wù)
3.2.3smbconf配置文件
3.2.4Samba配置實(shí)例
3.3任務(wù):配置TFTP服務(wù)
3.3.1安裝TFTP服務(wù)
3.3.2啟動與停止TFTP服務(wù)
3.3.3配置TFTP服務(wù)
3.3.4TFTP服務(wù)配置實(shí)例
3.4任務(wù):配置SSH服務(wù)
3.4.1安裝SSH服務(wù)
3.4.2啟動與停止SSH服務(wù)
3.4.3配置SSH服務(wù)
3.4.4SSH服務(wù)使用實(shí)例
第4章使用嵌入式開發(fā)常用開發(fā)工具
4.1任務(wù):編譯程序(GCC)
4.1.1GCC編譯器安裝
4.1.2程序的編譯過程
4.1.3GCC常用編譯選項(xiàng)
4.1.4GCC編譯實(shí)例
4.2任務(wù):調(diào)試程序(GDB)
4.2.1GDB的使用流程
4.2.2GDB常用命令
4.2.3GDBServer遠(yuǎn)程調(diào)試
4.3任務(wù):工程管理(Makefile)
4.3.1Makefile文件
4.3.2Makefile的規(guī)則
4.3.3Makefile的變量
4.3.4規(guī)則的命令
4.4綜合實(shí)踐:編譯調(diào)試NTP協(xié)議程序
4.4.1獲取源代碼
4.4.2編譯NTP
4.4.3調(diào)試NTP
第5章構(gòu)建嵌入式Linux開發(fā)環(huán)境
5.1熟悉目標(biāo)板硬件資源
5.2熟悉目標(biāo)板軟件資源
5.3任務(wù):安裝與體驗(yàn)Linux+Qt
系統(tǒng)
5.3.1外部接口連接
5.3.2超級終端配置
5.3.3安裝USB 下載驅(qū)動
5.3.4下載文件系統(tǒng)
5.3.5初始化Qt圖形界面
5.4任務(wù):Linux下的minicom仿真
終端
5.4.1安裝minicom
5.4.2虛擬機(jī)串口的設(shè)置
5.4.3minicom的配置
5.4.4minicom的使用
5.5任務(wù):ARM虛擬機(jī)配置
5.5.1ARM虛擬機(jī)資源下載
5.5.2編譯QEMU程序
5.5.3配置系統(tǒng)腳本
5.5.4加載NFS文件系統(tǒng)
5.6任務(wù):嵌入式開發(fā)環(huán)境配置
5.6.1交叉編譯工具配置
5.6.2ARM Linux環(huán)境C程序設(shè)計
5.7綜合實(shí)踐:SQLite 嵌入式數(shù)據(jù)庫
的移植和使用
5.7.1下載并編譯SQLite
5.7.2下載到ARM虛擬機(jī)并使用
SQLite
第6章嵌入式Linux C 開發(fā)
6.1任務(wù):Glibc庫文件
6.1.1使用ldd查看庫文件
6.1.2ldconfig
6.2任務(wù):文件I/O編程
6.2.1文件的基本概念
6.2.2文件I/O函數(shù)編程
6.2.3文件I/O函數(shù)實(shí)例
6.3任務(wù):標(biāo)準(zhǔn)I/O編程
6.3.1標(biāo)準(zhǔn)I/O相關(guān)函數(shù)
6.3.2標(biāo)準(zhǔn)I/O函數(shù)實(shí)例
6.4任務(wù):串口通信編程
6.4.1打開串口
6.4.2設(shè)置串口
6.4.3發(fā)送數(shù)據(jù)
6.4.4接收數(shù)據(jù)
6.5任務(wù):網(wǎng)絡(luò)通信編程
6.5.1網(wǎng)絡(luò)通信編程的基本概念
6.5.2socket編程的基本函數(shù)
6.5.3網(wǎng)絡(luò)編程實(shí)例
6.6綜合實(shí)踐:網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換器
(串口轉(zhuǎn)TCP/IP)
6.6.1串口操作相關(guān)函數(shù)
6.6.2主程序流程
6.6.3回調(diào)函數(shù)
第7章移植BootLoader
7.1認(rèn)識BootLoader
7.1.1Linux系統(tǒng)的啟動過程
7.1.2BootLoader的概念與功能
7.1.3BootLoader的結(jié)構(gòu)
7.2任務(wù):U-Boot移植
7.2.1U-Boot目錄結(jié)構(gòu)
7.2.2U-Boot 配置編譯
7.2.3U-Boot常用命令
7.3任務(wù):vivi移植
7.3.1vivi目錄結(jié)構(gòu)
7.3.2vivi配置編譯
7.3.3vivi執(zhí)行流程分析
7.3.4vivi 常用命令
7.4綜合實(shí)踐:U-Boot在mini2440
上的移植
7.4.1建立開發(fā)板類型并測試
編譯
7.4.2在/board子目錄中建立自己的
開發(fā)板mini2440目錄
7.4.3測試編譯
7.4.4修改U-Boot中的文件
7.4.5交叉編譯U-Boot
7.4.6宏裝BootLoader到開發(fā)板
第8章內(nèi)核移植
8.1認(rèn)識內(nèi)核
8.1.1內(nèi)核的組成
8.1.2內(nèi)核目錄結(jié)構(gòu)
8.2任務(wù):Linux內(nèi)核的配置與
編譯
8.2.1內(nèi)核配置
8.2.2建立內(nèi)核
8.3任務(wù):內(nèi)核配置選項(xiàng)
8.3.1常規(guī)設(shè)置
8.3.2模塊和塊設(shè)備選項(xiàng)
8.3.3處理器的類型及特性
8.3.4網(wǎng)絡(luò)協(xié)議相關(guān)選項(xiàng)
8.3.5設(shè)備驅(qū)動選項(xiàng)
8.3.6文件系統(tǒng)類型選項(xiàng)
8.4綜合實(shí)踐:Linux-2.6在mini2440上的移植
8.4.1移植準(zhǔn)備
8.4.2建立目標(biāo)平臺
8.4.3內(nèi)核配置
8.4.4內(nèi)核編譯
第9章根文件系統(tǒng)
9.1認(rèn)識文件系統(tǒng)
9.1.1文件系統(tǒng)概述
9.1.2嵌入式文件系統(tǒng)的特點(diǎn)
9.1.3