ARM嵌入式Linux系統開發詳解(第2版)

ARM嵌入式Linux系統開發詳解(第2版)

《ARM嵌入式Linux系統開發詳解(第2版)》是2014年2月1日清華大學出版社出版的圖書,作者是弓雷。

內容簡介

《Linux典藏大系:ARM嵌入式Linux系統開發詳解(第2版)》是獲得了大量讀者好評的“Linux典藏大系”中的《ARM嵌入式Linux系統開發詳解》的第2版。《Linux典藏大系:ARM嵌入式Linux系統開發詳解(第2版)》由淺入深,全面、系統地介紹了基於ARM體系結構的嵌入式Linux系統開發所涉及的方方面面技術,並提供了大量實例供讀者實戰演練。另外,《Linux典藏大系:ARM嵌入式Linux系統開發詳解(第2版)》提供了9小時多媒體教學視頻及書中涉及的實例源程式,便於讀者高效、直觀地學習。

編輯推薦

ARM嵌入式Linux系統開發詳解(第2版) ARM嵌入式Linux系統開發詳解(第2版)

嵌入式Linux開發精品圖書全面升級,ChinaUnix社區鼎力推薦  由淺入深,全面解析基於ARM體系結構的嵌入式Linux系統開發

 結合多個實例和5個典型案例,深入剖析嵌入式開發的原理及過程
贈送40段共9小時語音教學視頻,贈送教學PPT
版本新穎:書中涉及的軟體及開發環境都是當前最為流行的版本
由淺入深:從嵌入式系統的軟硬體開始講解,逐步深入到實際開發
內容全面:涵蓋嵌入式Linux系統開發的大部分知識點和典型套用
注重原理:對每個知識點從概念和基本原理進行了詳細而透徹的分析
重點突出:對Bootloader和Linux核心的功能和移植進行了詳細介紹
實踐性強:結合多個典型實例和5個套用案例,提高讀者的開發水平
推薦閱讀(請點叢書連結查看)
“Linux典藏大系”(叢書暢銷10萬冊,全面、詳細、深入、實用,Linux愛好者必讀經典)
入門很簡單叢書(精品暢銷叢書,有口皆碑,新手必讀)
零點起飛學編程(新手學編程好幫手,編程其實並不難)
Web開發典藏大系 (涵蓋眾多Web開發的前言技術,由一線Web開發人員打造)
《程式設計師的數學思維修煉(趣味解讀)》(專門為程式設計師而寫的數學書,生動有趣,程式設計師必讀!)

內容推薦

“Linux典藏大系”自2010年陸續出版以來,因其內容豐富、講解細膩、通俗易懂和實用性強等特色而深受廣大讀者的喜愛,長期位居同類圖書銷售排行榜的前列,累計銷量近10萬冊。 叢書中部分圖書榮獲 51CTO 讀書頻道 最受讀者喜愛的原創 IT 技術圖書獎 ,還有多種圖書的中文繁體字著作權輸出到了中國台灣地區出版發行。叢書中的多個品種被國內幾十所培訓機構和大中專院校選為教材。叢書的出版還得到了國內 Linux 領域最知名的技術社區 ChinaUnix 的大力支持。讀者在ChinaUnix社區的論壇上與社區中的Linux愛好者進行了廣泛的交流,取得了良好的學習效果。2014年2月“Linux典藏大系“全新升級版(第2版)正式出版,第2版圖書迎合了Linux技術的最新發展,全部採用當前最流行和穩定的Linux發行版或者相關工具,是Linux愛好者學習Linux的好幫手。

《Linux典藏大系:ARM嵌入式Linux系統開發詳解(第2版)》是獲得了大量讀者好評的“Linux典藏大系”中的《ARM嵌入式Linux系統開發詳解》的第2版。《Linux典藏大系:ARM嵌入式Linux系統開發詳解(第2版)》由淺入深,全面、系統地介紹了基於ARM體系結構的嵌入式Linux系統開發所涉及的方方面面技術,並提供了大量實例供讀者實戰演練。另外,《Linux典藏大系:ARM嵌入式Linux系統開發詳解(第2版)》提供了9小時多媒體教學視頻及書中涉及的實例源程式,便於讀者高效、直觀地學習。

