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