編輯推薦
嵌入式Linux開發精品圖書全麵升級,ChinaUnix社區鼎力推薦,贈送40段共9小時語音教學視頻,送教學PPT
由淺入深,全麵解析基於ARM體係結構的嵌入式Linux係統開發,結閤多個實例和5個典型案例,深入剖析嵌入式開發的原理及過程
版本新穎:書中涉及的軟件及開發環境都是當前為流行的版本
由淺入深:從嵌入式係統的軟硬件開始講解,逐步深入到實際開發
內容全麵:涵蓋嵌入式Linux係統開發的大部分知識點和典型應用
注重原理:對每個知識點從概念和基本原理進行瞭詳細而透徹的分析
重點突齣:對Bootloader和Linux內核的功能和移植進行瞭詳細介紹
實踐性強:結閤多個典型實例和5個應用案例,提高讀者的開發水平
內容簡介
“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 電路基本知識
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.2 ARM處理器介紹
3.2.1 ARM微處理器的應用領域
3.2.2 ARM的功能特點
3.3 ARM指令集
3.3.1 算術運算指令
3.3.2 邏輯運算指令
3.3.3 分支指令
3.3.4 數據傳送指令
3.4 ARM的結構
3.4.1 ARM體係結構的命名方法
3.4.2 處理器係列劃分
3.4.3 處理器工作模式
3.4.4 存儲係統
3.4.5 尋址方式
3.5 ARM的功能選型
3.5.1 ARM的選型原則
3.5.2 幾種常見的ARM核處理器選型參考
3.6 小結
第4章 嵌入式Linux
4.1 常見的嵌入式操作係統
4.1.1 VxWorks
4.1.2 Windows CE
4.1.3 PalmOS
4.1.4 Symbian
4.2 嵌入式Linux操作係統
4.2.1 什麼是Linux
4.2.2 Linux與UNIX的不同——GPL版權協議介紹
4.2.3 Linux發行版
4.2.4 常見的嵌入式Linux係統
4.3 小結
第5章 建立軟件開發環境
5.1 獨立的Linux係統
5.1.1 安裝Ubuntu Linux
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.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集成開發環境ADS
5.5.1 ADS集成開發環境介紹
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.2 ANSI C文件管理
7.2.1 文件指針和流
7.2.2 存儲方式
7.2.3 標準輸入、標準輸齣和標準錯誤
7.2.4 緩衝
7.2.5 打開、關閉文件
7.2.6 讀寫文件
7.2.7 文件流定位
7.2.8 ANSI C文件編程實例
7.3 POSIX文件I/O編程
7.3.1 底層的文件I/O操作
7.3.2 文件描述符
7.3.3 創建/打開/關閉文件
7.3.4 讀寫文件內容
7.3.5 文件內容定位
7.3.6 修改已打開文件的屬性
7.3.7 POSIX文件編程實例
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.1 TCP/IP協議族
9.1.2 IP協議
9.1.3 TCP協議
9.1.4 UDP協議
9.1.5 學習分析協議的方法
9.2 Socket通信基本概念
9.2.1 創建socket對象
9.2.2 麵嚮連接的Socket通信實現
9.2.3 麵嚮連接的echo服務編程實例
9.2.4 無連接的Socket通信實現
9.2.5 無連接的時間服務編程實例
9.3 Socket高級應用
9.3.1 Socket超時處理
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.1 PC與手機連接發送短信的物理結構
10.3.2 AT指令介紹
10.3.3 GSM AT指令集
10.3.4 PDU編碼方式
10.3.5 建立與手機的連接
10.3.6 使用AT指令發送短信
10.4 小結
第11章 嵌入式GUI程序開發
11.1 Linux GUI介紹
11.1.1 Linux GUI的發展
11.1.2 常見的嵌入式GUI
11.2 開發圖形界麵程序
11.2.1 安裝Qt開發環境
11.2.2 建立簡單的Qt程序
11.2.3 Qt庫編程結構
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.5 Bug跟蹤係統
12.5.1 Bug管理的概念和作用
12.5.2 使用Bugzilla跟蹤Bug
12.6 小結
第3篇 Linux係統篇
第13章 ARM體係結構及開發實例
13.1 ARM體係結構介紹
13.1.1 ARM體係結構
13.1.2 ARM指令集介紹
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.1 GPIO接口
13.4.2 中斷控製器
13.4.3 RTC控製器
13.4.4 看門狗定時器
13.4.5 試驗:使用GPIO點亮LED
13.5 小結
第14章 深入Bootloader
14.1 初識Bootloader
14.1.1 PC(個人電腦)上的Bootloader
14.1.2 什麼是嵌入式係統的Bootloader
14.1.3 嵌入式係統常見的Bootloader
14.2 U-Boot分析
14.2.1 獲取U-Boot
14.2.2 U-Boot工程結構分析
14.2.3 U-Boot總體工作流程
14.3 U-Boot啓動流程分析
14.3.1 _start標號
14.3.2 reset標號
14.3.3 cpu_init_crit標號
14.3.4 lowlevel_init標號
14.3.5 relocate標號
14.3.6 start_armboot()函數
14.3.7 main_loop()函數
14.4 移植U-Boot到開發闆
14.4.1 U-Boot移植的一般步驟
14.4.2 移植U-Boot到目標開發闆
14.4.3 移植U-Boot的常見問題
14.5 小結
第15章 解析Linux內核
15.1 基本知識
15.1.1 什麼是Linux內核
15.1.2 Linux內核版本
15.1.3 如何獲取Linux內核代碼
15.1.4 編譯內核
15.2 Linux內核的子係統
15.2.1 係統調用接口
15.2.2 進程管理子係統
15.2.3 內存管理子係統
15.2.4 虛擬文件係統
15.2.5 網絡堆棧
15.2.6 設備驅動
15.2.7 依賴體係結構的代碼
15.3 Linux內核代碼的工程結構
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.6 KBuild變量
15.5 小結
第16章 嵌入式Linux啓動流程
16.1 Linux內核初始化流程
16.2 PC的初始化流程
16.2.1 PC BIOS功能和作用
16.2.2 硬盤的數據結構
16.2.3 完整的初始化流程
16.3 嵌入式係統的初始化
16.4 Linux內核初始化
16.4.1 解壓縮內核映像
16.4.2 進入內核代碼
16.5 啓動init內核進程
16.6 根文件係統初始化
16.6.1 根文件係統介紹
16.6.2 掛載虛擬文件係統
16.7 內核交齣權限
16.8 init進程
16.9 初始化RAM Disk
16.9.1 RAM Disk介紹
16.9.2 如何使用RAM Disk
16.9.3 實例:使用RAM Disk作為根文件係統
16.10 小結<
ARM嵌入式Linux係統開發詳解(第2版) 下載 mobi epub pdf txt 電子書 格式