內容簡介
本書介紹了嵌入式Linux開發需要掌握的基礎知識,採用分層的方法對關鍵技術進行了詳細的講解,且輔以大量實例。共分為7章。第1、2章介紹嵌入式系統和Linux的基礎知識。第3~7章從實踐的角度分層次介紹嵌入式Linux開發的流程和關鍵技術。其中,第3章介紹硬體平台;第4章介紹BootLoader的基礎理論,對Uboot的移植、代碼分析、關鍵技術情景分析等進行了深入探討;第5章介紹了Linux核心移植需要具備的知識,重點分析了核心映像格式以及BootLoader與核心的通信機制;第6章在介紹嵌入式檔案系統的基礎上,設計並實現了一個嵌入式混合檔案系統;第7章介紹了嵌入式開發環境的搭建,並簡單介紹了一個數據網關的實例。作者簡介
圖書目錄
第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.1Linux概述7
2.2Linux的安裝8
2.2.1創建一個新的虛擬機9
2.2.2在虛擬機上安裝RedHatLinux911
2.3RedHatLinux9的初步設定18
2.3.1VMwaretools的安裝20
2.3.2網路設定22
2.4使用shell提高效率24
2.4.1shell初始化檔案配置24
2.4.2常用的腳本26
2.5學習開發工具的使用30
2.5.1Vim高級技巧30
2.5.2編譯流程32
2.5.3工程管理器make37
2.6嵌入式Linux常用的命令42
2.6.1Linux基本命令42
2.6.2armlinux系列47
2.6.3diff和patch的使用52
本章總結57
第3章走馬觀花58
3.1本書基於的硬體平台58
3.1.1ARM概述59
3.1.2ARM命名規則60
3.1.3AT91RM9200簡介61
3.1.4K9I開發板概述63
3.2讓系統先跑起來65
3.2.1準備工作65
3.2.2下載BootLoader71
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.3NVM82
3.3.4JTAG接口87
本章總結91
第4章BootLoader92
4.1準備工作92
4.1.1整合資源92
4.1.2代碼閱讀工具93
4.2BootLoader概述94
4.2.1BootLoader概念94
4.2.2BootLoader在嵌入式系統中的必要性95
4.2.3BootLoader的啟動流程96
4.2.4BootLoader如何固化97
4.3AT91RM9200的啟動機制98
4.3.1片內啟動98
4.3.2片外啟動101
4.3.33種啟動場景102
4.4BootLoader的移植103
4.4.1Loader和Boot104
4.4.2Uboot的移植108
4.5Uboot的3種啟動方式無關性設計114
4.5.1背景介紹115
4.5.2重映射的理論模型115
4.5.3Uboot的不合理性分析116
4.5.4解決方案116
4.6BootLoader深入分析119
4.6.1將ELF檔案轉換為BIN119
4.6.2Uboot原始碼分析123
4.6.3Uboot的命令機制129
4.6.4Uboot的source實現133
本章總結139
第5章Linux核心移植140
5.1嵌入式作業系統的選擇140
5.2Linux2.6介紹142
5.3Makefile體系144
5.4核心的移植150
5.4.1基本移植151
5.4.2出現的問題155
5.5核心映像格式159
5.5.1生成過程160
5.5.2zImage自解壓引導過程163
5.6BootLoader與核心的通信機制168
5.6.1基本模型168
5.6.2taggedlist組織方式169
5.6.3BootLoader實現173
5.6.4Linux核心實現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嵌入式混合檔案系統——EFS226
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網路異常情況的處理245
本章總結246
參考文獻247