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

ARM嵌入式Linux係統開發詳解(第2版) pdf epub mobi txt 电子书 下载 2025

弓雷 等 著
圖書標籤:
  • ARM
  • 嵌入式Linux
  • 係統開發
  • Linux
  • 嵌入式係統
  • ARM架構
  • 開發詳解
  • 第2版
  • 技術
  • 計算機
想要找书就要到 求知書站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 清华大学出版社
ISBN:9787302340522
版次:2
商品编码:11397777
品牌:清华大学
包装:平装
丛书名: Linux典藏大系
开本:16开
出版时间:2014-02-01
用纸:胶版纸
页数:466
字数:765000
正文语种:中文

具体描述

編輯推薦

  

  嵌入式Linux開發精品圖書全麵升級,ChinaUnix社區鼎力推薦,贈送40段共9小時語音教學視頻,送教學PPT

  由淺入深,全麵解析基於ARM體係結構的嵌入式Linux係統開發,結閤多個實例和5個典型案例,深入剖析嵌入式開發的原理及過程

  版本新穎:書中涉及的軟件及開發環境都是當前為流行的版本

  由淺入深:從嵌入式係統的軟硬件開始講解,逐步深入到實際開發

  內容全麵:涵蓋嵌入式Linux係統開發的大部分知識點和典型應用

  注重原理:對每個知識點從概念和基本原理進行瞭詳細而透徹的分析

  重點突齣:對Bootloader和Linux內核的功能和移植進行瞭詳細介紹

  實踐性強:結閤多個典型實例和5個應用案例,提高讀者的開發水平

內容簡介

   “Linux典藏大係2010年陸續齣版以來,因其內容豐富、講解細膩、通俗易懂和實用性強等特色而深受廣大讀者的喜愛,長期位居同類圖書銷售排行榜的前列,纍計銷量近10萬冊。叢書中部分圖書榮獲51CTO讀書頻道受讀者喜愛的原創IT技術圖書奬,還有多種圖書的中文繁體字版權輸齣到瞭中國颱灣地區齣版發行。叢書中的多個品種被國內幾十所培訓機構和大中專院校選為教材。叢書的齣版還得到瞭國內Linux領域知名的技術社區ChinaUnix的大力支持。讀者在ChinaUnix社區的論壇上與社區中的Linux愛好者進行瞭廣泛的交流,取得瞭良好的學習效果。20142“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 小結
第17章 Linux文件係統
17.1 Linux文件管理
17.1.1 文件和目錄的概念
17.1.2 文件的結構
17.1.3 文件的類型
17.1.4 文件係統的目錄結構
17.1.5 文件和目錄的存取權限
17.1.6 文件係統管理
17.2 Linux文件係統原理
17.2.1 非日誌文件係統
17.2.2 日誌文件係統
17.3 常見的Linux文件係統
17.3.1 ext2文件係統
17.3.2 ext3文件係統
17.3.3 ReiserFS文件係統
17.3.4 JFFS文件係統
17.3.5 cramfs文件係統
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.1 BusyBox簡介
19.1.1 簡單易懂的BusyBox
19.1.2 BusyBox工作原理
19.1.3 安裝BusyBox
19.2 交叉編譯BusyBox
19.3 使用BusyBox
19.3.1 BusyBox初始化
19.3.2 目標闆BusyBox安裝
19.4 小結
第20章 Linux內核移植
20.1 Linux內核移植要點
20.2 平颱相關代碼結構
20.3 建立目標平颱工程框架
20.3.1 加入編譯菜單項
20.3.2 設置宏與代碼文件的對應關係
20.3.3 測試工程框架
20.4 建立目標平颱代碼框架
20.4.1 ARM處理器相關結構
20.4.2 建立machine_desc結構
20.4.3 加入處理函數
20.4.4 加入定時器結構
20.4.5 測試代碼結構
20.5 構建目標闆代碼
20.5.1 處理器初始化
20.5.2 端口映射
20.5.3 中斷處理
20.5.4 定時器處理
20.5.5 編譯最終代碼
20.6 小結
第21章 內核和應用程序調試技術
21.1 使用gdb調試應用程序概述
21.2 基本的調試技術
21.2.1 列齣源代碼
21.2.2 斷點管理
21.2.3 執行程序
21.2.4 顯示程序變量
21.2.5 信號管理
21.2.6 調試實例
21.3 多進程調試
21.4 調試意外終止的程序
21.5 內核調試技術
21.5.1 printk打印調試信息
21.5.2 使用/proc虛擬文件係統
21.5.3 使用KDB調試工具
21.5.4 KDB調試指令
21.6 小結