《Linux典藏大系:ARM嵌入式Linux系統開發詳解(第2版)》共分4篇。第1篇介紹了嵌入式系統入門、嵌入式軟硬體系統、ARM處理器、嵌入式Linux、軟體開發環境建立和第一個Linux應用程式;第2篇介紹了Linux應用程式編程基礎、開發多進程/執行緒程式、網路通信套用、串列口通信編程、嵌入式GUI程式開發和軟體項目管理;第3篇介紹ARM體系結構及開發實例、深入Bootloader、解析Linux核心、嵌入式Linux啟動流程、Linux檔案系統、建立交叉編譯工具鏈、命令系統BusyBox、Linux核心移植,以及核心和應用程式調試技術;第4篇結合5個案例介紹了Linux設備驅動、網路設備驅動、Flash設備驅動和USB驅動的開發過程,以此提高讀者的實戰水平。

《Linux典藏大系:ARM嵌入式Linux系統開發詳解(第2版)》適合廣大從事嵌入式Linux系統開發的人員、對嵌入式Linux系統開發有興趣的愛好者及大中專院校相關專業的學生閱讀。

作者簡介

弓雷,從事嵌入式系統軟體開發9年。擅長計算機通信技術,對作業系統核心及底層技術有深入研究。技術涉獵廣泛,熟悉Intel IXA架構網路處理器、ARM體系結構、MIPS體系結構和TCP/IP網路協定棧等。曾經移植過Linux 2.6核心到嵌入式設備,參與研發了某部隊火控武器通信系統、無人駕駛汽車項目通信系統及10GE/POS骨幹網流量管理系統等。目前擔任嵌入式軟體研發工程師和微碼軟體研發工程師,從事某公司骨幹網P2P流量管理設備的研發。

目錄

第1篇Linux嵌入式開發基礎篇
第1章嵌入式系統入門
1.1什麼是嵌入式系統
1.2嵌入式系統套用領域
1.2.1家用電器和電子類產品
1.2.2交通工具
1.2.3公共電子設施
1.3嵌入式系統發展
1.3.1嵌入式微控制器
1.3.2嵌入式微處理器
1.3.3未來嵌入式系統發展的方向
1.4典型的嵌入式系統組成
1.5小結
第2章嵌入式軟硬體系統
2.1電路基本知識

