ARM嵌入式Linux系統(tǒng)開發(fā)詳解(第2版)(Linux典藏大系)
定 價(jià):69 元
- 作者:弓雷 等編著
- 出版時(shí)間:2014/2/1
- ISBN:9787302340522
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP316.89
- 頁(yè)碼:466
- 紙張:膠版紙
- 版次:2
- 開本:16開
“Linux典藏大系”自2010年陸續(xù)出版以來,因其內(nèi)容豐富、講解細(xì)膩、通俗易懂和實(shí)用性強(qiáng)等特色而深受廣大讀者的喜愛,長(zhǎng)期位居同類圖書銷售排行榜的前列,累計(jì)銷量近10萬冊(cè)。
叢書中部分圖書榮獲51CTO讀書頻道“最受讀者喜愛的原創(chuàng)IT技術(shù)圖書獎(jiǎng)”,還有多種圖書的中文繁體字版權(quán)輸出到了中國(guó)臺(tái)灣地區(qū)出版發(fā)行。叢書中的多個(gè)品種被國(guó)內(nèi)幾十所培訓(xùn)機(jī)構(gòu)和大中專院校選為教材。叢書的出版還得到了國(guó)內(nèi)Linux領(lǐng)域最知名的技術(shù)社區(qū)ChinaUnix的大力支持。讀者在ChinaUnix社區(qū)的論壇上與社區(qū)中的Linux愛好者進(jìn)行了廣泛的交流,取得了良好的學(xué)習(xí)效果。2014年2月“Linux典藏大系“全新升級(jí)版(第2版)正式出版,第2版圖書迎合了Linux技術(shù)的最新發(fā)展,全部采用當(dāng)前最流行和穩(wěn)定的Linux發(fā)行版或者相關(guān)工具,是Linux愛好者學(xué)習(xí)Linux的好幫手。
《Linux典藏大系:ARM嵌入式Linux系統(tǒng)開發(fā)詳解(第2版)》是獲得了大量讀者好評(píng)的“Linux典藏大系”中的《ARM嵌入式Linux系統(tǒng)開發(fā)詳解》的第2版。《Linux典藏大系:ARM嵌入式Linux系統(tǒng)開發(fā)詳解(第2版)》由淺入深,全面、系統(tǒng)地介紹了基于ARM體系結(jié)構(gòu)的嵌入式Linux系統(tǒng)開發(fā)所涉及的方方面面技術(shù),并提供了大量實(shí)例供讀者實(shí)戰(zhàn)演練。另外,《Linux典藏大系:ARM嵌入式Linux系統(tǒng)開發(fā)詳解(第2版)》提供了9小時(shí)多媒體教學(xué)視頻及書中涉及的實(shí)例源程序,便于讀者高效、直觀地學(xué)習(xí)。
《Linux典藏大系:ARM嵌入式Linux系統(tǒng)開發(fā)詳解(第2版)》共分4篇。第1篇介紹了嵌入式系統(tǒng)入門、嵌入式軟硬件系統(tǒng)、ARM處理器、嵌入式Linux、軟件開發(fā)環(huán)境建立和第一個(gè)Linux應(yīng)用程序;第2篇介紹了Linux應(yīng)用程序編程基礎(chǔ)、開發(fā)多進(jìn)程/線程程序、網(wǎng)絡(luò)通信應(yīng)用、串行口通信編程、嵌入式GUI程序開發(fā)和軟件項(xiàng)目管理;第3篇介紹ARM體系結(jié)構(gòu)及開發(fā)實(shí)例、深入Bootloader、解析Linux內(nèi)核、嵌入式Linux啟動(dòng)流程、Linux文件系統(tǒng)、建立交叉編譯工具鏈、命令系統(tǒng)BusyBox、Linux內(nèi)核移植,以及內(nèi)核和應(yīng)用程序調(diào)試技術(shù);第4篇結(jié)合5個(gè)案例介紹了Linux設(shè)備驅(qū)動(dòng)、網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)、Flash設(shè)備驅(qū)動(dòng)和USB驅(qū)動(dòng)的開發(fā)過程,以此提高讀者的實(shí)戰(zhàn)水平。
《Linux典藏大系:ARM嵌入式Linux系統(tǒng)開發(fā)詳解(第2版)》適合廣大從事嵌入式Linux系統(tǒng)開發(fā)的人員、對(duì)嵌入式Linux系統(tǒng)開發(fā)有興趣的愛好者及大中專院校相關(guān)專業(yè)的學(xué)生閱讀。
嵌入式Linux開發(fā)精品圖書全面升級(jí),ChinaUnix社區(qū)鼎力推薦 由淺入深,全面解析基于ARM體系結(jié)構(gòu)的嵌入式Linux系統(tǒng)開發(fā) 結(jié)合多個(gè)實(shí)例和5個(gè)典型案例,深入剖析嵌入式開發(fā)的原理及過程 贈(zèng)送40段共9小時(shí)語音教學(xué)視頻 版本新穎:書中涉及的軟件及開發(fā)環(huán)境都是當(dāng)前最為流行的版本 由淺入深:從嵌入式系統(tǒng)的軟硬件開始講解,逐步深入到實(shí)際開發(fā) 內(nèi)容全面:涵蓋嵌入式Linux系統(tǒng)開發(fā)的大部分知識(shí)點(diǎn)和典型應(yīng)用 注重原理:對(duì)每個(gè)知識(shí)點(diǎn)從概念和基本原理進(jìn)行了詳細(xì)而透徹的分析 重點(diǎn)突出:對(duì)Bootloader和Linux內(nèi)核的功能和移植進(jìn)行了詳細(xì)介紹 實(shí)踐性強(qiáng):結(jié)合多個(gè)典型實(shí)例和5個(gè)應(yīng)用案例,提高讀者的開發(fā)水平推薦閱讀(請(qǐng)點(diǎn)叢書鏈接查看)“Linux典藏大系” (叢書暢銷10萬冊(cè),全面、詳細(xì)、深入、實(shí)用,Linux愛好者必讀經(jīng)典)
隨著超大規(guī)模集成電路的發(fā)展,計(jì)算機(jī)處理器技術(shù)不斷提高,計(jì)算機(jī)芯片的處理能力越來越強(qiáng),體積越來越小,計(jì)算機(jī)技術(shù)應(yīng)用到生活的方方面面。與人們?nèi)粘I畲蚪坏雷疃嗟木褪乔度胧较到y(tǒng),從目前廣泛使用的手機(jī)、MP3播放器到家用電器,嵌入式系統(tǒng)的應(yīng)用無處不在。嵌入式系統(tǒng)的開發(fā)占整個(gè)計(jì)算機(jī)系統(tǒng)開發(fā)的比重也越來越高。
嵌入式系統(tǒng)開發(fā)與傳統(tǒng)的PC程序開發(fā)不同。嵌入式系統(tǒng)開發(fā)涉及軟件和硬件的開發(fā),是一個(gè)協(xié)同工作的統(tǒng)一體。目前,已經(jīng)有許多的嵌入式系統(tǒng)硬件和操作系統(tǒng)軟件,其中應(yīng)用最廣泛的是ARM嵌入式處理器和Linux系統(tǒng)。
目前,市場(chǎng)上嵌入式開發(fā)的書籍大多是針對(duì)某個(gè)特定領(lǐng)域編寫的,專業(yè)性和針對(duì)性較強(qiáng),不適合初學(xué)者學(xué)習(xí);谶@個(gè)原因筆者編寫了本書。本書是獲得了大量讀者好評(píng)的“Linux典藏大系”中的《ARM嵌入式Linux系統(tǒng)開發(fā)詳解》的第2版。在第1版的基礎(chǔ)上,本書進(jìn)行了全新改版,升級(jí)了編程環(huán)境,對(duì)第1版書中的一些疏漏進(jìn)行了修訂,也對(duì)書中的一些實(shí)例和代碼進(jìn)行了重新表述,使得更加易讀。相信讀者可以在本書的引領(lǐng)下跨入嵌入式開發(fā)的大門。
關(guān)于“Linux典藏大系”
“Linux典藏大系”是清華大學(xué)出版社自2010年1月以來陸續(xù)推出的一個(gè)圖書系列,截止2012年,已經(jīng)出版了10余個(gè)品種。該系列圖書涵蓋了Linux技術(shù)的方方面面,可以滿足各個(gè)層次和各個(gè)領(lǐng)域的讀者學(xué)習(xí)Linux技術(shù)的需求。該系列圖書自出版以來獲得了廣大讀者的好評(píng),已經(jīng)成為了Linux圖書市場(chǎng)上最耀眼的明星品牌之一。其銷量在同類圖書中也名列前茅,其中一些圖書還獲得了“51CTO讀書頻道”頒發(fā)的“最受讀者喜愛的原創(chuàng)IT技術(shù)圖書獎(jiǎng)”。該系列圖書在出版過程中也得到了國(guó)內(nèi)Linux領(lǐng)域最知名的技術(shù)社區(qū)ChinaUnix(簡(jiǎn)稱CU)的大力支持和幫助,讀者在CU社區(qū)中就圖書的內(nèi)容與活躍在CU社區(qū)中的Linux技術(shù)愛好者進(jìn)行廣泛交流,取得了良好的學(xué)習(xí)效果。
關(guān)于本書第2版
本書第1版出版后深受讀者好評(píng),并被ChinaUnix技術(shù)社區(qū)推薦。但是隨著技術(shù)的發(fā)展,本書第1版內(nèi)容已經(jīng)無法滿足讀者的學(xué)習(xí)需求。應(yīng)廣大讀者的要求,我們結(jié)合嵌入式技術(shù)的最新發(fā)展推出了本書的第2版。相比第1版,第2版圖書在內(nèi)容上的變化主要體現(xiàn)在以下幾個(gè)方面:
。1)Linux開發(fā)環(huán)境由Ubuntu 8.04升級(jí)到12.04。
。2)更新了Cygwin、ADS、GCC等相關(guān)軟件。
。3)修訂了一些專有名詞及術(shù)語的不一致問題。
。4)刪除了部分已經(jīng)過時(shí)的內(nèi)容,如Ubuntu的網(wǎng)絡(luò)配置等。
。5)給完整的實(shí)例代碼增加了行序號(hào),方便讀者閱讀。
(6)糾正了部分函數(shù)講解錯(cuò)誤,并修正了部分代碼的類型轉(zhuǎn)化等問題。
。7)將一些表達(dá)不準(zhǔn)確的地方表述得更加準(zhǔn)確。
本書特色
1.循序漸進(jìn),由淺入深
為了讓初學(xué)者快速進(jìn)入嵌入式系統(tǒng)開發(fā)領(lǐng)域,本書一開始對(duì)嵌入式系統(tǒng)的軟件和硬件做了全面的介紹,讓讀者對(duì)嵌入式系統(tǒng)有一個(gè)基本的認(rèn)識(shí)。同時(shí),在書中講解的知識(shí)點(diǎn)都配備了完整的實(shí)例,讀者可以通過實(shí)例學(xué)習(xí)嵌入式系統(tǒng)開發(fā)的相關(guān)知識(shí)。
2.技術(shù)全面,內(nèi)容充實(shí)
作者本人從事嵌入式系統(tǒng)開發(fā)多年,深入了解嵌入式系統(tǒng)開發(fā)的各個(gè)方面,在書中講解了嵌入式Linux開發(fā)的各個(gè)要點(diǎn),包括Linux內(nèi)核的構(gòu)成、工作流程、驅(qū)動(dòng)程序開發(fā)、文件系統(tǒng)、程序庫(kù)等知識(shí),使讀者全面了解嵌入式Linux開發(fā)的各個(gè)知識(shí)點(diǎn)。
3.實(shí)例講解,理解深刻
嵌入式Linux開發(fā)書籍眾多,很多書籍偏重理論。本書所有的實(shí)例都經(jīng)過作者驗(yàn)證,并且有詳細(xì)的操作過程和實(shí)驗(yàn)結(jié)果。其次,本書的操作實(shí)例有完整的實(shí)驗(yàn)環(huán)境描述,讀者可以通過實(shí)例加深對(duì)知識(shí)點(diǎn)的理解。
4.化整為零,深入剖析
嵌入式系統(tǒng)開發(fā)涉及知識(shí)面廣,技術(shù)復(fù)雜。本書剝繭抽絲,力求找出開發(fā)過程中關(guān)鍵的知識(shí)點(diǎn)。從關(guān)鍵點(diǎn)入手,通過簡(jiǎn)單易懂的例子剖析技術(shù)原理,幫助讀者掌握復(fù)雜的技術(shù)。
5.詳解典型項(xiàng)目案例開發(fā),提高實(shí)戰(zhàn)水平
本書詳細(xì)分析了DM9000網(wǎng)卡驅(qū)動(dòng)、NAND Flash設(shè)備驅(qū)動(dòng)和USB驅(qū)動(dòng)的實(shí)現(xiàn)。通過這三個(gè)項(xiàng)目案例,可以提高讀者的設(shè)備驅(qū)動(dòng)開發(fā)水平,從而具備獨(dú)立進(jìn)行驅(qū)動(dòng)開發(fā)的能力。
6.提供多媒體教學(xué)視頻和源文件
本書專門提供了9小時(shí)多媒體教學(xué)視頻和實(shí)例源文件,便于讀者高效、直觀地學(xué)習(xí)。這些學(xué)習(xí)資料需要讀者按照封面的提示自行下載。
本書內(nèi)容體系
第1篇 Linux嵌入式開發(fā)基礎(chǔ)篇(第1~6章)
本篇主要內(nèi)容包括嵌入式系統(tǒng)入門、嵌入式軟硬件系統(tǒng)、ARM處理器、嵌入式Linux、軟件開發(fā)環(huán)境建立和第一個(gè)Linux應(yīng)用程序。通過本篇的學(xué)習(xí),讀者可以掌握Linux嵌入式開發(fā)環(huán)境的搭建和Linux嵌入式的基礎(chǔ)知識(shí)。
第2篇 Linux嵌入式開發(fā)應(yīng)用篇(第7~12章)
本篇主要內(nèi)容包括Linux應(yīng)用程序編程基礎(chǔ)、開發(fā)多進(jìn)程/線程程序、網(wǎng)絡(luò)通信應(yīng)用、串行口通信編程、嵌入式GUI程序開發(fā)和軟件項(xiàng)目管理等內(nèi)容。通過本篇的學(xué)習(xí),讀者可以掌握Linux嵌入式的核心技術(shù)與應(yīng)用。
第3篇 Linux系統(tǒng)篇(第13~21章)
本篇主要內(nèi)容包括ARM體系結(jié)構(gòu)及開發(fā)實(shí)例、深入Bootloader、解析Linux內(nèi)核、嵌入式Linux啟動(dòng)流程、Linux文件系統(tǒng)、建立交叉編譯工具鏈、命令系統(tǒng)BusyBox、Linux內(nèi)核移植,以及內(nèi)核和應(yīng)用程序調(diào)試技術(shù)。通過本篇的學(xué)習(xí),讀者可以對(duì)Linux系統(tǒng)從內(nèi)核到文件系統(tǒng)再到啟動(dòng)流程有一個(gè)非常清楚的了解。
第4篇 Linux嵌入式驅(qū)動(dòng)開發(fā)篇(第22~25章)
本篇主要內(nèi)容包括Linux設(shè)備驅(qū)動(dòng)、網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序、Flash設(shè)備驅(qū)動(dòng),以及USB驅(qū)動(dòng)開發(fā)等。通過本篇的學(xué)習(xí),讀者可以掌握Linux嵌入式開發(fā)的基本流程及思想。
本書讀者對(duì)象
* Linux嵌入式開發(fā)初學(xué)者;
* 需要系統(tǒng)學(xué)習(xí)Linux嵌入式開發(fā)的人員;
* Linux嵌入式從業(yè)人員;
* Linux嵌入式開發(fā)愛好者;
* 大中專院校的學(xué)生;
* 社會(huì)培訓(xùn)班的學(xué)員。
本書作者
本書由弓雷主筆編寫。其他參與編寫的人員有吳振華、辛立偉、熊新奇、徐彬、晏景現(xiàn)、楊光磊、楊艷玲、姚志娟、俞晶磊、張建輝、張健、張林、張迎春、張之超、趙紅梅、趙永源、仲?gòu)暮啤⒅芙ㄕ、楊文達(dá)。
本書編委會(huì)成員有歐振旭、陳杰、陳冠軍、頊宇峰、張帆、陳剛、程彩紅、毛紅娟、聶慶亮、王志娟、武文娟、顏盟盟、姚志娟、尹繼平、張昆、張薛。
閱讀本書時(shí),有疑問可發(fā)E-mail到book@wanjuanchina.net或bookservice2008@163. com以獲得幫助。也可以在http://www.wanjuanchina.net論壇上留言,會(huì)有專人負(fù)責(zé)答疑。
編著者
弓雷,從事嵌入式系統(tǒng)軟件開發(fā)9年。擅長(zhǎng)計(jì)算機(jī)通信技術(shù),對(duì)操作系統(tǒng)內(nèi)核及底層技術(shù)有深入研究。技術(shù)涉獵廣泛,熟悉Intel IXA架構(gòu)網(wǎng)絡(luò)處理器、ARM體系結(jié)構(gòu)、MIPS體系結(jié)構(gòu)和TCP/IP網(wǎng)絡(luò)協(xié)議棧等。曾經(jīng)移植過Linux 2.6內(nèi)核到嵌入式設(shè)備,參與研發(fā)了某部隊(duì)火控武器通信系統(tǒng)、無人駕駛汽車項(xiàng)目通信系統(tǒng)及10GE/POS骨干網(wǎng)流量管理系統(tǒng)等。目前擔(dān)任嵌入式軟件研發(fā)工程師和微碼軟件研發(fā)工程師,從事某公司骨干網(wǎng)P2P流量管理設(shè)備的研發(fā)。
第1篇 Linux嵌入式開發(fā)基礎(chǔ)篇
第1章 嵌入式系統(tǒng)入門
1.1 什么是嵌入式系統(tǒng)
1.2 嵌入式系統(tǒng)應(yīng)用領(lǐng)域
1.2.1 家用電器和電子類產(chǎn)品
1.2.2 交通工具
1.2.3 公共電子設(shè)施
1.3 嵌入式系統(tǒng)發(fā)展
1.3.1 嵌入式微控制器
1.3.2 嵌入式微處理器
1.3.3 未來嵌入式系統(tǒng)發(fā)展的方向
1.4 典型的嵌入式系統(tǒng)組成
1.5 小結(jié)
第2章 嵌入式軟硬件系統(tǒng)
2.1 電路基本知識(shí) 第1篇 Linux嵌入式開發(fā)基礎(chǔ)篇
第1章 嵌入式系統(tǒng)入門
1.1 什么是嵌入式系統(tǒng)
1.2 嵌入式系統(tǒng)應(yīng)用領(lǐng)域
1.2.1 家用電器和電子類產(chǎn)品
1.2.2 交通工具
1.2.3 公共電子設(shè)施
1.3 嵌入式系統(tǒng)發(fā)展
1.3.1 嵌入式微控制器
1.3.2 嵌入式微處理器
1.3.3 未來嵌入式系統(tǒng)發(fā)展的方向
1.4 典型的嵌入式系統(tǒng)組成
1.5 小結(jié)
第2章 嵌入式軟硬件系統(tǒng)
2.1 電路基本知識(shí)
2.1.1 什么是模擬電路
2.1.2 什么是數(shù)字電路
2.1.3 數(shù)制轉(zhuǎn)換
2.2 計(jì)算機(jī)組成原理
2.2.1 計(jì)算機(jī)體系的發(fā)展
2.2.2 中央處理器
2.2.3 存儲(chǔ)系統(tǒng)
2.2.4 總線系統(tǒng)
2.2.5 輸入輸出系統(tǒng)
2.3 軟件基礎(chǔ)知識(shí)
2.3.1 什么是軟件
2.3.2 軟件開發(fā)流程
2.3.3 常見的軟件開發(fā)模型
2.3.4 計(jì)算機(jī)編程語言
2.3.5 數(shù)據(jù)結(jié)構(gòu)
2.4 操作系統(tǒng)知識(shí)
2.4.1 什么是操作系統(tǒng)
2.4.2 操作系統(tǒng)的發(fā)展歷史
2.4.3 操作系統(tǒng)由什么組成
2.4.4 幾種操作系統(tǒng)的設(shè)計(jì)思路
2.4.5 操作系統(tǒng)分類
2.5 小結(jié)
第3章 ARM處理器
3.1 微處理器和微控制器
3.2 ARM處理器介紹
3.2.1 ARM微處理器的應(yīng)用領(lǐng)域
3.2.2 ARM的功能特點(diǎn)
3.3 ARM指令集
3.3.1 算術(shù)運(yùn)算指令
3.3.2 邏輯運(yùn)算指令
3.3.3 分支指令
3.3.4 數(shù)據(jù)傳送指令
3.4 ARM的結(jié)構(gòu)
3.4.1 ARM體系結(jié)構(gòu)的命名方法
3.4.2 處理器系列劃分
3.4.3 處理器工作模式
3.4.4 存儲(chǔ)系統(tǒng)
3.4.5 尋址方式
3.5 ARM的功能選型
3.5.1 ARM的選型原則
3.5.2 幾種常見的ARM核處理器選型參考
3.6 小結(jié)
第4章 嵌入式Linux
4.1 常見的嵌入式操作系統(tǒng)
4.1.1 VxWorks
4.1.2 Windows CE
4.1.3 PalmOS
4.1.4 Symbian
4.2 嵌入式Linux操作系統(tǒng)
4.2.1 什么是Linux
4.2.2 Linux與UNIX的不同——GPL版權(quán)協(xié)議介紹
4.2.3 Linux發(fā)行版
4.2.4 常見的嵌入式Linux系統(tǒng)
4.3 小結(jié)
第5章 建立軟件開發(fā)環(huán)境
5.1 獨(dú)立的Linux系統(tǒng)
5.1.1 安裝Ubuntu Linux
5.1.2 怎樣安裝、卸載軟件
5.1.3 怎樣配置系統(tǒng)服務(wù)
5.1.4 安裝主要的開發(fā)工具
5.1.5 安裝其他的開發(fā)工具和文檔
5.2 運(yùn)行在Windows上的Linux系統(tǒng)
5.2.1 什么是Cygwin
5.2.2 如何安裝Cygwin
5.2.3 安裝開發(fā)環(huán)境
5.3 Linux常用工具
5.3.1 Linux shell和常用命令
5.3.2 文本編輯工具vi
5.3.3 搜索工具find和grep
5.3.4 FTP工具
5.3.5 串口工具minicom
5.4 Windows常用工具
5.4.1 代碼編輯管理工具Source Insight
5.4.2 串口工具XShell
5.5 ARM集成開發(fā)環(huán)境ADS
5.5.1 ADS集成開發(fā)環(huán)境介紹
5.5.2 配置ADS調(diào)試環(huán)境
5.5.3 建立自己的工程
5.6 小結(jié)
第6章 第一個(gè)Linux應(yīng)用程序
6.1 向世界問好——Hello,World!
6.1.1 用vi編輯源代碼文件
6.1.2 用gcc編譯程序
6.1.3 執(zhí)行程序
6.2 程序背后做了什么
6.2.1 程序執(zhí)行的過程
6.2.2 窺視程序執(zhí)行中的秘密
6.2.3 動(dòng)態(tài)庫(kù)的作用
6.3 程序如何來的——編譯的全部過程
6.3.1 編譯源代碼
6.3.2 連接目標(biāo)文件到指定的庫(kù)
6.4 更簡(jiǎn)單的辦法——用Makefile管理工程
6.4.1 什么是Makefile
6.4.2 它是如何工作的
6.4.3 如何使用Makefile
6.4.4 好的源代碼管理習(xí)慣
6.5 小結(jié)
第2篇 Linux嵌入式開發(fā)應(yīng)用篇
第7章 Linux應(yīng)用程序編程基礎(chǔ)
7.1 內(nèi)存管理和使用
7.1.1 堆和棧的區(qū)別
7.1.2 內(nèi)存管理函數(shù)malloc()和free()
7.1.3 實(shí)用的內(nèi)存分配函數(shù)calloc()和realloc()
7.1.4 內(nèi)存管理編程實(shí)例
7.2 ANSI C文件管理
7.2.1 文件指針和流
7.2.2 存儲(chǔ)方式
7.2.3 標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤
7.2.4 緩沖
7.2.5 打開、關(guān)閉文件
7.2.6 讀寫文件
7.2.7 文件流定位
7.2.8 ANSI C文件編程實(shí)例
7.3 POSIX文件I/O編程
7.3.1 底層的文件I/O操作
7.3.2 文件描述符
7.3.3 創(chuàng)建/打開/關(guān)閉文件
7.3.4 讀寫文件內(nèi)容
7.3.5 文件內(nèi)容定位
7.3.6 修改已打開文件的屬性
7.3.7 POSIX文件編程實(shí)例
7.4 小結(jié)
第8章 開發(fā)多進(jìn)程/線程程序
8.1 多進(jìn)程開發(fā)
8.1.1 什么是進(jìn)程
8.1.2 進(jìn)程環(huán)境和屬性
8.1.3 創(chuàng)建進(jìn)程
8.1.4 等待進(jìn)程結(jié)束
8.1.5 退出進(jìn)程
8.1.6 常用進(jìn)程間通信的方法
8.1.7 進(jìn)程編程實(shí)例
8.2 多線程開發(fā)
8.2.1 線程的概念
8.2.2 進(jìn)程和線程對(duì)比
8.2.3 創(chuàng)建線程
8.2.4 取消線程
8.2.5 等待線程
8.2.6 使用pthread庫(kù)線程操作實(shí)例
8.3 小結(jié)
第9章 網(wǎng)絡(luò)通信應(yīng)用
9.1 網(wǎng)絡(luò)通信基礎(chǔ)
9.1.1 TCP/IP協(xié)議族
9.1.2 IP協(xié)議
9.1.3 TCP協(xié)議
9.1.4 UDP協(xié)議
9.1.5 學(xué)習(xí)分析協(xié)議的方法
9.2 Socket通信基本概念
9.2.1 創(chuàng)建socket對(duì)象
9.2.2 面向連接的Socket通信實(shí)現(xiàn)
9.2.3 面向連接的echo服務(wù)編程實(shí)例
9.2.4 無連接的Socket通信實(shí)現(xiàn)
9.2.5 無連接的時(shí)間服務(wù)編程實(shí)例
9.3 Socket高級(jí)應(yīng)用
9.3.1 Socket超時(shí)處理
9.3.2 使用Select機(jī)制處理多連接
9.3.3 使用poll機(jī)制處理多連接
9.3.4 多線程環(huán)境Socket編程
9.4 小結(jié)
第10章 串口通信編程
10.1 串口介紹
10.1.1 什么是串口
10.1.2 串口工作原理
10.1.3 串口流量控制
10.2 開發(fā)串口應(yīng)用程序
10.2.1 操作串口需要用到的頭文件
10.2.2 串口操作方法
10.2.3 串口屬性設(shè)置
10.2.4 與Windows串口終端通信
10.3 串口應(yīng)用實(shí)例——手機(jī)短信發(fā)送
10.3.1 PC與手機(jī)連接發(fā)送短信的物理結(jié)構(gòu)
10.3.2 AT指令介紹
10.3.3 GSM AT指令集
10.3.4 PDU編碼方式
10.3.5 建立與手機(jī)的連接
10.3.6 使用AT指令發(fā)送短信
10.4 小結(jié)
第11章 嵌入式GUI程序開發(fā)
11.1 Linux GUI介紹
11.1.1 Linux GUI的發(fā)展
11.1.2 常見的嵌入式GUI
11.2 開發(fā)圖形界面程序
11.2.1 安裝Qt開發(fā)環(huán)境
11.2.2 建立簡(jiǎn)單的Qt程序
11.2.3 Qt庫(kù)編程結(jié)構(gòu)
11.3 深入Qt編程
11.3.1 使用Widget
11.3.2 對(duì)話框程序設(shè)計(jì)
11.3.3 信號(hào)與槽系統(tǒng)
11.4 移植Qtopia到ARM開發(fā)板
11.4.1 需要的資源
11.4.2 準(zhǔn)備工作
11.4.3 編譯主機(jī)Qt工具
11.4.4 交叉編譯qtopia
11.5 小結(jié)
第12章 軟件項(xiàng)目管理
12.1 源代碼管理
12.1.1 什么是軟件的版本
12.1.2 版本控制的概念
12.2 版本控制系統(tǒng)Subversion
12.2.1 在Linux系統(tǒng)下使用Subversion服務(wù)端
12.2.2 在Windows系統(tǒng)下使用TortoiseSVN客戶端
12.3 開發(fā)文檔管理——常見的開發(fā)文檔
12.3.1 可行性研究報(bào)告
12.3.2 項(xiàng)目開發(fā)計(jì)劃
12.3.3 軟件需求說明書
12.3.4 概要設(shè)計(jì)
12.3.5 詳細(xì)設(shè)計(jì)
12.3.6 用戶手冊(cè)
12.3.7 其他文檔
12.4 使用trac管理軟件開發(fā)文檔
12.4.1 安裝trac
12.4.2 配置trac基本設(shè)置
12.4.3 配置trac全局腳本
12.4.4 設(shè)置trac的Web界面
12.5 Bug跟蹤系統(tǒng)
12.5.1 Bug管理的概念和作用
12.5.2 使用Bugzilla跟蹤Bug
12.6 小結(jié)
第3篇 Linux系統(tǒng)篇
第13章 ARM體系結(jié)構(gòu)及開發(fā)實(shí)例
13.1 ARM體系結(jié)構(gòu)介紹
13.1.1 ARM體系結(jié)構(gòu)
13.1.2 ARM指令集介紹
13.2 編程模型
13.2.1 數(shù)據(jù)類型
13.2.2 處理器模式
13.2.3 寄存器
13.2.4 通用寄存器
13.2.5 程序狀態(tài)寄存器
13.2.6 異常處理
13.2.7 內(nèi)存和內(nèi)存I/O映射
13.3 內(nèi)存管理單元
13.3.1 內(nèi)存管理介紹
13.3.2 內(nèi)存訪問順序
13.3.3 地址翻譯過程
13.3.4 訪問權(quán)限
13.4 常見接口和控制器
13.4.1 GPIO接口
13.4.2 中斷控制器
13.4.3 RTC控制器
13.4.4 看門狗定時(shí)器
13.4.5 試驗(yàn):使用GPIO點(diǎn)亮LED
13.5 小結(jié)
第14章 深入Bootloader
14.1 初識(shí)Bootloader
14.1.1 PC(個(gè)人電腦)上的Bootloader
14.1.2 什么是嵌入式系統(tǒng)的Bootloader
14.1.3 嵌入式系統(tǒng)常見的Bootloader
14.2 U-Boot分析
14.2.1 獲取U-Boot
14.2.2 U-Boot工程結(jié)構(gòu)分析
14.2.3 U-Boot總體工作流程
14.3 U-Boot啟動(dòng)流程分析
14.3.1 _start標(biāo)號(hào)
14.3.2 reset標(biāo)號(hào)
14.3.3 cpu_init_crit標(biāo)號(hào)
14.3.4 lowlevel_init標(biāo)號(hào)
14.3.5 relocate標(biāo)號(hào)
14.3.6 start_armboot()函數(shù)
14.3.7 main_loop()函數(shù)
14.4 移植U-Boot到開發(fā)板
14.4.1 U-Boot移植的一般步驟
14.4.2 移植U-Boot到目標(biāo)開發(fā)板
14.4.3 移植U-Boot的常見問題
14.5 小結(jié)
第15章 解析Linux內(nèi)核
15.1 基本知識(shí)
15.1.1 什么是Linux內(nèi)核
15.1.2 Linux內(nèi)核版本
15.1.3 如何獲取Linux內(nèi)核代碼
15.1.4 編譯內(nèi)核
15.2 Linux內(nèi)核的子系統(tǒng)
15.2.1 系統(tǒng)調(diào)用接口
15.2.2 進(jìn)程管理子系統(tǒng)
15.2.3 內(nèi)存管理子系統(tǒng)
15.2.4 虛擬文件系統(tǒng)
15.2.5 網(wǎng)絡(luò)堆棧
15.2.6 設(shè)備驅(qū)動(dòng)
15.2.7 依賴體系結(jié)構(gòu)的代碼
15.3 Linux內(nèi)核代碼的工程結(jié)構(gòu)
15.3.1 源代碼目錄布局
15.3.2 幾個(gè)重要的Linux內(nèi)核文件
15.4 內(nèi)核編譯系統(tǒng)
15.4.1 內(nèi)核編譯系統(tǒng)基本架構(gòu)
15.4.2 內(nèi)核頂層Makefile分析
15.4.3 內(nèi)核編譯文件分析
15.4.4 目標(biāo)文件清除機(jī)制
15.4.5 編譯輔助程序
15.4.6 KBuild變量
15.5 小結(jié)
第16章 嵌入式Linux啟動(dòng)流程
16.1 Linux內(nèi)核初始化流程
16.2 PC的初始化流程
16.2.1 PC BIOS功能和作用
16.2.2 硬盤的數(shù)據(jù)結(jié)構(gòu)
16.2.3 完整的初始化流程
16.3 嵌入式系統(tǒng)的初始化
16.4 Linux內(nèi)核初始化
16.4.1 解壓縮內(nèi)核映像
16.4.2 進(jìn)入內(nèi)核代碼
16.5 啟動(dòng)init內(nèi)核進(jìn)程
16.6 根文件系統(tǒng)初始化
16.6.1 根文件系統(tǒng)介紹
16.6.2 掛載虛擬文件系統(tǒng)
16.7 內(nèi)核交出權(quán)限
16.8 init進(jìn)程
16.9 初始化RAM Disk
16.9.1 RAM Disk介紹
16.9.2 如何使用RAM Disk
16.9.3 實(shí)例:使用RAM Disk作為根文件系統(tǒng)
16.10 小結(jié)
第17章 Linux文件系統(tǒng)
17.1 Linux文件管理
17.1.1 文件和目錄的概念
17.1.2 文件的結(jié)構(gòu)
17.1.3 文件的類型
17.1.4 文件系統(tǒng)的目錄結(jié)構(gòu)
17.1.5 文件和目錄的存取權(quán)限
17.1.6 文件系統(tǒng)管理
17.2 Linux文件系統(tǒng)原理
17.2.1 非日志文件系統(tǒng)
17.2.2 日志文件系統(tǒng)
17.3 常見的Linux文件系統(tǒng)
17.3.1 ext2文件系統(tǒng)
17.3.2 ext3文件系統(tǒng)
17.3.3 ReiserFS文件系統(tǒng)
17.3.4 JFFS文件系統(tǒng)
17.3.5 cramfs文件系統(tǒng)
17.4 其他文件系統(tǒng)
17.4.1 網(wǎng)絡(luò)文件系統(tǒng)
17.4.2 /proc影子文件系統(tǒng)
17.5 小結(jié)
第18章 建立交叉編譯工具鏈
18.1 什么是交叉編譯
18.2 需要哪些東西
18.3 手工創(chuàng)建工具鏈
18.3.1 準(zhǔn)備工作——獲取源代碼
18.3.2 開始了——建立工作環(huán)境
18.3.3 建立Linux內(nèi)核頭文件
18.3.4 編譯安裝binutils
18.3.5 編譯安裝gcc的C編譯器
18.3.6 編譯安裝glibc庫(kù)
18.3.7 編譯安裝gcc的C、C++編譯器
18.3.8 最后的工作
18.4 使用腳本創(chuàng)建工具鏈
18.5 更簡(jiǎn)便的方法——獲取已編譯好的交叉編譯環(huán)境
18.6 小結(jié)
第19章 強(qiáng)大的命令系統(tǒng)BusyBox
19.1 BusyBox簡(jiǎn)介
19.1.1 簡(jiǎn)單易懂的BusyBox
19.1.2 BusyBox工作原理
19.1.3 安裝BusyBox
19.2 交叉編譯BusyBox
19.3 使用BusyBox
19.3.1 BusyBox初始化
19.3.2 目標(biāo)板BusyBox安裝
19.4 小結(jié)
第20章 Linux內(nèi)核移植
20.1 Linux內(nèi)核移植要點(diǎn)
20.2 平臺(tái)相關(guān)代碼結(jié)構(gòu)
20.3 建立目標(biāo)平臺(tái)工程框架
20.3.1 加入編譯菜單項(xiàng)
20.3.2 設(shè)置宏與代碼文件的對(duì)應(yīng)關(guān)系
20.3.3 測(cè)試工程框架
20.4 建立目標(biāo)平臺(tái)代碼框架
20.4.1 ARM處理器相關(guān)結(jié)構(gòu)
20.4.2 建立machine_desc結(jié)構(gòu)
20.4.3 加入處理函數(shù)
20.4.4 加入定時(shí)器結(jié)構(gòu)
20.4.5 測(cè)試代碼結(jié)構(gòu)
20.5 構(gòu)建目標(biāo)板代碼
20.5.1 處理器初始化
20.5.2 端口映射
20.5.3 中斷處理
20.5.4 定時(shí)器處理
20.5.5 編譯最終代碼
20.6 小結(jié)
第21章 內(nèi)核和應(yīng)用程序調(diào)試技術(shù)
21.1 使用gdb調(diào)試應(yīng)用程序概述
21.2 基本的調(diào)試技術(shù)
21.2.1 列出源代碼
21.2.2 斷點(diǎn)管理
21.2.3 執(zhí)行程序
21.2.4 顯示程序變量
21.2.5 信號(hào)管理
21.2.6 調(diào)試實(shí)例
21.3 多進(jìn)程調(diào)試
21.4 調(diào)試意外終止的程序
21.5 內(nèi)核調(diào)試技術(shù)
21.5.1 printk打印調(diào)試信息
21.5.2 使用/proc虛擬文件系統(tǒng)
21.5.3 使用KDB調(diào)試工具
21.5.4 KDB調(diào)試指令
21.6 小結(jié)
第4篇 Linux嵌入式驅(qū)動(dòng)開發(fā)篇
第22章 Linux設(shè)備驅(qū)動(dòng)
22.1 設(shè)備驅(qū)動(dòng)介紹
22.2 Linux內(nèi)核模塊
22.2.1 內(nèi)核模塊簡(jiǎn)介
22.2.2 內(nèi)核模塊的結(jié)構(gòu)
22.2.3 內(nèi)核模塊的加載和卸載
22.2.4 編寫一個(gè)基本的內(nèi)核模塊
22.2.5 編譯內(nèi)核模塊
22.2.6 為內(nèi)核模塊添加參數(shù)
22.3 Linux設(shè)備驅(qū)動(dòng)
22.3.1 PCI局部總線介紹
22.3.2 Linux設(shè)備驅(qū)動(dòng)基本概念
22.3.3 字符設(shè)備
22.3.4 塊設(shè)備
22.3.5 網(wǎng)絡(luò)設(shè)備
22.4 字符設(shè)備驅(qū)動(dòng)開發(fā)實(shí)例
22.4.1 開發(fā)一個(gè)基本的字符設(shè)備驅(qū)動(dòng)
24.4.2 測(cè)試字符設(shè)備驅(qū)動(dòng)
22.5 小結(jié)
第23章 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序
23.1 網(wǎng)絡(luò)基礎(chǔ)知識(shí)
23.1.1 ISO/OSI網(wǎng)絡(luò)參考模型
23.1.2 TCP/IP協(xié)議
23.2 以太網(wǎng)基礎(chǔ)
23.2.1 工作原理
23.2.2 常見以太網(wǎng)標(biāo)準(zhǔn)
23.2.3 拓?fù)浣Y(jié)構(gòu)
23.2.4 工作模式
23.3 網(wǎng)卡工作原理
23.4 內(nèi)核網(wǎng)絡(luò)分層結(jié)構(gòu)
23.4.1 內(nèi)核網(wǎng)絡(luò)結(jié)構(gòu)
23.4.2 與網(wǎng)絡(luò)有關(guān)的數(shù)據(jù)結(jié)構(gòu)
23.4.3 內(nèi)核網(wǎng)絡(luò)部分的全局變量
23.5 內(nèi)核網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)框架
23.5.1 net_device結(jié)構(gòu)
23.5.2 數(shù)據(jù)包接收流程
23.5.3 數(shù)據(jù)包發(fā)送流程
23.6 實(shí)例:DM9000網(wǎng)卡驅(qū)動(dòng)分析
23.6.1 DM9000芯片介紹
23.6.2 網(wǎng)卡驅(qū)動(dòng)程序框架
23.6.3 DM9000網(wǎng)卡驅(qū)動(dòng)主要數(shù)據(jù)結(jié)構(gòu)
23.6.4 加載驅(qū)動(dòng)程序
23.6.5 停止和啟動(dòng)網(wǎng)卡
23.6.6 發(fā)送數(shù)據(jù)包
23.6.7 接收數(shù)據(jù)包
23.6.8 中斷和定時(shí)器處理
23.7 小結(jié)
第24章 Flash設(shè)備驅(qū)動(dòng)
24.1 Linux Flash驅(qū)動(dòng)結(jié)構(gòu)
24.1.1 什么是MTD
24.1.2 MTD系統(tǒng)結(jié)構(gòu)
24.2 Flash設(shè)備基礎(chǔ)
24.2.1 存儲(chǔ)原理
24.2.2 性能比較
24.3 內(nèi)核MTD層
24.3.1 mtd_info結(jié)構(gòu)
24.3.2 mtd_part結(jié)構(gòu)
24.3.3 mtd_partition結(jié)構(gòu)
24.3.4 map_info結(jié)構(gòu)
24.3.5 nand_chip結(jié)構(gòu)
24.4 Flash設(shè)備框架
24.4.1 NOR Flash設(shè)備驅(qū)動(dòng)框架
24.4.2 NAND Flash設(shè)備驅(qū)動(dòng)框架
24.5 Flash設(shè)備驅(qū)動(dòng)實(shí)例——NOR Flash設(shè)備驅(qū)動(dòng)剖析
24.5.1 數(shù)據(jù)結(jié)構(gòu)
24.5.2 驅(qū)動(dòng)初始化
24.5.3 驅(qū)動(dòng)卸載
24.6 Flash設(shè)備驅(qū)動(dòng)實(shí)例——NAND Flash設(shè)備驅(qū)動(dòng)分析
24.6.1 S3C2440 NAND控制器介紹
24.6.2 數(shù)據(jù)結(jié)構(gòu)
24.6.3 驅(qū)動(dòng)初始化
24.6.4 驅(qū)動(dòng)卸載
24.6.5 初始化NAND控制器
24.6.6 設(shè)置芯片操作
24.6.7 電源管理
24.7 小結(jié)
第25章 USB驅(qū)動(dòng)開發(fā)
25.1 USB體系介紹
25.1.1 USB設(shè)計(jì)目標(biāo)
25.1.2 USB體系概述
25.1.3 USB體系工作流程
25.2 USB驅(qū)動(dòng)程序框架
25.2.1 Linux內(nèi)核USB驅(qū)動(dòng)框架
25.2.2 主機(jī)驅(qū)動(dòng)結(jié)構(gòu)
25.2.3 設(shè)備驅(qū)動(dòng)結(jié)構(gòu)
25.2.4 USB驅(qū)動(dòng)程序框架
25.3 USB驅(qū)動(dòng)實(shí)例剖析
25.3.1 USB串口驅(qū)動(dòng)
25.3.2 USB鍵盤驅(qū)動(dòng)
25.4 小結(jié)