第4篇 Linux嵌入式驅動開發篇
第22章 Linux設備驅動
22.1 設備驅動介紹
22.2 Linux內核模塊
22.2.1 內核模塊簡介
22.2.2 內核模塊的結構
22.2.3 內核模塊的加載和卸載
22.2.4 編寫一個基本的內核模塊
22.2.5 編譯內核模塊
22.2.6 為內核模塊添加參數
22.3 Linux設備驅動
22.3.1 PCI局部總綫介紹
22.3.2 Linux設備驅動基本概念
22.3.3 字符設備
22.3.4 塊設備
22.3.5 網絡設備
22.4 字符設備驅動開發實例
22.4.1 開發一個基本的字符設備驅動
24.4.2 測試字符設備驅動
22.5 小結
第23章 網絡設備驅動程序
23.1 網絡基礎知識
23.1.1 ISO/OSI網絡參考模型
23.1.2 TCP/IP協議
23.2 以太網基礎
23.2.1 工作原理
23.2.2 常見以太網標準
23.2.3 拓撲結構
23.2.4 工作模式
23.3 網卡工作原理
23.4 內核網絡分層結構
23.4.1 內核網絡結構
23.4.2 與網絡有關的數據結構
23.4.3 內核網絡部分的全局變量
23.5 內核網絡設備驅動框架
23.5.1 net_device結構
23.5.2 數據包接收流程
23.5.3 數據包發送流程
23.6 實例:DM9000網卡驅動分析
23.6.1 DM9000芯片介紹
23.6.2 網卡驅動程序框架
23.6.3 DM9000網卡驅動主要數據結構
23.6.4 加載驅動程序
23.6.5 停止和啓動網卡
23.6.6 發送數據包
23.6.7 接收數據包
23.6.8 中斷和定時器處理
23.7 小結
第24章 Flash設備驅動
24.1 Linux Flash驅動結構
24.1.1 什麼是MTD
24.1.2 MTD係統結構
24.2 Flash設備基礎
24.2.1 存儲原理
24.2.2 性能比較
24.3 內核MTD層
24.3.1 mtd_info結構
24.3.2 mtd_part結構
24.3.3 mtd_partition結構
24.3.4 map_info結構
24.3.5 nand_chip結構
24.4 Flash設備框架
24.4.1 NOR Flash設備驅動框架
24.4.2 NAND Flash設備驅動框架
24.5 Flash設備驅動實例——NOR Flash設備驅動剖析
24.5.1 數據結構
24.5.2 驅動初始化
24.5.3 驅動卸載
24.6 Flash設備驅動實例——NAND Flash設備驅動分析
24.6.1 S3C2440 NAND控製器介紹
24.6.2 數據結構
24.6.3 驅動初始化
24.6.4 驅動卸載
24.6.5 初始化NAND控製器
24.6.6 設置芯片操作
24.6.7 電源管理
24.7 小結
第25章 USB驅動開發
25.1 USB體係介紹
25.1.1 USB設計目標
25.1.2 USB體係概述
25.1.3 USB體係工作流程
25.2 USB驅動程序框架
25.2.1 Linux內核USB驅動框架
25.2.2 主機驅動結構
25.2.3 設備驅動結構
25.2.4 USB驅動程序框架
25.3 USB驅動實例剖析
25.3.1 USB串口驅動
25.3.2 USB鍵盤驅動
25.4 小結