第1篇Linux嵌入式開發基礎篇
第1章嵌入式系統入門
1.1什麼是嵌入式系統
1.2嵌入式系統套用領域
1.2.1家用電器和電子類產品
1.2.2交通工具
1.2.3公共電子設施
1.3嵌入式系統發展
1.3.1嵌入式微控制器
1.3.2嵌入式微處理器
1.3.3未來嵌入式系統發展的方向
1.4典型的嵌入式系統組成
1.5小結
第2章嵌入式軟硬體系統
2.1電路基本知識
2.1.1什麼是模擬電路
2.1.2什麼是數字電路
2.1.3數制轉換
2.2計算機組成原理
2.2.1計算機體系的發展
2.2.2中央處理器
2.2.3存儲系統
2.2.4匯流排系統
2.2.5輸入輸出系統
2.3軟體基礎知識
2.3.1什麼是軟體
2.3.2軟體開發流程
2.3.3常見的軟體開發模型
2.3.4計算機程式語言
2.3.5數據結構
2.4作業系統知識
2.4.1什麼是作業系統
2.4.2作業系統的發展歷史
2.4.3作業系統由什麼組成
2.4.4幾種作業系統的設計思路
2.4.5作業系統分類
2.5小結
第3章ARM處理器
3.1微處理器和微控制器
3.2ARM處理器介紹
3.2.1ARM微處理器的套用領域
3.2.2ARM的功能特點
3.3ARM指令集
3.3.1算術運算指令
3.3.2邏輯運算指令
3.3.3分支指令
3.3.4數據傳送指令
3.4ARM的結構
3.4.1ARM體系結構的命名方法
3.4.2處理器系列劃分
3.4.3處理器工作模式
3.4.4存儲系統
3.4.5定址方式
3.5ARM的功能選型
3.5.1ARM的選型原則
3.5.2幾種常見的ARM核處理器選型參考
3.6小結
第4章嵌入式Linux
4.1常見的嵌入式作業系統
4.1.1VxWorks
4.1.2WindowsCE
4.1.3PalmOS
4.1.4Symbian
4.2嵌入式Linux作業系統
4.2.1什麼是Linux
4.2.2Linux與UNIX的不同——GPL著作權協定介紹
4.2.3Linux發行版
4.2.4常見的嵌入式Linux系統
4.3小結
第5章建立軟體開發環境
5.1獨立的Linux系統
5.1.1安裝UbuntuLinux
5.1.2怎樣安裝、卸載軟體
5.1.3怎樣配置系統服務
5.1.4安裝主要的開發工具
5.1.5安裝其他的開發工具和文檔
5.2運行在Windows上的Linux系統
5.2.1什麼是Cygwin
5.2.2如何安裝Cygwin
5.2.3安裝開發環境
5.3Linux常用工具
5.3.1Linuxshell和常用命令
5.3.2文本編輯工具vi
5.3.3搜尋工具find和grep
5.3.4FTP工具
5.3.5串口工具minicom
5.4Windows常用工具
5.4.1代碼編輯管理工具SourceInsight
5.4.2串口工具XShell
5.5ARM集成開發環境ADS
5.5.1ADS集成開發環境介紹
5.5.2配置ADS調試環境
5.5.3建立自己的工程
5.6小結
第6章第一個Linux應用程式
6.1向世界問好——Hello,World!
6.1.1用vi編輯原始碼檔案
6.1.2用gcc編譯程式
6.1.3執行程式
6.2程式背後做了什麼
6.2.1程式執行的過程
6.2.2窺視程式執行中的秘密
6.2.3動態庫的作用
6.3程式如何來的——編譯的全部過程
6.3.1編譯原始碼
6.3.2連線目標檔案到指定的庫
6.4更簡單的辦法——用Makefile管理工程
6.4.1什麼是Makefile
6.4.2它是如何工作的
6.4.3如何使用Makefile
6.4.4好的原始碼管理習慣
6.5小結
第2篇Linux嵌入式開發套用篇
第7章Linux應用程式編程基礎
7.1記憶體管理和使用
7.1.1堆和棧的區別
7.1.2記憶體管理函式malloc()和free()
7.1.3實用的記憶體分配函式calloc()和realloc()
7.1.4記憶體管理編程實例
7.2ANSIC檔案管理
7.2.1檔案指針和流
7.2.2存儲方式
7.2.3標準輸入、標準輸出和標準錯誤
7.2.4緩衝
7.2.5打開、關閉檔案
7.2.6讀寫檔案
7.2.7檔案流定位
7.2.8ANSIC檔案編程實例
7.3POSIX檔案I/O編程
7.3.1底層的檔案I/O操作
7.3.2檔案描述符
7.3.3創建/打開/關閉檔案
7.3.4讀寫檔案內容
7.3.5檔案內容定位
7.3.6修改已打開檔案的屬性
7.3.7POSIX檔案編程實例
7.4小結
第8章開發多進程/執行緒程式
8.1多進程開發
8.1.1什麼是進程
8.1.2進程環境和屬性
8.1.3創建進程
8.1.4等待進程結束
8.1.5退出進程
8.1.6常用進程間通信的方法
8.1.7進程編程實例
8.2多執行緒開發
8.2.1執行緒的概念
8.2.2進程和執行緒對比
8.2.3創建執行緒
8.2.4取消執行緒
8.2.5等待執行緒
8.2.6使用pthread庫執行緒操作實例
8.3小結
第9章網路通信套用
9.1網路通信基礎
9.1.1TCP/IP協定族
9.1.2IP協定
9.1.3TCP協定
9.1.4UDP協定
9.1.5學習分析協定的方法
9.2Socket通信基本概念
9.2.1創建socket對象
9.2.2面向連線的Socket通信實現
9.2.3面向連線的echo服務編程實例
9.2.4無連線的Socket通信實現
9.2.5無連線的時間服務編程實例
9.3Socket高級套用
9.3.1Socket逾時處理
9.3.2使用Select機制處理多連線
9.3.3使用poll機制處理多連線
9.3.4多執行緒環境Socket編程
9.4小結
第10章串口通信編程
10.1串口介紹
10.1.1什麼是串口
10.1.2串口工作原理
10.1.3串口流量控制
10.2開發串口應用程式
10.2.1操作串口需要用到的頭檔案
10.2.2串口操作方法
10.2.3串口屬性設定
10.2.4與Windows串口終端通信
10.3串口套用實例——手機簡訊傳送
10.3.1PC與手機連線傳送簡訊的物理結構
10.3.2AT指令介紹
10.3.3GSMAT指令集
10.3.4PDU編碼方式
10.3.5建立與手機的連線
10.3.6使用AT指令傳送簡訊
10.4小結
第11章嵌入式GUI程式開發
11.1LinuxGUI介紹
11.1.1LinuxGUI的發展
11.1.2常見的嵌入式GUI
11.2開發圖形界面程式
11.2.1安裝Qt開發環境
11.2.2建立簡單的Qt程式
11.2.3Qt庫編程結構
11.3深入Qt編程
11.3.1使用Widget
11.3.2對話框程式設計
11.3.3信號與槽系統
11.4移植Qtopia到ARM開發板
11.4.1需要的資源
11.4.2準備工作
11.4.3編譯主機Qt工具
11.4.4交叉編譯qtopia
11.5小結
第12章軟體項目管理
12.1原始碼管理
12.1.1什麼是軟體的版本
12.1.2版本控制的概念
12.2版本控制系統Subversion
12.2.1在Linux系統下使用Subversion服務端
12.2.2在Windows系統下使用TortoiseSVN客戶端
12.3開發文檔管理——常見的開發文檔
12.3.1可行性研究報告
12.3.2項目開發計畫
12.3.3軟體需求說明書
12.3.4概要設計
12.3.5詳細設計
12.3.6用戶手冊
12.3.7其他文檔
12.4使用trac管理軟體開發文檔
12.4.1安裝trac
12.4.2配置trac基本設定
12.4.3配置trac全局腳本
12.4.4設定trac的Web界面
12.5Bug跟蹤系統
12.5.1Bug管理的概念和作用
12.5.2使用Bugzilla跟蹤Bug
12.6小結
第3篇Linux系統篇
第13章ARM體系結構及開發實例
13.1ARM體系結構介紹
13.1.1ARM體系結構
13.1.2ARM指令集介紹
13.2編程模型
13.2.1數據類型
13.2.2處理器模式
13.2.3暫存器
13.2.4通用暫存器
13.2.5程式狀態暫存器
13.2.6異常處理
13.2.7記憶體和記憶體I/O映射
13.3記憶體管理單元
13.3.1記憶體管理介紹
13.3.2記憶體訪問順序
13.3.3地址翻譯過程
13.3.4訪問許可權
13.4常見接口和控制器
13.4.1GPIO接口
13.4.2中斷控制器
13.4.3RTC控制器
13.4.4看門狗定時器
13.4.5試驗:使用GPIO點亮LED
13.5小結
第14章深入Bootloader
14.1初識Bootloader
14.1.1PC(個人電腦)上的Bootloader
14.1.2什麼是嵌入式系統的Bootloader
14.1.3嵌入式系統常見的Bootloader
14.2U-Boot分析
14.2.1獲取U-Boot
14.2.2U-Boot工程結構分析
14.2.3U-Boot總體工作流程
14.3U-Boot啟動流程分析
14.3.1_start標號
14.3.2reset標號
14.3.3cpu_init_crit標號
14.3.4lowlevel_init標號
14.3.5relocate標號
14.3.6start_armboot()函式
14.3.7main_loop()函式
14.4移植U-Boot到開發板
14.4.1U-Boot移植的一般步驟
14.4.2移植U-Boot到目標開發板
14.4.3移植U-Boot的常見問題
14.5小結
第15章解析Linux核心
15.1基本知識
15.1.1什麼是Linux核心
15.1.2Linux核心版本
15.1.3如何獲取Linux核心代碼
15.1.4編譯核心
15.2Linux核心的子系統
15.2.1系統調用接口
15.2.2進程管理子系統
15.2.3記憶體管理子系統
15.2.4虛擬檔案系統
15.2.5網路堆疊
15.2.6設備驅動
15.2.7依賴體系結構的代碼
15.3Linux核心代碼的工程結構
15.3.1原始碼目錄布局
15.3.2幾個重要的Linux核心檔案
15.4核心編譯系統
15.4.1核心編譯系統基本架構
15.4.2核心頂層Makefile分析
15.4.3核心編譯檔案分析
15.4.4目標檔案清除機制
15.4.5編譯輔助程式
15.4.6KBuild變數
15.5小結
第16章嵌入式Linux啟動流程
16.1Linux核心初始化流程
16.2PC的初始化流程
16.2.1PCBIOS功能和作用
16.2.2硬碟的數據結構
16.2.3完整的初始化流程
16.3嵌入式系統的初始化
16.4Linux核心初始化
16.4.1解壓縮核心映像
16.4.2進入核心代碼
16.5啟動init核心進程
16.6根檔案系統初始化
16.6.1根檔案系統介紹
16.6.2掛載虛擬檔案系統
16.7核心交出許可權
16.8init進程
16.9初始化RAMDisk
16.9.1RAMDisk介紹
16.9.2如何使用RAMDisk
16.9.3實例:使用RAMDisk作為根檔案系統
16.10小結
第17章Linux檔案系統
17.1Linux檔案管理
17.1.1檔案和目錄的概念
17.1.2檔案的結構
17.1.3檔案的類型
17.1.4檔案系統的目錄結構
17.1.5檔案和目錄的存取許可權
17.1.6檔案系統管理
17.2Linux檔案系統原理
17.2.1非日誌檔案系統
17.2.2日誌檔案系統
17.3常見的Linux檔案系統
17.3.1ext2檔案系統
17.3.2ext3檔案系統
17.3.3ReiserFS檔案系統
17.3.4JFFS檔案系統
17.3.5cramfs檔案系統
17.4其他檔案系統
17.4.1網路檔案系統
17.4.2/proc影子檔案系統
17.5小結
第18章建立交叉編譯工具鏈
18.1什麼是交叉編譯
18.2需要哪些東西
18.3手工創建工具鏈
18.3.1準備工作——獲取原始碼
18.3.2開始了——建立工作環境
18.3.3建立Linux核心頭檔案
18.3.4編譯安裝binutils
18.3.5編譯安裝gcc的C編譯器
18.3.6編譯安裝glibc庫
18.3.7編譯安裝gcc的C、C++編譯器
18.3.8最後的工作
18.4使用腳本創建工具鏈
18.5更簡便的方法——獲取已編譯好的交叉編譯環境
18.6小結
第19章強大的命令系統BusyBox
19.1BusyBox簡介
19.1.1簡單易懂的BusyBox
19.1.2BusyBox工作原理
19.1.3安裝BusyBox
19.2交叉編譯BusyBox
19.3使用BusyBox
19.3.1BusyBox初始化
19.3.2目標板BusyBox安裝
19.4小結
第20章Linux核心移植
20.1Linux核心移植要點
20.2平台相關代碼結構
20.3建立目標平台工程框架
20.3.1加入編譯選單項

相關詞條

熱門詞條

聯絡我們