本書(shū)以Linux嵌入式系統(tǒng)的基本開(kāi)發(fā)技術(shù)為主線,以基于ARM架構(gòu)的嵌入式處理器為嵌入式硬件平臺(tái),全面介紹嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程、ARM體系結(jié)構(gòu)、Linux基礎(chǔ)、Linux進(jìn)程、Linux開(kāi)發(fā)環(huán)境的建立、Linux操作系統(tǒng)移植、Bootloader的使用、Linux根文件系統(tǒng)的構(gòu)建、設(shè)備驅(qū)動(dòng)程序的開(kāi)發(fā)、嵌入式GUI開(kāi)發(fā)等嵌入式知識(shí),*后介紹近年來(lái)較為熱門(mén)的GPS導(dǎo)航系統(tǒng)的設(shè)計(jì)。 本書(shū)在*版的基礎(chǔ)上進(jìn)行改版,結(jié)合眾多讀者的返饋意見(jiàn),優(yōu)化了內(nèi)容結(jié)構(gòu)和程序代碼,實(shí)例操作配有視頻講解。
前 言
嵌入式系統(tǒng)已經(jīng)廣泛地滲透到航空航天、汽車(chē)電子、醫(yī)療網(wǎng)絡(luò)通信、工業(yè)控制等各個(gè)領(lǐng)域,正在以不同的形式悄悄地改變著人們的生產(chǎn)、生活方式,已經(jīng)成為當(dāng)今計(jì)算機(jī)領(lǐng)域的一個(gè)亮點(diǎn)。嵌入式系統(tǒng)和Linux的有機(jī)結(jié)合,成為后PC時(shí)代計(jì)算機(jī)最普遍的應(yīng)用形式。嵌入式Linux不僅繼承了Linux源代碼開(kāi)放、內(nèi)核穩(wěn)定高效、軟件豐富、強(qiáng)大的網(wǎng)絡(luò)支持功能、優(yōu)秀的開(kāi)發(fā)工具等優(yōu)勢(shì),還具備支持廣泛的處理器結(jié)構(gòu)和硬件平臺(tái)占有空間小、成本低等特點(diǎn)。
嵌入式Linux需要相應(yīng)的嵌入式開(kāi)發(fā)板和軟件,還需要有經(jīng)驗(yàn)的人員進(jìn)行指導(dǎo)開(kāi)發(fā),目前國(guó)內(nèi)大部分高校都很難達(dá)到這種要求,這也造成了目前國(guó)內(nèi)嵌入式Linux開(kāi)發(fā)人才極其缺乏的局面。
從技術(shù)角度來(lái)講,嵌入式系統(tǒng)是軟件和硬件的有機(jī)結(jié)合體。一名合格的嵌入式系統(tǒng)設(shè)計(jì)人員往往要求同時(shí)具備軟件和硬件兩方面的知識(shí)。因此,這也是編寫(xiě)本書(shū)的目的所在。
本書(shū)分為4篇12章,涉及嵌入式系統(tǒng)開(kāi)發(fā)基礎(chǔ)、嵌入式Linux開(kāi)發(fā)入門(mén)、嵌入式系統(tǒng)移植與構(gòu)建、嵌入式系統(tǒng)開(kāi)發(fā)四大部分內(nèi)容,依次介紹嵌入式系統(tǒng)基本概念、嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程與工具、嵌入式處理器體系結(jié)構(gòu)、Linux基礎(chǔ)概述、Linux內(nèi)核、Linux開(kāi)發(fā)環(huán)境建立、Linux操作系統(tǒng)移植、Bootloader的使用、Linux根文件系統(tǒng)的構(gòu)建、設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)、嵌入式GUI開(kāi)發(fā)、綜合工程實(shí)例等內(nèi)容。
第1章 嵌入式系統(tǒng)介紹。本章首先介紹嵌入式系統(tǒng)的組成部分、處理器、常見(jiàn)的嵌入式操作系統(tǒng)和新型的嵌入式操作系統(tǒng),然后介紹嵌入式系統(tǒng)的應(yīng)用,最后講述嵌入式系統(tǒng)的發(fā)展趨勢(shì)。
第2章 嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程與工具。本章首先講述嵌入式軟件的開(kāi)發(fā)流程和軟件測(cè)試技術(shù),重點(diǎn)介紹基于JTAG的ARM系統(tǒng)調(diào)試。通過(guò)綜合實(shí)例掌握ADS集成開(kāi)發(fā)環(huán)境的使用。
第3章 嵌入式處理器體系結(jié)構(gòu)。本章主要介紹ARM體系結(jié)構(gòu)的組成部分、技術(shù)特征、ARM微處理器的分類和應(yīng)用選型。接著,重點(diǎn)以S3C2410處理器為例進(jìn)行講述,并詳細(xì)介紹ARM編程模型、ARM指令的尋址方式和ARM指令集的使用。最后,描述了ARM微處理器的異常情況。
第4章 Linux開(kāi)發(fā)常用操作。本章首先講述Linux的概況,然后分別介紹Linux命令和vi編輯器的使用。接著,講述Shell程序設(shè)計(jì)語(yǔ)言的使用。最后,通過(guò)講述編寫(xiě)清除/var/log下的log文件和編寫(xiě)尋找死鏈接文件兩個(gè)綜合實(shí)例的操作,掌握Shell編程的具體使用。
第5章 Linux內(nèi)核介紹。本章首先講述進(jìn)程結(jié)構(gòu)的控制操作和屬性,然后分別介紹管道、信號(hào)、信號(hào)量、共享內(nèi)存和消息隊(duì)列的使用,最后通過(guò)多個(gè)實(shí)例的操作,使讀者掌握進(jìn)程的具體使用。
第6章 Linux開(kāi)發(fā)環(huán)境的構(gòu)建。本章首先講述Cygwin和VMware Workstation兩種開(kāi)發(fā)環(huán)境的建立,介紹建立交叉編譯環(huán)境的主要過(guò)程。然后分別介紹gcc編輯器和gdb調(diào)試器的使用方法。最后詳細(xì)講解Makefile變量的使用以及隱含規(guī)則的應(yīng)用。通過(guò)多個(gè)實(shí)例的操作,使讀者掌握Linux開(kāi)發(fā)環(huán)境的建立。
第7章 Bootloader的移植。本章首先介紹Bootloader的工作模式,講述Bootloader的啟動(dòng)方式和流程。然后詳細(xì)介紹vivi代碼的兩個(gè)階段,并重點(diǎn)介紹vivi的配置與編譯、U-boot常用命令和源代碼目錄結(jié)構(gòu),講述U-boot的啟動(dòng)模式和啟動(dòng)流程,并重點(diǎn)介紹U-boot在S3C2410上的移植。最后簡(jiǎn)單介紹其他常見(jiàn)的Bootloader,通過(guò)多個(gè)實(shí)例的操作,使讀者掌握Bootloader的使用。
第8章 Linux內(nèi)核裁剪和移植。本章主要介紹Linux操作系統(tǒng)移植知識(shí),重點(diǎn)講述Linux內(nèi)核結(jié)構(gòu)和操作系統(tǒng)移植,通過(guò)多個(gè)綜合實(shí)例的操作,使讀者掌握Linux操作系統(tǒng)的移植技術(shù)。
第9章Linux根文件系統(tǒng)的構(gòu)建。本章首先講述文件系統(tǒng),然后利用BusyBox構(gòu)建根文件系統(tǒng),使讀者對(duì)根文件系統(tǒng)有全面的了解。
第10章 設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)。本章首先講述Linux設(shè)備驅(qū)動(dòng)程序的分類,包括字符設(shè)備、塊設(shè)備、網(wǎng)絡(luò)設(shè)備;驅(qū)動(dòng)程序在Linux中的層次結(jié)構(gòu)和其特點(diǎn)。然后對(duì)設(shè)備驅(qū)動(dòng)程序與文件系統(tǒng)的關(guān)系、Linux設(shè)備驅(qū)動(dòng)程序的接口、Linux驅(qū)動(dòng)程序的加載方法及其步驟進(jìn)行分析。接著,講述設(shè)備驅(qū)動(dòng)程序的使用、網(wǎng)絡(luò)設(shè)備的基礎(chǔ)知識(shí)和網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序的體系結(jié)構(gòu)、模塊分析、實(shí)現(xiàn)模式。最后,通過(guò)多個(gè)實(shí)例的操作,使讀者掌握設(shè)備驅(qū)動(dòng)程序的具體使用。
第11章 嵌入式常用GUI開(kāi)發(fā)。本章主要介紹各種嵌入式GUI的相關(guān)知識(shí),包括MiniGUI的實(shí)現(xiàn)、Qt/E的界面編程和Qtopia移植等。大部分知識(shí)點(diǎn)后面都有相關(guān)的實(shí)例,介紹其內(nèi)容的具體應(yīng)用。通過(guò)本章的學(xué)習(xí),應(yīng)該掌握如何建立Qt/Embedded的開(kāi)發(fā)環(huán)境及編寫(xiě)Qt/Embedded或Qtopia程序的開(kāi)發(fā)流程。
第12章 嵌入式系統(tǒng)綜合工程實(shí)例。本章主要介紹文件系統(tǒng)的構(gòu)建和燒寫(xiě)、數(shù)碼相框、基于Linux的Mplayer解碼播放器和基于Linux的GPS導(dǎo)航系統(tǒng)的開(kāi)發(fā)實(shí)例。在開(kāi)發(fā)這些工程實(shí)例的過(guò)程中,熟悉Linux系統(tǒng)在嵌入式方面的應(yīng)用,熟悉其他章節(jié)的知識(shí)在開(kāi)發(fā)中的具體應(yīng)用。
本書(shū)主要由戴璐平、何淵仁、吳志男完成編寫(xiě),本書(shū)是在第1版的基礎(chǔ)上,結(jié)合眾多讀者的返饋意見(jiàn)進(jìn)行改版,對(duì)圖書(shū)內(nèi)容和實(shí)例程序代碼等進(jìn)行了優(yōu)化,對(duì)書(shū)中實(shí)例全部配有視頻講解,使讀者能夠輕松掌握書(shū)中知識(shí),并盡快應(yīng)用于實(shí)際工作中,本書(shū)實(shí)例代碼和視頻等素材,請(qǐng)讀者到華信教育資源網(wǎng)下載(
www.hxedu.com.cn)。但由于作者教學(xué)任務(wù)重、時(shí)間緊,書(shū)中仍會(huì)有不妥之處,請(qǐng)讀者批評(píng)指正,讀者可通過(guò)電子郵件
xucq@phei.com.cn與我們交流。
江西師范大學(xué)畢業(yè)后,一直在宜春學(xué)院任教,從講師到教授,到系副主任,堅(jiān)持在教學(xué)一線,教學(xué)經(jīng)驗(yàn)豐富。主持或作為骨干成員參加多項(xiàng)*和省部級(jí)課題,省文化科技創(chuàng)新工程項(xiàng)目1項(xiàng),省部級(jí)中青年骨干教師。