當前位置: 首頁 > 原創(chuàng)圖書 >《嵌入式Linux系統開發(fā)技術詳解—基于ARM》圖書介紹
· 多年嵌入式人才培養(yǎng)及項目研發(fā)經驗總結
· 數百家企業(yè)嵌入式研發(fā)崗位人才需求匯總
· 數十所嵌入式專業(yè)大學院校教學現狀調研
· 側重實踐及案例分析并輔以代碼加以講解
本書以嵌入式linux系統開發(fā)流程為主線,剖析了嵌入式linux系統構建的各個環(huán)節(jié)。本書從嵌入式系統基礎知識和linux編程技術講起,接下來說明了嵌入式linux交叉開發(fā)環(huán)境的建立,然后分析了嵌入式linux系統的引導程序、內核和文件系統三大組成部分,最后介紹了嵌入式linux系統集成和部署的方法。本書使用的嵌入式linux系統軟件全部來源于開源站點,文中提供了具體的鏈接地址。本書主要以arm平臺為例,對u-boot和linux內核啟動過程做了詳細分析,為學習嵌入式linux系統開發(fā)奠定基礎。本書從概念上闡述了嵌入式linux系統開發(fā)流程,實踐上提供了具體的操作步驟,使讀者能夠深入理解嵌入式linux系統構建。
本書可作為高等院校電子類、電氣類、控制類等專業(yè)高年級本科生、研究生學習嵌入式linux的教材,也可供廣大希望轉入嵌入式領域的科研和工程技術人員參考使用,還可作為廣大嵌入式培訓班的教材和教輔材料。
第1章 概述
1.1 嵌入式系統
1.2 嵌入式操作系統
1.3 嵌入式linux歷史
1.4 嵌入式linux開發(fā)環(huán)境
1.5 嵌入式linux系統開發(fā)要點
第2章 arm處理器
2.1 arm處理器簡介
2.1.1 arm公司簡介
2.1.2 arm處理器體系結構
2.1.3 linux與arm處理器
2.2 arm指令集
2.2.1 arm微處理器的指令集概述
2.2.2 arm指令尋址方式
2.2.3 thumb指令概述
2.3 典型arm處理器簡介
2.3.1 atmel at91rm9200
2.3.2 samsung s3c2410
2.3.3 ti omap1510/1610系列
2.3.4 freescale i.max21
2.3.5 intel xscale pxa系列
2.4 三星s3c2410開發(fā)板
2.4.1 三星s3c2410開發(fā)板介紹
2.4.2 眾多的開發(fā)板供應商
第3章 linux編程環(huán)境
3.1 linux常用工具
3.1.1 shell簡介
3.1.2 常用shell命令
3.1.3 編寫shell腳本
3.1.4 正則表達式
3.1.5 程序編輯器
3.2 makefile
3.2.1 gnu make
3.2.2 makefile規(guī)則語法
3.2.3 makefile文件中變量的使用
3.3 二進制代碼工具的使用
3.3.1 gnu binutils工具介紹
3.3.2 binutils工具軟件使用
3.4 編譯器gcc的使用
3.4.1 gcc編譯器介紹
3.4.2 gcc編譯選項解析
3.5 調試器gdb的使用技巧
3.5.1 gdb調試器介紹
3.5.2 gdb調試命令
3.6 linux編程庫
3.6.1 linux編程庫介紹
3.6.2 linux系統調用
3.6.3 linux線程庫
第4章 交叉開發(fā)環(huán)境
4.1 交叉開發(fā)環(huán)境介紹
4.1.1 交叉開發(fā)概念模型
4.1.2 目標板與主機之間的連接
4.1.3 文件傳輸
4.1.4 網絡文件系統
4.2 安裝交叉編譯工具
4.2.1 獲取交叉開發(fā)工具鏈
4.2.2 主機安裝工具鏈
4.3 主機開發(fā)環(huán)境配置
4.3.1 主機環(huán)境配置
4.3.2 串口控制臺工具
4.3.3 dhcp月艮務
4.3.4 tftp服務
4.3.5 nfs服務
4.4 啟動目標板
4.4.1 系統引導過程
4.4.2 內核解壓啟動
4.4.3 掛接根文件系統
4.5 應用程序的遠程交叉調試
4.5.1 交叉調試的模型
4.5.2 交叉調試程序實例
第5章 交叉開發(fā)工具鏈
5.1 工具鏈軟件
5.1.1 相關軟件工程
5.1.2 軟件版本的匹配
5.1.3 工具鏈制作流程
5.2 制作交叉編譯器
5.2.1 準備編譯環(huán)境
5.2.2 編譯binutils
5.2.3 編譯gcc的輔助編譯器
5.2.4 編譯生成glibc庫
5.2.5 編譯生成完整的gcc編譯器
5.3 制作交叉調試器
5.3.1 編譯交叉調試器
5.3.2 編譯gdbserver
第6章 bootloader
6.1 bootloader
6.1.1 bootloader介紹
6.1.2 bootloader的啟動
6.1.3 bootloader的種類
6.2 u-boot編程
6.2.1 u-boot工程簡介
6.2.2 u-boot源碼結構
6.2.3 u-boot的編譯
6.2.4 u-boot的移植
6.2.5 添加u-boot命令
6.3 u-boot的調試
6.3.1 硬件調試器
6.3.2 軟件跟蹤..
6.3.3 u-boot啟動過程
6.3.4 u-boot與內核的關系
6.4 使用u-boot
6.4.1 燒寫u-boot到flash
6.4.2 u-boot的常用命令
6.4.3 u-boot的環(huán)境變量
第7章 配置編譯內核
7.1 linux內核特點
7.1.1 linux內核版本介紹
7.1.2 linux內核特點
7.1.3 linux 2.6內核新特性
7.2 配置編譯內核源碼
7.2.1 內核源碼結構
7.2.2 內核配置系統
7.2.3 kbuild makefile
7.2.4 內核編譯
7.2.5 內核編譯結果
7.3 內核配置選項
7.3.1 使用配置菜單
7.3.2 基本配置選項
7.3.3 驅動程序配置選項
第8章 內核移植淺析
8.1 移植內核源碼
8.1.1 移植前的準備工作
8.1.2 開發(fā)板內核移植
8.1.3 移植后的工作
8.2 linux內核啟動過程分析
8.2.1 內核啟動流程源代碼分析
8.2.2 內核自引導程序
8.2.3 內核vmlinux入口
8.2.4 linux系統初始化
8.2.5 掛接根文件系統
8.2.6 初始化設備驅動
8.2.7 啟動用戶空間init進程
第9章 內核調試技術
9.1 內核調試方法
9.1.1 內核調試概述
9.1.2 學會分析內核源程序
9.1.3 調試方法介紹
9.2 內核打印函數
9.2.1 內核映像解壓前的串口輸出函數
9.2.2 內核錯誤報告子程序
9.2.3 內核打印函數
9.3 獲取內核信息
9.3.1 系統請求鍵
9.3.2 通過/proc接口
9.3.3 通過/sys接口
9.3.4 通過ioctl方法
9.4 處理出錯信息
9.4.1 oops信息
9.4.2 panic
9.5 內核源碼調試
9.5.1 kgdb調試內核源代碼
9.5.2 bdi2000調試內核源代碼
第10章 制作linax根文件系統
10.1 根文件系統目錄結構
10.1.1 fhs目錄結構
10.1.2 文件存放規(guī)則
10.2 添加系統文件
10.2.1 添加共享鏈接庫
10.2.2 添加內核模塊
10.2.3 添加設備文件
10.3 init系統初始化過程
10.3.1 inittab文件
10.3.2 system v init啟動過程
10.3.3 busybox init啟動過程分析
10.4 定制文件系統
10.4.1 定制應用程序
10.4.2 配置應用程序自動啟動
第11章 充分利用開源軟件
11.1 開放源代碼工程介紹
11.1.1 linux系統和開源軟件
11.1.2 開源軟件的特點
11.2 busybox使用
11.2.1 busybox工程介紹
11.2.2 配置編譯busybox
11.3 x11圖形系統
11.3.1 x windows介紹
11.3.2 tiny-x介紹
11.3.3 gtk圖形庫
11.4 qt圖形庫
11.4.1 qt介紹
11.4.2 qt/embedded介紹
11.4.3 qt/embedded架構
11.4.4 qt/embedded軟件包與安裝
11.5 minigui圖形系統
11.5.1 minigui圖形系統概述
11.5.2 minigui移植
11.6 microwindows圖形系統
11.7 linux下的網絡應用
11.7.1 嵌入式設備的網絡化
11.7.2 tcp/ip協議概述
11.7.3 linux下的socket編程
11.8 嵌入式linux的串行通信
11.8.1 linux下的串口操作
11.8.2 linux串口編程實例
第12章 系統集成測試
12.1 系統集成測試
12.1.1 系統集成測試概述
12.1.2 系統集成測試要求
12.2 系統跟蹤工具
12.2.1 為什么需要跟蹤工具
12.2.2 strace
12.2.3 ltrace
12.2.4 ltt
12.3 系統性能測量工具
12.3.1 代碼效率測量
12.3.2 ltp
12.3.3 lmbench
12.4 測量內存泄漏
12.4.1 mtrace
12.4.2 dmalloc
12.4.3 memwatch
12.4.4 yamd
第13章 部署linux系統
13.1 部署linux系統概述
13.1.1 部署linux系統的基本流程
13.1.2 部署linux系統的關鍵問題
13.2 文件系統類型
13.2.1 ext2/ext3
13.2.2 jfs
13.2.3 cramfs
13.2.4 jffs/jffs2
13.2.5 yaffs
13.3 存儲設備
13.3.1 mtd類型設備
13.3.2 磁盤類型設備
13.4 部署linux系統
13.4.1 安裝mtd工具
13.4.2 使用磁盤文件系統
13.4.3 使用ramdisk設備
13.4.4 使用mtd設備和jffs2文件系統
13.4.5 系統啟動和升級
第14章 系統設計開發(fā)實例
14.1 需求分析
14.2 系統硬件設計
14.3 系統軟件設計
14.4 系統集成與部署...