前言/序言

  隨著超大規模集成電路的發展,計算機處理器技術不斷提高,計算機芯片的處理能力越來越強,體積越來越小,計算機技術應用到生活的方方麵麵。與人們日常生活打交道最多的就是嵌入式係統,從目前廣泛使用的手機、MP3播放器到傢用電器,嵌入式係統的應用無處不在。嵌入式係統的開發占整個計算機係統開發的比重也越來越高。

  嵌入式係統開發與傳統的PC程序開發不同。嵌入式係統開發涉及軟件和硬件的開發,是一個協同工作的統一體。目前,已經有許多的嵌入式係統硬件和操作係統軟件,其中應用最廣泛的是ARM嵌入式處理器和Linux係統。

  目前,市場上嵌入式開發的書籍大多是針對某個特定領域編寫的,專業性和針對性較強,不適閤初學者學習。基於這個原因筆者編寫瞭本書。本書是獲得瞭大量讀者好評的“Linux典藏大係”中的《ARM嵌入式Linux係統開發詳解》的第2版。在第1版的基礎上,本書進行瞭全新改版,升級瞭編程環境,對第1版書中的一些疏漏進行瞭修訂,也對書中的一些實例和代碼進行瞭重新錶述,使得更加易讀。相信讀者可以在本書的引領下跨入嵌入式開發的大門。

  關於“Linux典藏大係”

  “Linux典藏大係”是清華大學齣版社自2010年1月以來陸續推齣的一個圖書係列,截止2012年,已經齣版瞭10餘個品種。該係列圖書涵蓋瞭Linux技術的方方麵麵,可以滿足各個層次和各個領域的讀者學習Linux技術的需求。該係列圖書自齣版以來獲得瞭廣大讀者的好評,已經成為瞭Linux圖書市場上最耀眼的明星品牌之一。其銷量在同類圖書中也名列前茅,其中一些圖書還獲得瞭“51CTO讀書頻道”頒發的“最受讀者喜愛的原創IT技術圖書奬”。該係列圖書在齣版過程中也得到瞭國內Linux領域最知名的技術社區ChinaUnix(簡稱CU)的大力支持和幫助,讀者在CU社區中就圖書的內容與活躍在CU社區中的Linux技術愛好者進行廣泛交流,取得瞭良好的學習效果。

  關於本書第2版

  本書第1版齣版後深受讀者好評,並被ChinaUnix技術社區推薦。但是隨著技術的發展,本書第1版內容已經無法滿足讀者的學習需求。應廣大讀者的要求,我們結閤嵌入式技術的最新發展推齣瞭本書的第2版。相比第1版,第2版圖書在內容上的變化主要體現在以下幾個方麵:

  (1)Linux開發環境由Ubuntu8.04升級到12.04。

  (2)更新瞭Cygwin、ADS、GCC等相關軟件。

  (3)修訂瞭一些專有名詞及術語的不一緻問題。

  (4)刪除瞭部分已經過時的內容,如Ubuntu的網絡配置等。

  (5)給完整的實例代碼增加瞭行序號,方便讀者閱讀。

  (6)糾正瞭部分函數講解錯誤,並修正瞭部分代碼的類型轉化等問題。

  (7)將一些錶達不準確的地方錶述得更加準確。

  本書特色

  1.循序漸進,由淺入深

  為瞭讓初學者快速進入嵌入式係統開發領域,本書一開始對嵌入式係統的軟件和硬件做瞭全麵的介紹,讓讀者對嵌入式係統有一個基本的認識。同時,在書中講解的知識點都配備瞭完整的實例,讀者可以通過實例學習嵌入式係統開發的相關知識。

  2.技術全麵,內容充實

  作者本人從事嵌入式係統開發多年,深入瞭解嵌入式係統開發的各個方麵,在書中講解瞭嵌入式Linux開發的各個要點,包括Linux內核的構成、工作流程、驅動程序開發、文件係統、程序庫等知識,使讀者全麵瞭解嵌入式Linux開發的各個知識點。

  3.實例講解,理解深刻

  嵌入式Linux開發書籍眾多,很多書籍偏重理論。本書所有的實例都經過作者驗證,並且有詳細的操作過程和實驗結果。其次,本書的操作實例有完整的實驗環境描述,讀者可以通過實例加深對知識點的理解。

  4.化整為零,深入剖析

  嵌入式係統開發涉及知識麵廣,技術復雜。本書剝繭抽絲,力求找齣開發過程中關鍵的知識點。從關鍵點入手,通過簡單易懂的例子剖析技術原理,幫助讀者掌握復雜的技術。

  5.詳解典型項目案例開發,提高實戰水平

  本書詳細分析瞭DM9000網卡驅動、NANDFlash設備驅動和USB驅動的實現。通過這三個項目案例,可以提高讀者的設備驅動開發水平,從而具備獨立進行驅動開發的能力。

  6.提供多媒體教學視頻和源文件

  本書專門提供瞭9小時多媒體教學視頻和實例源文件,便於讀者高效、直觀地學習。這些學習資料需要讀者按照封麵的提示自行下載。

  本書內容體係

  第1篇Linux嵌入式開發基礎篇(第1~6章)

  本篇主要內容包括嵌入式係統入門、嵌入式軟硬件係統、ARM處理器、嵌入式Linux、軟件開發環境建立和第一個Linux應用程序。通過本篇的學習,讀者可以掌握Linux嵌入式開發環境的搭建和Linux嵌入式的基礎知識。

  第2篇Linux嵌入式開發應用篇(第7~12章)

  本篇主要內容包括Linux應用程序編程基礎、開發多進程/綫程程序、網絡通信應用、串行口通信編程、嵌入式GUI程序開發和軟件項目管理等內容。通過本篇的學習,讀者可以掌握Linux嵌入式的核心技術與應用。

  第3篇Linux係統篇(第13~21章)

  本篇主要內容包括ARM體係結構及開發實例、深入Bootloader、解析Linux內核、嵌入式Linux啓動流程、Linux文件係統、建立交叉編譯工具鏈、命令係統BusyBox、Linux內核移植,以及內核和應用程序調試技術。通過本篇的學習,讀者可以對Linux係統從內核到文件係統再到啓動流程有一個非常清楚的瞭解。

  第4篇Linux嵌入式驅動開發篇(第22~25章)

  本篇主要內容包括Linux設備驅動、網絡設備驅動程序、Flash設備驅動,以及USB驅動開發等。通過本篇的學習,讀者可以掌握Linux嵌入式開發的基本流程及思想。

  本書讀者對象

  *Linux嵌入式開發初學者;

  *需要係統學習Linux嵌入式開發的人員;

  *Linux嵌入式從業人員;

  *Linux嵌入式開發愛好者;

  *大中專院校的學生;

  *社會培訓班的學員。


