嵌入式Linux開發詳解――基於AT91RM9200和Linux 2.6

劉慶敏 張小亮

  • 嵌入式Linux開發詳解――基於AT91RM9200和Linux 2.6-preview-1
嵌入式Linux開發詳解――基於AT91RM9200和Linux 2.6-preview-1

買這商品的人也買了...

商品描述

基本信息

    本書介紹了嵌入式Linux開發需要掌握的基礎知識,採用分層的方法對關鍵技術進行了詳細的講解,且輔以大量實例。共分為7章。第1、2章介紹嵌入式系統和Linux的基礎知識。第3~7章從實踐的角度分層次介紹嵌入式Linux開發的流程和關鍵技術。其中,第3章介紹硬件平臺;第4章介紹Boot Loader的基礎理論,對Uboot的移植、代碼分析、關鍵技術情景分析等進行了深入探討;第5章介紹了Linux內核移植需要具備的知識,重點分析了內核映像格式以及Boot Loader與內核的通信機制;第6章在介紹嵌入式文件系統的基礎上,設計並實現了一個嵌入式混合文件系統;第7章介紹了嵌入式開發環境的搭建,並簡單介紹了一個數據網關的實例。

    本書內容可操作性強,適合嵌入式Linux開發初學者參考,也可以作為高等院校有關嵌入式系統開發與應用的實驗參考書。

目錄大綱

目錄

第1章 嵌入式系統設計概述1

1.1嵌入式系統的定義1

1.1.1嵌入式系統的發展歷史2
 
1.1.2嵌入式系統的組成3

1.1.3嵌入式系統的特點4

1.2嵌入式系統設計概述5

1.3嵌入式系統的學習方法6

本章總結6

第2章 磨刀不誤砍柴工7

2.1 Linux概述7

2.2 Linux的安裝8

2.2.1創建一個新的虛擬機9

2.2.2在虛擬機上安裝Red Hat
Linux 911

2.3 Red Hat Linux 9的初步設置

18

2.3.1 VMware tools的安裝20

2.3.2網絡設置22 

2.4使用shell提高效率24

2.4.1 shell初始化文件配置24

2.4.2 常用的腳本26

2.5學習開發工具的使用30

2.5.1 Vim高級技巧30

2.5.2編譯流程32

2.5.3工程管理器make37

2.6嵌入式Linux常用的命令42

2.6.1 Linux基本命令42

2.6.2 arm?linux?系列47

2.6.3 diff和patch的使用52

本章總結57

第3章 走馬觀花58

3.1本書基於的硬件平臺58

3.1.1 ARM概述59

3.1.2 ARM命名規則60

3.1.3 AT91RM9200簡介61

3.1.4 K9I開發板概述63

3.2讓系統先跑起來65

3.2.1準備工作65

3.2.2下載Boot Loader71

3.2.3內核和文件系統72

3.2.4搭建交叉編譯環境75

3.2.5應用程序測試76

3.3深入理解硬件平臺78

3.3.1最小系統組成78

3.3.2時鐘系統78

3.3.3 NVM82

3.3.4 JTAG接口87

本章總結91

第4章Boot Loader92

4.1準備工作92

4.1.1整合資源92

4.1.2代碼閱讀工具93

4.2 Boot Loader概述94

4.2.1 Boot Loader概念94

4.2.2 Boot Loader在嵌入式系統
中的必要性95

4.2.3 Boot Loader的啟動流程

96

4.2.4 Boot Loader如何固化97

4.3 AT91RM9200的啟動機制98

4.3.1片內啟動98

4.3.2片外啟動101

4.3.3 3種啟動場景102

4.4 Boot Loader的移植103

4.4.1 Loader和Boot104

4.4.2 Uboot的移植108

4.5 Uboot的3種啟動方式無關性
設計114

4.5.1背景介紹115

4.5.2重映射的理論模型115

4.5.3 Uboot的不合理性分析

116

4.5.4解決方案116

4.6 Boot Loader深入分析119

4.6.1將ELF文件轉換為BIN

119

4.6.2 Uboot源代碼分析123

4.6.3 Uboot的命令機制129

4.6.4 Uboot的source實現133
 
本章總結139

第5章 Linux內核移植140

5.1嵌入式操作系統的選擇140

5.2 Linux 2.6介紹142

5.3 Makefile體系144

5.4內核的移植150

5.4.1基本移植151

5.4.2出現的問題155

5.5內核映像格式159

5.5.1生成過程160

5.5.2 zImage自解壓引導過程

163

5.6 Boot Loader與內核的通信機制
168

5.6.1基本模型168

5.6.2 tagged list組織方式169

5.6.3 Boot Loader實現173

5.6.4 Linux內核實現179

本章總結186

第6章 文件系統187

6.1概述187

6.2庫191

6.2.1庫的概述191

6.2.2庫的命名191

6.2.3庫的製作方法192

6.3一個最簡單的根文件系統193
 
6.4基本功能完備的根文件系統201

6.4.1修改現有的文件系統映像
201

6.4.2從零開始製作根文件系統
204

6.4.3網絡功能213

6.5嵌入式混合文件系統――EFS

226

6.5.1問題提出226

6.5.2系統設計方案226

6.5.3組件實現229

6.5.4系統集成設計231

6.5.5輔映像製作236

本章總結237

第7章 應用程序238

7.1應用開發環境的建立238

7.1.1嵌入式Linux的GDB調試
環境建立238

7.1.2嵌入式Linux的NFS開發
環境建立239

7.1.3嵌入式Linux的TFTP開
發環境建立241

7.1.4嵌入式Linux的DHCP開
發環境建立242

7.2串行/網絡數據網關244

7.2.1基本原理244

7.2.2數據幀的設計245

7.2.3網絡異常