· 多年嵌入式人才培養及項目研發經驗總結
· 數百家企業嵌入式研發崗位人才需求匯總
· 數十所嵌入式專業大學院校教學現狀調研
· 側重實踐及案例分析并輔以代碼加以講解
嵌入式系統是目前最熱門的計算機應用領域之一,嵌入式linux是應用最廣泛的嵌入式操作系統之一,嵌入式c語言在其中起著至關重要的作用。
本書共13章,全面講解了嵌入式系統基礎,嵌入式linux c語言開發工具、語言基礎,文件i/o相關實例,arm linux進程線程開發實例,arm linux網絡開發實例,嵌入式linux設備驅動開發以及視頻監控系統。
本書可作為大中專院校嵌入式相關專業本科生、研究生的教材,也可供廣大希望轉入嵌入式領域的科研和工程技術人員使用。
第1章 嵌入式系統基礎知識
1.1 嵌入式系統概述
1.1.1 嵌入式系統的發展史
1.1.2 嵌入式系統的定義與特點
1.1.3 嵌入式系統的特點
1.2 嵌入式系統的組成
1.2.1 嵌入式系統的硬件架構
1.2.2 嵌入式操作系統
1.2.3 嵌入式應用軟件
1.3 arm處理器平臺介紹
1.3.1 arm處理器簡介
1.3.2 arm處理器系列
1.3.3 arm體系結構簡介
1.3.4 s3c2410處理器簡介
1.4 嵌入式系統硬件平臺選型
1.4.1 硬件平臺的選擇
1.4.2 arm處理器選型
1.5 嵌入式系統開發概述
1.5.1 嵌入式系統開發流程
1.5.2 嵌入式軟件開發流程
本章小結
動手練練
第2章 嵌入式linux c語言開發工具
2.1 嵌入式linux下c語言概述
2.1.1 c語言簡史
2.1.2 c語言特點
2.1.3 嵌入式linux c語言編程環境
2.2 嵌入式linux編輯器vi的使用
2.2.1 vi的基本模式
2.2.2 vi的基本操作
2.2.3 vi的使用實例分析
2.3 嵌入式linux編譯器gcc的使用
2.3.1 gcc概述
2.3.2 gcc編譯流程分析
2.3.3 gcc警告提示
2.3.4 gcc使用庫函數
2.3.5 gcc代碼優化
2.4 嵌入式linux調試器gdb的使用
2.4.1 gdb使用實例
2.4.2 設置/刪除斷點
2.4.3 數據相關命令
2.4.4 調試運行環境相關命令
2.4.5 堆棧相關命令
2.5 make工程管理器
2.5.1 makefile基本結構
2.5.2 makefile變量
2.5.3 makefile規則
2.5.4 make使用
2.6 emacs綜合編輯器
2.6.1 emacs的啟動與退出
2.6.2 emacs的基本編輯
2.6.3 emacs的c模式
2.6.4 emacs的shell模式
本章小結
動手練練
第3章 構建嵌入式linux系統
3.1 嵌入式系統開發環境的構建
3.1.1 嵌入式交叉編譯環境搭建
3.1.2 minicom和超級終端配置及使用
3.1.3 宿主機服務配置
3.2 bootloader
3.2.1 bootloader的概念
3.2.2 bootloader啟動流程分析
3.2.3 u-boot概述
3.2.4 u-boot源碼導讀
3.3 編譯嵌入式linux內核
3.4 linux內核目錄結構
3.5 制作文件系統
本章小結
動手練練
第4章 嵌入式linux c語言基礎——數據、表達式
4.1 嵌入式linux c語言概述
4.2 基本數據類型
4.2.1 整型家族
4.2.2 實型家族
4.2.3 字符型家族
4.2.4 枚舉家族
4.2.5 指針家族
4.3 變量與常量
4.3.1 變量的定義
4.3.2 typedef
4.3.3 常量定義
4.3.4 arm-linux基本數據類型綜合應用實例
4.4 運算符與表達式
4.4.1 算術運算符和表達式
4.4.2 賦值運算符和表達式
4.4.3 逗號運算符和表達式
4.4.4 位運算符和表達式
4.4.5 關系運算符和表達式
4.4.6 邏輯運算符和表達式
4.4.7 sizeof操作符
4.4.8 條件(?)運算符
4.4.9 運算符優先級總結
4.4.10 arm-linux運算符
綜合實例
本章小結
動手練練
第5章 嵌入式linux c語言基礎——控制語句及函數
5.1 嵌入式linux c語言程序結構概述
5.1.1 嵌入式linux c語言3種程序結構
5.1.2 嵌入式linux c語言基本語句
5.2 選擇語句
5.2.1 if語句
5.2.2 switch語句
5.2.3 arm-linux選擇語句應用實例
5.3 循環語句
5.3.1 while和do-while語句
5.3.2 for循環語句
5.3.3 break和continue語句
5.3.4 arm-linux循環語句應用實例
5.4 goto語句
5.4.1 goto語句語法
5.4.2 arm-linux中goto語句應用實例
5.5 函數的定義與聲明
5.5.1 c語言函數概述
5.5.2 函數定義
5.5.3 函數聲明
5.5.4 arm-linux函數定義與聲明實例
5.6 函數的參數、值和基本調用
5.6.1 函數的參數
5.6.2 函數的值
5.6.3 函數的基本調用
5.7 函數的嵌套、遞歸調用
5.7.1 函數的嵌套調用
5.7.2 函數的遞歸調用
5.7.3 arm-linux函數調用應用實例
本章小結
動手練練
第6章 嵌入式linux c語言基礎——數組、指針與結構
6.1 數組
6.1.1 一維數組
6.1.2 字符串
6.1.3 二維數組
6.2 指針
6.2.1 指針的概念
6.2.2 指針變量的操作
6.2.3 指針和數組
6.2.4 指針高級議題
6.3 結構體與聯合
6.3.1 結構體
6.3.2 聯合
6.3.3 arm-linux指針、結構體使用實例
本章小結
動手練練
第7章 嵌入式linux c語言基礎——高級議題
7.1 預處理
7.1.1 預處理的概念
7.1.2 預定義
7.1.3 文件包含
7.1.4 條件編譯
7.2 c語言中的內存分配
7.2.1 c語言程序所占內存分類
7.2.2 堆和棧的區別
7.3 嵌入式linux可移植性考慮
7.3.1 字長和數據類型
7.3.2 數據對齊
7.3.3 字節順序
7.4 c和匯編的接口
7.4.1 內嵌匯編的語法
7.4.2 編譯器優化介紹
7.4.3 c語言關鍵字volatile
7.4.4 memory描述符
7.4.5 gcc對內嵌匯編語言的處理方式
本章小結
動手練練
第8章 嵌入式linux c語言基礎——arm linux內核常見數據結構
8.1 鏈表
8.1.1 鏈表概述
8.1.2 單向鏈表
8.1.3 雙向鏈表
8.1.4 循環鏈表
8.1.5 arm linux中鏈表使用實例
8.2 樹、二叉樹、平衡樹
8.2.1 樹
8.2.2 二叉樹
8.2.3 平衡樹
8.2.4 arm linux中紅黑樹使用實例
8.3 哈希表
8.3.1 哈希表的概念及作用
8.3.2 哈希表的構造方法
8.3.3 哈希表的處理沖突方法
8.3.4 arm linux中哈希表使用實例
本章小結
動手練練
第9章 文件i/o相關實例
9.1 linux系統調用及用戶編程接口(api)
9.1.1 系統調用
9.1.2 用戶編程接口(api)
9.1.3 系統命令
9.2 arm linux文件i/o系統概述
9.2.1 虛擬文件系統(vfs)
9.2.2 通用文件模型
9.2.3 arm linux的設備文件
9.3 文件i/o操作
9.3.1 不帶緩存的文件i/o操作
9.3.2 標準i/o開發
9.4 嵌入式linux串口應用開發
9.4.1 串口概述
9.4.2 串口設置詳解
9.4.3 串口使用詳解
本章小結
動手練練
第10章 arm linux進程線程開發實例
10.1 arm linux進程線程管理
10.1.1 進程描述符及任務結構
10.1.2 進程的調度
10.1.3 linux中的線程
10.1.4 linux中進程間通信
10.2 arm linux進程控制相關api
10.3 arm linux進程間通信api
10.3.1 管道通信
10.3.2 信號通信
10.3.3 共享內存
10.3.4 消息隊列
10.4 arm linux線程相關api
10.5 linux守護進程
10.5.1 守護進程概述
10.5.2 編寫規則
10.5.3 守護進程實例
本章小結
動手練練
第11章 arm linux網絡開發實例
11.1 tcp/ip協議簡介
11.1.1 tcp/ip的分層模型
11.1.2 tcp/ip分層模型特點
11.1.3 tcp/ip核心協議
11.2 網絡基礎編程
11.2.1 socket概述
11.2.2 地址及順序處理
11.2.3 socket基礎編程
11.3 web服務器
11.3.1 web服務器功能
11.3.2 web服務器協議
11.3.3 web服務器協議
11.3.4 運行web服務器
11.4 traceroute程序實例
11.4.1 traceroute原理簡介
11.4.2 traceroute實例與分析
11.4.3 traceroute實例運行結果
本章小結
動手練練
第12章 嵌入式linux設備驅動開發
12.1 設備驅動概述
12.1.1 設備驅動簡介
12.1.2 設備驅動程序的特點
12.2 模塊編程
12.2.1 模塊編程簡介
12.2.2 模塊相關命令
12.2.3 模塊編程流程
12.3 字符設備驅動編寫
12.4 塊設備驅動編寫
12.4.1 塊設備驅動程序描述符
12.4.2 塊設備驅動編寫流程
12.5 簡單的skull驅動實例
12.5.1 驅動簡介
12.5.2 驅動編寫流程
12.5.3 結果分析
12.6 lcd驅動編寫實例
12.6.1 lcd工作原理
12.6.2 lcd驅動實例
本章小結
動手練練
第13章 視頻監控系統
13.1 視頻監控系統概述
13.1.1 系統組成
13.1.2 音視頻服務器
13.1.3 音視頻客戶端
13.1.4 通信傳輸控制協議
13.2 基本數據結構
13.3 功能實現
13.3.1 傳輸控制
13.3.2 用戶檢驗
13.3.3 控制命令處理
13.3.4 云臺轉動控制
13.3.5 線程相關
本章小結
動手練練