深入淺齣,精通ARM嵌入式Linux係統開發 本書旨在為廣大嵌入式係統開發者提供一份全麵、深入且實用的ARM嵌入式Linux係統開發指南。我們深知,隨著嵌入式技術的飛速發展,ARM處理器憑藉其低功耗、高性能和廣泛的應用領域,已成為嵌入式開發的首選平颱。而Linux作為一款開源、穩定且功能強大的操作係統,更是為嵌入式設備的智能化和網絡化提供瞭堅實的基礎。然而,將兩者有機結閤,實現高效、可靠的嵌入式Linux係統開發,絕非易事,往往需要開發者具備跨越多層次的技術知識和豐富的實踐經驗。 本書正是為瞭彌閤這一技術鴻溝而生。我們並非簡單地堆砌零散的技術概念,而是力求構建一個係統化的學習框架,引導讀者從入門到精通,逐步掌握ARM嵌入式Linux係統的開發脈絡。本書的內容經過精心設計和打磨,涵蓋瞭從硬件選型、軟件環境搭建,到驅動開發、應用編程,再到係統優化和調試的整個開發流程。每一章節都力求深入淺齣,理論與實踐相結閤,旨在幫助讀者構建紮實的理論基礎,同時培養解決實際問題的能力。 第一部分:基礎篇——奠定堅實的理論基石 在開始具體的開發實踐之前,紮實的理論基礎是必不可少的。本部分將帶領讀者走進ARM處理器和Linux係統的核心世界,為後續的學習打下堅實的基礎。 ARM處理器架構與指令集: 我們將深入剖析ARM處理器的指令集架構(ISA),重點介紹ARMv7、ARMv8等主流架構的特點、寄存器組織、尋址模式以及各類指令的功能。理解ARM指令集是進行底層開發、性能優化的關鍵。同時,我們會探討不同ARM核(如Cortex-A、Cortex-R、Cortex-M係列)在嵌入式應用中的定位和優勢,幫助讀者根據項目需求做齣閤理的硬件選型。 Linux操作係統原理概述: 深入淺齣地介紹Linux內核的基本概念,包括進程管理、內存管理、文件係統、設備管理、中斷處理等核心機製。理解這些原理,有助於開發者在開發過程中更好地理解係統行為,進行有效的資源管理和性能調優。我們將側重介紹在嵌入式Linux中尤為重要的概念,如實時性、資源受限性等。 嵌入式Linux係統結構: 介紹嵌入式Linux係統的典型組成部分,包括引導加載程序(Bootloader)、內核(Kernel)、根文件係統(Root File System)以及用戶空間應用程序。我們將詳細闡述它們各自的功能、相互之間的關係以及在整個係統啓動和運行過程中的作用。 第二部分:開發環境篇——搭建高效的開發平颱 一個順暢、高效的開發環境是成功完成嵌入式開發項目的關鍵。本部分將指導讀者搭建一套完整的ARM嵌入式Linux開發環境,涵蓋交叉編譯工具鏈、仿真器、調試器等必備工具。 交叉編譯工具鏈的構建與使用: 詳細介紹交叉編譯工具鏈(GCC for ARM)的概念、作用以及安裝配置方法。我們將指導讀者如何從源碼編譯一個定製化的交叉編譯工具鏈,或者如何使用現成的工具鏈。重點講解編譯器的常用選項、編譯腳本的編寫以及鏈接過程的原理,幫助讀者理解如何將為目標平颱編寫的代碼編譯成可執行文件。 引導加載程序(Bootloader)開發: 引導加載程序是嵌入式係統的“第一道門”,負責初始化硬件、加載Linux內核。我們將以U-Boot為例,深入講解其工作原理、配置選項、開發流程和調試方法。讀者將學習如何為特定硬件平颱定製U-Boot,實現從裸機到啓動Linux內核的完整過程。 Linux內核編譯與配置: 詳細介紹Linux內核的編譯、配置和定製過程。我們將引導讀者理解內核配置選項的意義,如何根據硬件平颱和應用需求裁剪內核,以及如何將自定義模塊集成到內核中。掌握內核的編譯和配置,是實現係統高度定製化的基礎。 第三部分:驅動開發篇——駕馭硬件的精髓 驅動程序是連接硬件與操作係統的橋梁,是嵌入式Linux開發的核心技能之一。本部分將深入講解Linux設備驅動程序的開發,讓讀者能夠自如地驅動各種嵌入式硬件。 Linux設備模型與驅動框架: 介紹Linux設備模型(Device Model)的核心概念,如總綫(Bus)、設備(Device)、驅動(Driver)以及Kobject等,以及Linux內核提供的標準驅動框架,如字符設備、塊設備、網絡設備等。理解這些框架,能幫助開發者編寫齣更具通用性和可維護性的驅動程序。 常用硬件接口驅動開發: 重點講解幾種嵌入式係統中常用的硬件接口驅動開發,包括: GPIO(通用輸入輸齣)驅動: 如何配置和使用GPIO口,實現輸入、輸齣、中斷等功能。 UART(通用異步收發器)驅動: 實現串口通信,用於設備間的通信和調試。 I2C(集成電路互聯)驅動: 驅動各種I2C傳感器、EEPROM等外設。 SPI(串行外設接口)驅動: 驅動SPI總綫上的外設,如SPI Flash、ADC/DAC等。 Timer(定時器)驅動: 使用硬件定時器實現延時、周期性任務等。 中斷處理: 講解中斷的産生、注冊、處理流程以及中斷共享等高級話題。 Linux設備樹(Device Tree): 深入講解設備樹(Device Tree)的概念、語法和在嵌入式Linux中的作用。設備樹極大地簡化瞭硬件的描述和驅動的匹配,是現代嵌入式Linux開發不可或缺的一部分。讀者將學習如何編寫和修改設備樹文件,將其與驅動程序關聯起來。 平颱設備與總綫驅動: 講解平颱設備(Platform Device)和平颱驅動(Platform Driver)的概念,以及它們在匹配和初始化設備中的作用。 第四部分:應用開發篇——釋放嵌入式係統的無限潛能 驅動程序為上層應用提供瞭硬件接口,本部分將聚焦於ARM嵌入式Linux係統的應用層開發,讓讀者能夠利用Linux強大的軟件生態係統,開發齣功能豐富的應用程序。 嵌入式Linux應用程序開發基礎: 介紹Linux係統下的應用程序開發環境,包括C/C++語言編程、POSIX API的使用、多綫程編程、進程間通信(IPC)等。 用戶空間常用庫與API: 介紹嵌入式Linux開發中常用的用戶空間庫和API,如POSIX socket API用於網絡通信,GTK+/Qt用於圖形界麵開發,SQLite用於嵌入式數據庫應用等。 網絡通信編程: 詳細講解TCP/IP協議棧在嵌入式Linux中的應用,包括Socket編程、HTTP/FTP客戶端/服務器開發、MQTT協議等,為構建聯網設備打下基礎。 圖形用戶界麵(GUI)開發: 介紹在資源受限的嵌入式設備上開發GUI的方法,包括使用輕量級的GUI庫(如TouchGFX、LVGL)或者標準的GUI框架(如GTK+、Qt),實現用戶友好的交互界麵。 多媒體應用開發: 講解在嵌入式Linux上進行音視頻采集、處理和播放的常用技術,如ALSA、GStreamer等框架的應用。 第五部分:係統優化與調試篇——保障係統穩定高效運行 係統的性能、穩定性和功耗是嵌入式項目成功的關鍵因素。本部分將提供一係列行之有效的係統優化和調試技巧,幫助讀者打造齣更優越的嵌入式係統。 係統性能分析與優化: 介紹常用的性能分析工具,如`perf`、`strace`、`ltrace`等,幫助開發者定位性能瓶頸。講解CPU、內存、I/O等方麵的優化策略,如代碼優化、算法改進、緩存利用等。 嵌入式Linux係統調試技術: 詳細介紹各種調試手段,包括GDB(GNU Debugger)的遠程調試、JTAG/SWD接口調試、printk日誌輸齣、kdump崩潰分析等,幫助開發者快速定位和解決問題。 嵌入式Linux係統安全性: 介紹嵌入式Linux係統的安全基礎,包括用戶權限管理、文件係統安全、網絡安全(防火牆、SSH)以及固件安全等方麵。 嵌入式Linux係統更新與部署: 講解嵌入式Linux係統的軟件更新策略,如OTA(Over-The-Air)更新,以及如何構建和部署Root File System。 本書特色: 體係化架構: 內容組織結構清晰,循序漸進,從基礎理論到高級應用,形成完整的知識體係。 實戰導嚮: 大量結閤實際工程案例,提供可運行的代碼示例,讓讀者在實踐中學習和掌握技術。 深入淺齣: 避免枯燥的理論說教,用通俗易懂的語言解釋復雜的技術概念,並輔以圖解和示意圖。 麵嚮ARM平颱: 聚焦ARM嵌入式Linux係統,針對性強,實用性高。 全麵覆蓋: 涵蓋瞭從底層驅動到上層應用的開發全流程,滿足不同層次開發者的需求。 目標讀者: 本書適閤於在校的計算機、電子、自動化等相關專業的學生,以及希望深入學習ARM嵌入式Linux係統開發的工程師、技術愛好者。無論您是剛剛接觸嵌入式Linux開發的新手,還是有一定開發經驗希望進一步提升技能的開發者,本書都將是您不可或缺的參考資料。 掌握ARM嵌入式Linux係統的開發,意味著您將能夠參與到智能傢居、物聯網、工業自動化、醫療設備、汽車電子等眾多前沿技術領域,為您的職業生涯打開更廣闊的機遇。我們相信,通過本書的學習,您將能夠自信地應對各類嵌入式Linux開發挑戰,成為一名優秀的嵌入式係統開發者。

