出版時間:2012-1 出版社:電子工業(yè)出版社 作者:朱小遠 謝龍漢 頁數(shù):538
Tag標簽:無
內(nèi)容概要
本書以Linux嵌入式系統(tǒng)的基本開發(fā)技術(shù)為主線,以基于ARM架構(gòu)的嵌入式處理器為嵌入式硬件平臺,全面介紹嵌入式系統(tǒng)開發(fā)過程、ARM體系結(jié)構(gòu)、Linux基礎(chǔ)、Linux進程、Linux開發(fā)環(huán)境的建立、Linux操作系統(tǒng)移植、Bootloader的使用、Linux根文件系統(tǒng)的構(gòu)建、設(shè)備驅(qū)動程序的開發(fā)、嵌入式GUI開發(fā)等嵌入式知識,最后介紹近年來較為熱門的GPS導航系統(tǒng)的設(shè)計。
本書可作為機電控制、信息家電、工業(yè)控制、手持儀器、醫(yī)療器械、機器人技術(shù)等方面嵌入式系統(tǒng)開發(fā)與應用的參考書,也可作為高等院校有關(guān)嵌入式系統(tǒng)教學的本科生或研究生教材。
書籍目錄
第1章 嵌入式系統(tǒng)概述
1.1 嵌入式系統(tǒng)的概念
1.1.1 嵌入式系統(tǒng)的定義
1.1.2 嵌入式系統(tǒng)的特點
1.2 嵌入式系統(tǒng)的組成
1.2.1 嵌入式處理器
1.2.2 外圍設(shè)備
1.2.3 嵌入式操作系統(tǒng)
1.2.4 應用軟件
1.3 嵌入式處理器
1.3.1 嵌入式處理器的分類
1.3.2 嵌入式微處理器
1.3.3 嵌入式微控制器
1.3.4 嵌入式DSP處理器
1.3.5 嵌入式片上系統(tǒng)
1.3.6 選擇嵌入式處理器
1.4 嵌入式操作系統(tǒng)
1.4.1 操作系統(tǒng)的概念和分類
1.4.2 實時操作系統(tǒng)
1.4.3 常用的嵌入式操作系統(tǒng)
1.5 新型的嵌入式操作系統(tǒng)
1.5.1 Android
1.5.2 MontaVista
1.6 嵌入式系統(tǒng)的應用
1.7 嵌入式系統(tǒng)的發(fā)展趨勢
1.7.1 嵌入式系統(tǒng)面臨的挑戰(zhàn)
1.7.2 嵌入式系統(tǒng)的發(fā)展前景
1.8 本章小結(jié)
第2章 嵌入式系統(tǒng)開發(fā)過程
2.1 嵌入式軟件開發(fā)介紹
2.1.1 嵌入式軟件開發(fā)的特殊性
2.1.2 嵌入式軟件的分類
2.1.3 嵌入式軟件的開發(fā)流程
2.1.4 嵌入式軟件開發(fā)工具的發(fā)展趨勢
2.2 嵌入式軟件的調(diào)試技術(shù)
2.2.1 調(diào)試技術(shù)介紹
2.2.2 基于JTAG的ARM系統(tǒng)調(diào)試
2.3 嵌入式軟件測試技術(shù)
2.3.1 宿主機-目標機開發(fā)模式
2.3.2 目標監(jiān)控器
2.4 嵌入式系統(tǒng)集成開發(fā)環(huán)境
2.4.1 ADS的介紹
2.4.2 ADS建立工程的使用介紹
2.4.3 AXD調(diào)試器的使用介紹
實例2-1:ARM開發(fā)環(huán)境ADS的使用實例
2.5 本章小結(jié)
第3章 ARM體系結(jié)構(gòu)
3.1 ARM體系結(jié)構(gòu)概述
3.1.1 ARM體系結(jié)構(gòu)簡介
3.1.2 ARM體系結(jié)構(gòu)的技術(shù)特征
3.1.3 CISC的體系結(jié)構(gòu)
3.1.4 RISC的體系結(jié)構(gòu)
3.1.5 RISC系統(tǒng)和CISC系統(tǒng)的比較
3.2 ARM微處理器的分類
3.2.1 ARM7微處理器
3.2.2 ARM9微處理器
3.2.3 ARM9E微處理器
3.2.4 ARM10E微處理器
3.2.5 ARM11微處理器
3.2.6 SecurCore微處理器
3.2.7 trongARM微處理器
3.2.8 XScale微處理器
3.3 ARM微處理器的應用
3.3.1 ARM微處理器的應用選型
3.3.2 S3C2410處理器
3.4 存儲器
3.4.1 存儲器簡介
3.4.2 SDRAM操作
3.4.3 Flash
3.5 ARM編程模型
3.5.1 數(shù)據(jù)類型
3.5.2 存儲器格式
3.5.3 處理器工作狀態(tài)
3.5.4 處理器運行模式
3.5.5 寄存器組織
3.5.6 內(nèi)部寄存器
3.6 ARM指令的尋址方式
3.6.1 立即尋址
3.6.2 寄存器尋址
3.6.3 寄存器間接尋址
3.6.4 相對尋址
3.6.5 堆棧尋址
3.6.6 塊復制尋址
3.6.7 變址尋址
3.6.8 多寄存器尋址
3.7 ARM指令集
3.7.1 ARM指令的格式
3.7.2 ARM指令分類
3.7.3 Thumb指令介紹
3.7.4 Thumb指令分類
3.7.5 ARM指令集和Thumb指令集的區(qū)別
3.8 ARM微處理器的異常
3.8.1 ARM體系結(jié)構(gòu)所支持的異常類型
3.8.2 異常向量表
3.8.3 異常優(yōu)先級
3.8.4 應用程序中的異常處理
3.8.5 各類異常的具體描述
3.9 本章小結(jié)
第4章 Linux基本操作
4.1 Linux系統(tǒng)的介紹
4.1.1 Linux的概況
4.1.2 Linux操作系統(tǒng)的構(gòu)成
4.1.3 Linux常見的發(fā)行版本
4.1.4 Linux內(nèi)核的特點
4.2 Linux命令的使用
4.3 vi編輯器的使用
4.3.1 vi編輯器的進入
4.3.2 命令模式的命令
4.3.3 末行模式的命令
實例4-1:vi編輯器使用實例
4.4 Shell編程
4.4.1 Shell基礎(chǔ)介紹
4.4.2 Shell程序的變量和參數(shù)
4.4.3 運行Shell程序
4.4.4 Shell程序設(shè)計的流程控制
4.4.5 Shell輸入與輸出
4.4.6 bash介紹
4.5 綜合實例
實例4-2:編寫清除/var/log下的log文件綜合實例
實例4-3:編寫尋找死鏈接文件綜合實例
4.6 本章小結(jié)
第5章 Linux進程
5.1 進程概述
5.1.1 進程結(jié)構(gòu)
5.1.2 進程的控制操作
5.1.3 進程的屬性
5.1.4 進程的創(chuàng)建和調(diào)度
5.1.5 Linux進程命令
5.2 系統(tǒng)調(diào)用
5.2.1 系統(tǒng)調(diào)用簡述
5.2.2 系統(tǒng)調(diào)用的進入
5.2.3 與進程管理相關(guān)的系統(tǒng)調(diào)用
5.3 管道
5.3.1 管道系統(tǒng)調(diào)用
5.3.2 管道的分類
實例5-1:管道通信實例
5.4 信號
5.4.1 常見的信號種類
5.4.2 系統(tǒng)調(diào)用函數(shù)
5.4.3 信號的處理
5.4.4 信號與系統(tǒng)調(diào)用的關(guān)系
實例5-2:信號實例
5.5 信號量
5.5.1 信號量概述
5.5.2 相關(guān)的數(shù)據(jù)結(jié)構(gòu)
5.5.3 相關(guān)的函數(shù)
實例5-3:信號量實例
5.6 共享內(nèi)存
5.6.1 共享內(nèi)存原理
5.6.2 共享內(nèi)存對象的結(jié)構(gòu)
5.6.3 相關(guān)的函數(shù)
實例5-4:共享內(nèi)存實例
5.7 消息隊列
5.7.1 有關(guān)的數(shù)據(jù)結(jié)構(gòu)
5.7.2 相關(guān)的函數(shù)
實例5-5:消息隊列實例
5.8 綜合實例
實例5-6:多線程編程實例
5.9 本章小結(jié)
第6章 建立Linux開發(fā)環(huán)境
6.1 建立Linux開發(fā)環(huán)境
6.1.1 Cygwin開發(fā)環(huán)境
6.1.2 VMwareWorkstation開發(fā)環(huán)境
6.2 交叉編譯的使用
6.2.1 GNU交叉工具鏈的設(shè)置
6.2.2 ARMGNU常用匯編語言
6.2.3 GNU交叉工具鏈的常用工具
6.2.4 交叉編譯環(huán)境
6.3 Linux下的C編程
6.3.1 Linux程序設(shè)計特點
6.3.2 Linux下C語言編碼的風格
6.3.3 Linux程序基礎(chǔ)
6.3.4 Linux下C編程的庫依賴
6.4 gcc的使用與開發(fā)
6.4.1 gcc簡介和使用
6.4.2 gcc選項
6.4.3 gcc的錯誤類型
實例6-1:gcc編譯器環(huán)境的應用實例
6.5 gdb調(diào)試器的介紹和使用
6.5.1 gdb調(diào)試器的使用
6.5.2 在gdb中運行程序
6.5.3 暫停和恢復程序運行
6.5.4 遠程調(diào)試
實例6-2:gdb調(diào)試器環(huán)境的應用實例
6.6 GNUmake和Makefile的使用
6.6.1 Makefile的基本結(jié)構(gòu)
6.6.2 Makefile的變量
6.6.3 Makefile的隱含規(guī)則
6.6.4 Makefile的命令使用
6.6.5 Makefile的函數(shù)使用
6.6.6 Makefile文件的運行
6.6.7 Makefile規(guī)則書寫命令
實例6-3:Makefile的命令使用實例
6.7 autoconf和automake的使用
6.7.1 autoconf的使用
6.7.2 Makefile.am的編寫
6.7.3 automake的使用
6.7.4 使用automake和autoconf產(chǎn)生Makefile
6.7.5 自動生成Makefile的方法
6.8 綜合實例
實例6-4:gcc編譯器的綜合實例
實例6-5:gdb調(diào)試器的綜合實例
實例6-6:Makefile的綜合實例
6.9 本章小結(jié)
第7章 Linux操作系統(tǒng)移植
7.1 移植的概念
7.1.1 Linux可移植性發(fā)展
7.1.2 Linux的移植性
7.2 Linux內(nèi)核結(jié)構(gòu)
7.2.1 Linux內(nèi)核組成
7.2.2 子系統(tǒng)相互間的關(guān)系
7.2.3 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)
7.2.4 Linux內(nèi)核源代碼
7.3 Linux內(nèi)核配置
實例7-1:Linux內(nèi)核配置實例
7.4 Linux操作系統(tǒng)移植介紹
7.4.1 Linux系統(tǒng)移植的兩大部分
7.4.2 內(nèi)核文件的修改
7.4.3 系統(tǒng)移植所必需的環(huán)境
7.5 綜合實例
實例7-2:編譯Linux內(nèi)核應用實例
實例7-3:Linux內(nèi)核的燒寫實例
實例7-4:使用Kgdb構(gòu)建Linux內(nèi)核調(diào)試環(huán)境
7.6 本章小結(jié)
第8章 Bootloader的使用
8.1 Bootloader概述
8.1.1 Bootloader的作用
8.1.2 Bootloader的功能
8.1.3 Bootloader的種類
8.1.4 Bootloader的工作模式
8.1.5 Bootloader的啟動方式
8.1.6 Bootloader的啟動流程
8.1.7 Bootloader與主機的通信
8.2 vivi
8.2.1 vivi的常用命令和文件結(jié)構(gòu)
8.2.2 vivi第一階段的分析
8.2.3 vivi第二階段的分析
8.2.4 vivi的配置與編譯
8.3 U-boot
8.3.1 U-boot常用命令和源代碼目錄結(jié)構(gòu)
8.3.2 U-boot支持的主要功能
8.3.3 U-boot的編譯和添加命令
8.3.4 U-boot的啟動介紹
8.3.5 U-boot的移植和使用
8.3.6 U-boot的啟動過程
8.3.7 U-boot的調(diào)試
8.4 其他常見的Bootloader
8.5 綜合實例
實例8-1:vivi編譯實例
實例8-2:U-boot在S3C2410上的移植實例
實例8-3:Bootloader設(shè)計實例
8.6 本章小結(jié)
第9章 構(gòu)建Linux根文件系統(tǒng)
9.1 Linux文件系統(tǒng)概述
9.1.1 Linux文件系統(tǒng)的特點
9.1.2 其他常見的嵌入式文件系統(tǒng)
9.1.3 Linux根文件目錄結(jié)構(gòu)
9.1.4 Linux文件屬性介紹
9.2 使用BusyBox生成工具集
9.2.1 BusyBox概述
9.2.2 BusyBox進程和用戶程序啟動過程
9.2.3 編譯/安裝BusyBox
實例9-1:用BusyBox建立簡單的根文件系統(tǒng)
9.3 構(gòu)建根文件系統(tǒng)
實例9-2:構(gòu)建根文件系統(tǒng)
9.4 配置yaffs文件
9.4.1 yaffs文件系統(tǒng)設(shè)置
9.4.2 yaffs文件系統(tǒng)測試
9.5 綜合實例
實例9-3:制作/使用yaffs文件系統(tǒng)映像文件
實例9-4:制作/使用jffs2文件系統(tǒng)映像文件
9.6 本章小結(jié)
第10章 設(shè)備驅(qū)動程序開發(fā)
10.1 設(shè)備驅(qū)動程序概述
10.1.1 驅(qū)動程序的簡介
10.1.2 設(shè)備分類
10.1.3 設(shè)備號
10.1.4 設(shè)備節(jié)點
10.1.5 驅(qū)動層次結(jié)構(gòu)
10.1.6 設(shè)備驅(qū)動程序的特點
10.2 設(shè)備驅(qū)動程序與文件系統(tǒng)
10.2.1 設(shè)備驅(qū)動程序與文件系統(tǒng)的關(guān)系
10.2.2 設(shè)備驅(qū)動程序與操作系統(tǒng)的關(guān)系
10.2.3 Linux設(shè)備驅(qū)動程序的接口
10.2.4 設(shè)備驅(qū)動程序開發(fā)的基本函數(shù)
10.2.5 Linux驅(qū)動程序的加載
10.3 設(shè)備驅(qū)動程序的使用
10.3.1 驅(qū)動程序模塊的加載
10.3.2 創(chuàng)建設(shè)備文件
10.3.3 使用設(shè)備
10.4 網(wǎng)絡設(shè)備基礎(chǔ)知識
10.4.1 網(wǎng)絡協(xié)議
10.4.2 網(wǎng)絡設(shè)備接口基礎(chǔ)
10.5 網(wǎng)絡設(shè)備驅(qū)動程序的架構(gòu)
10.5.1 網(wǎng)絡設(shè)備驅(qū)動程序體系結(jié)構(gòu)
10.5.2 網(wǎng)絡設(shè)備驅(qū)動程序模塊分析
10.5.3 網(wǎng)絡設(shè)備驅(qū)動程序的實現(xiàn)模式
10.5.4 網(wǎng)絡設(shè)備驅(qū)動程序的數(shù)據(jù)結(jié)構(gòu)
10.6 綜合實例
實例10-1:鍵盤驅(qū)動開發(fā)實例
實例10-2:I2C總線驅(qū)動的編寫實例
實例10-3:TFT-LCD顯示驅(qū)動實例
10.7 本章小結(jié)
第11章 嵌入式GUI開發(fā)
11.1 嵌入式系統(tǒng)中的GUI簡介
11.1.1 嵌入式GUI系統(tǒng)的介紹
11.1.2 基于嵌入式Linux的GUI系統(tǒng)底層實現(xiàn)基礎(chǔ)
11.1.3 嵌入式GUI系統(tǒng)的分析與比較
11.2 嵌入式系統(tǒng)下MiniGUI的實現(xiàn)
11.2.1 圖形用戶界面MiniGUI簡介
11.2.2 MiniGUI的發(fā)布版本
11.2.3 MiniGUI在S3C2410處理器上的移植過程
11.3 Qt/Embedded嵌入式圖形開發(fā)基礎(chǔ)
11.3.1 Qt/Embedded開發(fā)環(huán)境的安裝
11.3.2 Qt/Embedded底層支持及實現(xiàn)代碼分析
11.3.3 Qt/Embedded信號和插槽機制
11.3.4 Qt/Embedded窗口部件
11.3.5 Qt/Embedded圖形界面編程
11.3.6 Qt/Embedded對話框設(shè)計
11.3.7 數(shù)據(jù)庫
實例11-1:Qt/Embedded圖形開發(fā)應用實例
11.4 Qtopia移植
11.4.1 Qtopia簡介
11.4.2 交叉編譯、安裝Qtopia
實例11-2:Qtopia移植應用實例
11.5 Qt/Embedded應用開發(fā)
11.5.1 嵌入式硬件開發(fā)平臺的選擇
11.5.2 Qt/Embedded常用工具的介紹
11.5.3 交叉編譯Qt/Embedded的庫
11.5.4 Qt/E程序的編譯與執(zhí)行
實例11-3:Qt/Embedded實戰(zhàn)演練
11.6 綜合實例
實例11-4:Hello,Qt/Embedded應用程序
實例11-5:基本繪圖應用程序的編寫
11.7 本章小結(jié)
第12章 綜合工程實例
12.1 文件系統(tǒng)的生成與燒寫
12.1.1 yaffs文件系統(tǒng)的制作與生成
12.1.2 jffs2文件系統(tǒng)的制作與生成
12.2 基于Linux的數(shù)碼相框
12.2.1 系統(tǒng)需求分析
12.2.2 系統(tǒng)總體設(shè)計
12.2.3 軟件設(shè)計實現(xiàn)
12.2.4 軟硬件集成
12.3 基于Linux的MPlayer解碼播放器
12.3.1 可行性分析報告
12.3.2 系統(tǒng)總體設(shè)計
12.3.3 軟件總體設(shè)計
12.3.4 軟件詳細設(shè)計
12.3.5 軟硬件集成
12.4 基于Linux的GPS導航系統(tǒng)的開發(fā)
12.4.1 嵌入式開發(fā)流程圖
12.4.2 GPS導航定位系統(tǒng)的系統(tǒng)定義
12.4.3 GPS導航系統(tǒng)的可行性分析報告
12.4.4 GPS導航系統(tǒng)需求分析
12.4.5 GPS導航系統(tǒng)總體設(shè)計實現(xiàn)
12.4.6 GPS導航系統(tǒng)硬件設(shè)計實現(xiàn)
12.4.7 GPS導航系統(tǒng)軟件概括設(shè)計
12.4.8 GPS導航系統(tǒng)軟件詳細設(shè)計
12.4.9 GPS導航系統(tǒng)數(shù)據(jù)庫的配置設(shè)計
12.4.10 GPS導航系統(tǒng)軟件實現(xiàn)
12.5 本章小結(jié)
章節(jié)摘錄
版權(quán)頁:插圖:(2)遠程調(diào)試遠程調(diào)試是一種允許調(diào)試器以某種方式控制目標機上被調(diào)試進程的運行方式,并具有查看和修改目標機上內(nèi)存單元、寄存器及被調(diào)試進程中變量值等各種調(diào)試功能的調(diào)試方式。在嵌入式系統(tǒng)中,調(diào)試器運行在宿主機的通用操作系統(tǒng)之上,被調(diào)試的進程運行在目標機的嵌入式操作系統(tǒng)中,調(diào)試器和被調(diào)試進程通過串口或者網(wǎng)絡進行通信,調(diào)試器可以控制、訪問被調(diào)試進程,讀取被調(diào)試進程的當前狀態(tài),并能夠改變被調(diào)試進程的運行狀態(tài)。嵌入式系統(tǒng)的交叉調(diào)試可分為硬件調(diào)試和軟件調(diào)試兩種。硬件調(diào)試需要使用仿真調(diào)試器協(xié)助調(diào)試過程,硬件調(diào)試器是通過仿真硬件的執(zhí)行過程,讓開發(fā)者在調(diào)試時可以隨時了解到系統(tǒng)的當前執(zhí)行情況。而軟件調(diào)試則使用軟件調(diào)試器完成調(diào)試過程。在目標機上,嵌入式操作系統(tǒng)、應用程序代碼構(gòu)成可執(zhí)行映像??梢栽谒拗鳈C上生成完整映像,再移植到目標機上;也可以把應用程序做成可加載模塊,在目標機操作系統(tǒng)啟動后,從宿主機向目標機加載應用程序模塊。2.3.2 目標監(jiān)控器嵌入式系統(tǒng)開發(fā)環(huán)境中,目標監(jiān)控器對嵌入式軟件的開發(fā)和調(diào)試有至關(guān)重要的意義。嵌入式系統(tǒng)的調(diào)試,與一般臺式機上編程調(diào)試顯著不同。嵌入式調(diào)試工具是用于嵌入式系統(tǒng)開發(fā)中代碼定制和調(diào)試的工具,分為駐留主機部分和駐留目標機部分。駐留主機部分稱為調(diào)試器,駐留目標機部分稱為目標監(jiān)控器。目標監(jiān)控器是解決嵌入式軟件開發(fā)工具與這些支撐硬件的連接和通信的一個重要支持部件,是嵌入式應用開發(fā)、調(diào)試環(huán)境的核心部件,是許多功能模塊實現(xiàn)的基礎(chǔ)。按照具體的實現(xiàn)方式的不同,可以將目標監(jiān)控器分為軟件監(jiān)控器、硬件監(jiān)控器、軟件仿真器和軟件模擬監(jiān)控器。(1)軟件監(jiān)控器軟件監(jiān)控器是駐留在目標機上通過軟件手段實現(xiàn)的調(diào)試代理。實際上,主機端的調(diào)試命令不是直接交由目標機硬件執(zhí)行的,而是首先發(fā)送給軟件監(jiān)控器,再由軟件監(jiān)控器轉(zhuǎn)交給目標機執(zhí)行,然后將所監(jiān)控的程序運行到斷點處的相關(guān)信息反饋給主機端的調(diào)試器。按照對目標機硬件和軟件的控制能力,軟件監(jiān)控器分為引導型監(jiān)控器和應用型監(jiān)控器。1)引導型監(jiān)控器引導型監(jiān)控器是一種具有啟動系統(tǒng)、加載和調(diào)試包括內(nèi)核在內(nèi)的程序等功能的軟件監(jiān)控器,它實際上是一個具有監(jiān)控功能的微型操作系統(tǒng)。
編輯推薦
《Linux嵌入式系統(tǒng)開發(fā)》:Linux-嵌入式系統(tǒng)開發(fā)的首選軟件、信息家電、工業(yè)控制、醫(yī)療器械、機器人領(lǐng)域的必備技術(shù)、基礎(chǔ)知識-實訓實例-工程實例、實例操作視頻教學,輕松學習。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載
Linux嵌入式系統(tǒng)開發(fā) PDF格式下載