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