用户评价

评分

我之前一直在Windows環境下從事一些應用開發,但對嵌入式Linux一直存在著強烈的好奇心。很多時候,工作中會遇到需要與嵌入式設備打交道的場景,而我卻對此一無所知,這讓我感到非常焦慮。《ARM嵌入式Linux係統開發詳解(第2版)》徹底改變瞭我的狀況。這本書的內容之詳盡,超齣瞭我的預期。它並沒有停留在錶麵的操作介紹,而是深入到瞭Linux內核的源碼層麵,講解瞭文件係統、進程管理、內存管理等核心機製在ARM架構下的具體實現。我尤其喜歡書中關於設備樹(Device Tree)的章節,它清晰地解釋瞭設備樹的語法、工作原理以及如何修改設備樹來適配不同的硬件平颱。這一點對於我這種需要快速上手新硬件開發的人來說,簡直是福音。而且,書中還涵蓋瞭網絡編程、多媒體應用開發等高級主題,讓我看到瞭嵌入式Linux應用的廣闊前景,也為我未來的職業發展指明瞭方嚮。

评分

說實話,市麵上關於嵌入式Linux的書籍很多,但真正能夠做到既有深度又有廣度的卻屈指可數。《ARM嵌入式Linux係統開發詳解(第2版)》絕對是其中的佼佼者。我作為一個已經有幾年嵌入式開發經驗的工程師,在閱讀這本書時,依然被其深刻的洞察力和嚴謹的邏輯所摺服。書中對於Linux內核與ARM硬件交互的細節進行瞭深入剖析,例如中斷處理機製、DMA控製器的工作原理,以及如何利用ARM的MMU實現高效的內存管理。這些內容對於理解係統的底層運行機製至關重要,能夠幫助開發者寫齣更高效、更穩定的代碼。此外,書中還介紹瞭Qt for Embedded等圖形化開發框架,以及如何進行嵌入式係統的性能優化和調試。這些實用的技巧和方法,讓我受益匪淺,直接提升瞭我解決復雜嵌入式問題的能力。

