出版時(shí)間:2012-5 出版社:北京航空航天大學(xué)出版社 作者:韓少云,奚海蛟,諶利 編著 頁(yè)數(shù):294 字?jǐn)?shù):421000
內(nèi)容概要
《ARM嵌入式系統(tǒng)移植實(shí)戰(zhàn)開(kāi)發(fā)》以嵌入式Linux移植技術(shù)為主,以基于S3C2440的TQ2440開(kāi)發(fā)板以及基于S3C6410的TQ6410開(kāi)發(fā)板為硬件平臺(tái),詳細(xì)講述了嵌入式Linux中非常繁瑣卻又十分重要的系統(tǒng)移植過(guò)程,包括
UBoot、內(nèi)核、文件系統(tǒng)、驅(qū)動(dòng)程序以及應(yīng)用程序的移植。 本書理論與實(shí)踐相結(jié)合,配有詳細(xì)的步驟,學(xué)完后讀者可以在TQ2440
開(kāi)發(fā)板平臺(tái)上搭建起自己的一套系統(tǒng)。這樣不僅可以讓讀者更好地理解所學(xué)知識(shí),還能增加讀者的學(xué)習(xí)興趣。
《ARM嵌入式系統(tǒng)移植實(shí)戰(zhàn)開(kāi)發(fā)》可以作為高等院校嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用的教材,嵌入式培訓(xùn)用書,以及嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)人員的參考書。
本書由韓少云、奚海蛟、諶利編著。
作者簡(jiǎn)介
韓少云,達(dá)內(nèi)IT培訓(xùn)集團(tuán)創(chuàng)始人,總裁/CEO,加拿大技術(shù)移民。曾任亞信公司軟件事業(yè)部副總工程師。在軟件開(kāi)發(fā)、軟件培訓(xùn)、公司運(yùn)營(yíng)方面積累了豐富的實(shí)戰(zhàn)經(jīng)驗(yàn),被譽(yù)為軟件工程師創(chuàng)業(yè)的典范。
奚海蛟,博士后,北京融慧廣澤科技有限公司創(chuàng)始人,畢業(yè)于北京航空航天大學(xué)電子工程學(xué)院,主要研究嵌入式與物聯(lián)網(wǎng)、虛擬現(xiàn)實(shí)等方向。主持過(guò)多個(gè)相關(guān)大型項(xiàng)目,曾在多家大學(xué)與培訓(xùn)機(jī)構(gòu)任教。
諶利,碩士,北京融慧廣澤公司合伙人。畢業(yè)于北京航空航天大學(xué)電子工程學(xué)院,曾任飛思卡爾半導(dǎo)體公司硬件工程師、技術(shù)經(jīng)理,有多年高端嵌入式處理器系統(tǒng)軟硬件開(kāi)發(fā)經(jīng)驗(yàn)。
書籍目錄
第1章 嵌入式系統(tǒng)概述
1.1 嵌入式系統(tǒng)介紹
1.1.1 嵌入式系統(tǒng)概念
1.1.2 嵌入式系統(tǒng)特點(diǎn)
1.1.3 嵌入式產(chǎn)品
1.2 嵌入式操作系統(tǒng)
1.2.1 VxWorks
1.2.2 WinCE
1.2.3 UC/0S-Ⅱ
1.2.4 Symbian
1.2.5 Linux
1.3 嵌入式系統(tǒng)開(kāi)發(fā)流程
1.3.1 嵌入式系統(tǒng)組成
1.3.2 嵌入式系統(tǒng)開(kāi)發(fā)流程
1.4 嵌入式系統(tǒng)的移植
本章小結(jié)
第2章 構(gòu)建嵌入式Linux開(kāi)發(fā)環(huán)境
2.1 硬件環(huán)境構(gòu)建
2.1.1 主機(jī)與目標(biāo)板結(jié)合的交叉開(kāi)發(fā)模式
2.1.2 硬件要求
2.2 軟件環(huán)境構(gòu)建
2.2.1 在虛擬機(jī)中設(shè)置Linux與Windows共享目錄
2.2.2 NFS的配置與啟動(dòng)
2.2.3 嵌入式交叉編譯工具的安裝
2.2.4 minicom和超級(jí)終端的配置及使用
2.2.5 H-JTAG和DNW的安裝和使用
本章小結(jié)
第3章 Bootloader移植
3.1 Bootloader簡(jiǎn)介
3.1.1 Bootloader概念
3.1.2 Bootloader啟動(dòng)流程分析
3.1.3 常用的Bootloader介紹
3.2 U-Boot代碼分析
3.2.1 U-Boot簡(jiǎn)介
3.2.2 U-Boot代碼結(jié)構(gòu)
3.2.3 U-Boot代碼編譯
3.2.4 U-Boot代碼導(dǎo)讀
3.2.5 U-Boot命令
3.3 U-Boot移植
3.3.1 在U-Boot中建立自己的開(kāi)發(fā)板
3.3.2 支持Nor Flash
3.3.3 支持Nand Flash
3.3.4 支持從Nand Flash扣啟動(dòng)
3.3.5 支持網(wǎng)卡DMg000
3.3.6 支持YAFFS文件系統(tǒng)
3.3.7 U-Boot引導(dǎo)內(nèi)核
3.3.8 移植后U-Boot的使用
本章小結(jié)
第4章 內(nèi)核移植
4.1 Linux內(nèi)核結(jié)構(gòu)
4.1.1 內(nèi)核組成
4.1.2 內(nèi)核目錄
4.2 內(nèi)核Makefile分析
4.2.1 內(nèi)核Makefile的分類
4.2.2 Makefile的編譯流程
4.2.3 Makefilc主要內(nèi)容解析
4.3 內(nèi)核配置選項(xiàng)
4.3.1 通用選項(xiàng)
4.3.2 模塊相關(guān)選項(xiàng)
4.3.3 塊相關(guān)選項(xiàng)
4.3.4 系統(tǒng)類型、特性和啟動(dòng)相關(guān)選項(xiàng)
4.3.5 網(wǎng)絡(luò)協(xié)議相關(guān)選項(xiàng)
4.3.6 設(shè)備驅(qū)動(dòng)相關(guān)選項(xiàng)
4.3.7 文件系統(tǒng)類型相關(guān)選項(xiàng)
4.3.8 其他選項(xiàng)
4.4 內(nèi)核在ARM上的移植
4.4.1 內(nèi)核基本結(jié)構(gòu)的移植
4.4.2 添加內(nèi)核對(duì)YAFFS的支持
4.4.3 內(nèi)核中RTC時(shí)鐘驅(qū)動(dòng)移植
4.4.4 內(nèi)核中LCD驅(qū)動(dòng)移植
4.4.5 內(nèi)核中DM9000驅(qū)動(dòng)移植
本章小結(jié)
第5章 構(gòu)建Linux根文件系統(tǒng)
5.1 文件系統(tǒng)簡(jiǎn)介
5.2 嵌入式文件系統(tǒng)
5.2.1 嵌入式文件系統(tǒng)的特點(diǎn)
5.2.2 常見(jiàn)嵌入式文件系統(tǒng)
5.3 LinuX根文件系統(tǒng)的結(jié)構(gòu)
5.4 移植Busybox
5.4.1 Busybox簡(jiǎn)介
5.4.2 Busybox編譯
5.5 安裝glibc庫(kù)
5.6 LinuX系統(tǒng)的引導(dǎo)過(guò)程
5.6.1 啟動(dòng)內(nèi)核
5.6.2 init進(jìn)程介紹及用戶程序啟動(dòng)
5.7 構(gòu)建根文件系統(tǒng)
本章小結(jié)
第6章 Linux設(shè)備驅(qū)動(dòng)移植
6.1 LinuX設(shè)備驅(qū)動(dòng)移植概述
6.1.1 LinuX設(shè)備驅(qū)動(dòng)程序的介紹
6.1.2 LinuX設(shè)備驅(qū)動(dòng)的分類、
6.1.3 LinuX設(shè)備驅(qū)動(dòng)移植步驟
6.2 簡(jiǎn)單LinuX設(shè)備驅(qū)動(dòng)的移植實(shí)例
6.2.1 Hello World驅(qū)動(dòng)的移植
6.2.2 LED驅(qū)動(dòng)的移植
6.2.3 按鍵驅(qū)動(dòng)的移植
6.3 完善已有的Linux設(shè)備驅(qū)動(dòng)實(shí)例
6.3.1 完善串口驅(qū)動(dòng)
6.3.2 配置USB設(shè)備驅(qū)動(dòng)
6.3.3 聲卡驅(qū)動(dòng)移植
6.3.4 SD卡驅(qū)動(dòng)移植
本章小結(jié)
第7章 Linux下應(yīng)用程序的開(kāi)發(fā)和移植
7.1 嵌入式GUI簡(jiǎn)介
7.1.1 Qt/Embedded
7.1.2 MiniGUI
7.1.3 MicroWindows
7.2 Qtopia移植
7.2.1 Qt主機(jī)開(kāi)發(fā)環(huán)境搭建
7.2.2 交叉編譯并安裝Qtopia 4.5.3
7.2.3 開(kāi)發(fā)第一個(gè)Qt程序:Hello world!
7.3 MiniGUI移植
7.3.1 MiniGUI開(kāi)發(fā)環(huán)境搭建
7.3.2 MiniGUI立用程序開(kāi)發(fā)
7.4 音頻解碼器madplay移植
7.5 SQLite數(shù)據(jù)庫(kù)移植
7.6 WebServer軟件設(shè)計(jì)與移植
7.6.1 WebServer簡(jiǎn)介
7.6.2 WebServer的工作原理
7.6.3 移植boa軟件
7.6.4 移植cgie庫(kù)
7.6.5 配置WebServer
本章小結(jié)
第8章 Android在$3C6410上的移植
8.1 Android簡(jiǎn)介
8.1.1 初識(shí)Android
8.1.2 Android的發(fā)展歷程
8.1.3 開(kāi)發(fā)環(huán)境介紹
8.2 Android系統(tǒng)的移植
8.2.1 交叉編譯工具的安裝
8.2.2 NFS服務(wù)器的配置
8.2.3 編譯U-Boot
8.2.4 編譯內(nèi)核
8.2.5 編譯Android文件系統(tǒng)
8.3 Android系統(tǒng)的燒寫
8.3.1 燒寫SD卡的U-Boot
8.3.2 燒寫Nand Flash啟動(dòng)的U-Boot
8.3.3 燒寫內(nèi)核和設(shè)置從NFS啟動(dòng)文件系統(tǒng)
8.3.4 啟動(dòng)文件系統(tǒng)
8,3.5 U-Boot啟動(dòng)Android2.0文件系統(tǒng)
本章小結(jié)
參考文獻(xiàn)
章節(jié)摘錄
版權(quán)頁(yè):插圖:3.網(wǎng)絡(luò)接口網(wǎng)絡(luò)接口是區(qū)別于字符設(shè)備和塊設(shè)備的第三大標(biāo)準(zhǔn)類設(shè)備,與前兩種設(shè)備不同,因?yàn)閁nix世界里“一切皆是文件”的論述對(duì)于它來(lái)說(shuō)并不適用。例如,塊設(shè)備可以在系統(tǒng)文件樹(shù)的ldev目錄下找到特定的文件入口標(biāo)志,而網(wǎng)絡(luò)設(shè)備則沒(méi)有這種文件操作人口。Unix式的操作系統(tǒng)訪問(wèn)網(wǎng)絡(luò)接口的方法是給它們分配一個(gè)唯一的名字(比如eth0),而這個(gè)名字在文件系統(tǒng)中(比如剛剛提到的/dev目錄下)不存在對(duì)應(yīng)的節(jié)點(diǎn)項(xiàng)。網(wǎng)絡(luò)接口同時(shí)具有字符設(shè)備、塊設(shè)備的部分特點(diǎn),但是都有不同。相比于字符設(shè)備,它的輸入/輸出是有結(jié)構(gòu)的、成塊的(報(bào)文、包、幀)。相比于塊設(shè)備,它的“塊”又不是固定大小的,可以大到數(shù)百甚至數(shù)千字節(jié),又可以小到幾個(gè)字節(jié)。由于網(wǎng)絡(luò)接口并不是以文件的方式存在,這就導(dǎo)致應(yīng)用程序、內(nèi)核和網(wǎng)絡(luò)驅(qū)動(dòng)程序間的通信完全不同于字符設(shè)備和塊設(shè)備,內(nèi)核提供了一套push等操作來(lái)完成數(shù)據(jù)包的轉(zhuǎn)換與遞送,而不是open,read和write等。6.1.3 Linux設(shè)備驅(qū)動(dòng)移植步驟本節(jié)來(lái)介紹一下本章的重點(diǎn)-Linux設(shè)備驅(qū)動(dòng)的移植。其實(shí),Linux設(shè)備驅(qū)動(dòng)的移植就是將寫好的驅(qū)動(dòng)程序添加到相應(yīng)的內(nèi)核中去。這里說(shuō)的相應(yīng)的內(nèi)核而不是所有的內(nèi)核,其原因是不同的內(nèi)核它的目錄樹(shù)的結(jié)構(gòu)是不同,即其中有些頭文件的位置是不同的。甚至,其中的一些函數(shù)也不相同。所以在移植驅(qū)動(dòng)程序的時(shí)候一定要注意驅(qū)動(dòng)程序開(kāi)發(fā)所參照的內(nèi)核版本和所移植的版本要相同。設(shè)備驅(qū)動(dòng)程序移植有如下4個(gè)步驟:(1)準(zhǔn)備內(nèi)核源碼準(zhǔn)備要移植到的操作系統(tǒng)平臺(tái)的源碼,因?yàn)闊o(wú)論將驅(qū)動(dòng)程序編譯成模塊還是將驅(qū)動(dòng)程序添加到內(nèi)核中編譯內(nèi)核,都需要該平臺(tái)的內(nèi)核源碼包。(2)準(zhǔn)備驅(qū)動(dòng)程序源碼該源碼可以是自己寫的驅(qū)動(dòng)程序,也可以是別人寫好的驅(qū)動(dòng)程序,但前提是該驅(qū)動(dòng)和所要移植的內(nèi)核版本符合。(3)編譯驅(qū)動(dòng)程序到內(nèi)核編譯驅(qū)動(dòng)程序可以分為兩種形式:①將準(zhǔn)備好的驅(qū)動(dòng)程序代碼放到內(nèi)核相應(yīng)的目錄下,并通過(guò)修改Makefile和Kconfig文件將其添加到內(nèi)核目錄樹(shù)中,然后通過(guò)makemenuconfig配置該選項(xiàng)。②使用準(zhǔn)備好的內(nèi)核源碼將驅(qū)動(dòng)程序編譯成內(nèi)核模塊,將編譯好的模塊移植到相應(yīng)的操作系統(tǒng)平臺(tái)上,加載模塊。(4)測(cè)試驅(qū)動(dòng)程序編寫簡(jiǎn)單的測(cè)試程序,測(cè)試所添加的驅(qū)動(dòng)程序,查看其是否可用。
編輯推薦
《普通高等"十二五"規(guī)劃教材?實(shí)踐創(chuàng)新系列:ARM嵌入式系統(tǒng)移植實(shí)戰(zhàn)開(kāi)發(fā)》可以作為高等院校嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用的教材,嵌入式培訓(xùn)用書,以及嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)人員的參考書。
圖書封面
評(píng)論、評(píng)分、閱讀與下載
ARM嵌入式系統(tǒng)移植實(shí)戰(zhàn)開(kāi)發(fā) PDF格式下載