评分

這本書就像是打開瞭我通往嵌入式世界的一扇大門。一直以來,我對ARM架構的強大和Linux係統的靈活性都心生嚮往,但苦於沒有閤適的入門指導,總是覺得無從下手。當翻開《ARM嵌入式Linux係統開發詳解(第2版)》時,我仿佛找到瞭失散多年的寶藏。作者以一種非常接地氣的方式,從最基礎的概念講起,深入淺齣地剖析瞭ARM處理器的核心原理、指令集以及與Linux內核的配閤機製。書中不僅講解瞭理論知識,更重要的是提供瞭大量實戰性的開發案例,從環境搭建、交叉編譯工具鏈的配置,到內核移植、驅動程序的編寫,每一步都清晰明瞭,讓我能夠跟著書中的步驟一步步實踐,親身體驗從零開始構建一個完整的嵌入式Linux係統的全過程。尤其是關於uboot的深入解析,讓我對bootloader的工作流程有瞭前所未有的理解,這對於後續的係統調試和優化至關重要。讀完這部分內容,我不再是那個對嵌入式開發一竅不通的菜鳥,而是能夠自信地去探索更復雜的嵌入式項目。

评分

我原本以為,學習嵌入式Linux開發會是一件非常枯燥乏味的事情,需要死記硬背大量的命令和API。然而,《ARM嵌入式Linux係統開發詳解(第2版)》的齣現,徹底顛覆瞭我的認知。作者的寫作風格非常生動有趣,他善於用形象的比喻和貼切的例子來解釋抽象的概念,使得原本復雜的知識點變得易於理解。書中不僅僅是文字的堆砌,還穿插瞭大量的流程圖、代碼片段和截圖,這使得閱讀體驗極佳。我能夠一邊閱讀,一邊對照著實際操作,很快就能掌握書中的知識。特彆是關於Makefile和CMake的章節,我之前一直對此感到頭疼,但通過這本書的學習,我終於理解瞭它們的工作原理和優劣,能夠靈活地運用它們來管理我的項目。這本書讓我覺得,學習嵌入式Linux開發原來可以如此輕鬆和愉快。

评分

對於初學者來說,選擇一本好的入門書籍至關重要。《ARM嵌入式Linux係統開發詳解(第2版)》恰恰滿足瞭這一需求。它就像是一位經驗豐富的導師,耐心細緻地引導著我一步步走進嵌入式Linux的世界。書中從最基礎的Linux命令行操作講起,逐步過渡到嵌入式係統的硬件平颱介紹,再到內核的配置、編譯和燒寫。整個過程邏輯清晰,循序漸進。我尤其欣賞書中關於根文件係統構建的詳細講解,它讓我明白瞭如何為一個嵌入式設備選擇閤適的軟件包,如何打包並部署到目標闆上。書中提供的各種命令和配置示例都非常實用,我可以直接復製使用,大大縮短瞭我的學習時間。對於那些希望進入嵌入式Linux開發領域的學生或者開發者來說,這本書無疑是一個非常好的起點,能夠幫助你打下堅實的基礎,為後續更深入的學習做好準備。

评分

还是这一系列的书好看!!!!

评分

正在学习中

评分

挺好的挺好的挺好的啊挺好的挺好的挺好的啊挺好的挺好的挺好的啊哦

评分

不错不错不错不错不错不错不错

评分

???

评分

不过依旧有一点分量

评分

图书到货时间快,干净整洁。

评分

书不错,讲的很细致。

评分

这本书只能给个三星了,内容和那些30天从入门到精通也没啥两样啊,不够基础详实

相关图书

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有