第1章 嵌入式Linux C語言開發(fā)工具
1.1 嵌入式Linux C語言概述
1.1.1 C語言簡史
1.1.2 C語言特點
1.1.3 嵌入式Linux C語言編程環(huán)境
1.2 嵌入式Linux編輯器vi的使用
1.2.1 vi的基本模式
1.2.2 vi的基本操作
1.2.3 vi的使用實例分析
1.3 嵌入式Linux編譯器GCC的使用
1.3.1 GCC概述
1.3.2 GCC編譯流程分析
1.3.3 GCC警告提示
1.3.4 GCC使用庫函數
1.3.5 GCC代碼優(yōu)化
1.4 嵌入式Linux調試器GDB的使用
1.4.1 GDB使用實例
1.4.2 設置/刪除斷點
1.4.3 數據相關命令
1.4.4 調試運行環(huán)境相關命令
1.4.5 堆棧相關命令
1.5 make工程管理器
1.5.1 Makefile基本結構
1.5.2 Makefile變量
1.5.3 Makefile規(guī)則
1.5.4 make使用
1.6 Eclipse集成開發(fā)環(huán)境
1.6.1 Eclipse 簡介
1.6.2 Eclipse相關術語
1.6.3 安裝Eclipse集成開發(fā)環(huán)境(假設宿主機環(huán)境為ubuntu10.10)
1.6.4 Eclipse的使用
1.7 本章小結
1.8 本章習題
第2章 嵌入式Linux C語言基礎
2.1 ANSI C與GNU C
2.1.1 ANSI C簡介
2.1.2 GNU C簡介
2.2 基本數據類型
2.2.1 整型家族
2.2.2 實型家族
2.2.3 字符型家族
2.2.4 枚舉家族
2.2.5 指針家族
2.3 變量與常量
2.3.1 變量的定義
2.3.2 typedef
2.3.3 常量定義
2.4 運算符與表達式
2.4.1 算術運算符和表達式
2.4.2 賦值運算符和表達式
2.4.3 逗號運算符和表達式
2.4.4 位運算符和表達式
2.4.5 關系運算符和表達式
2.4.6 邏輯運算符和表達式
2.4.7 sizeof操作符
2.4.8 條件運算符(?)
2.4.9 運算符優(yōu)先級總結
2.5 程序結構和控制語句
2.5.1 C語言程序結構
2.5.2 C語言控制語句
2.6 數組、結構體和指針
2.7 函數
2.7.1 概述
2.7.2 函數定義和聲明
2.7.3 函數的參數、返回值和調用方法
2.8 _attribute_機制介紹
2.9 系統(tǒng)調用和應用程序編程接口
2.9.1 系統(tǒng)調用
2.9.2 應用程序編程接口
2.9.3 系統(tǒng)命令
2.10 本章小結
2.11 本章習題
第3章 嵌入式Linux C語言高級用法
3.1 預處理
3.1.1 預定義
3.1.2 文件包含
3.1.3 條件編譯
3.2 C語言中的內存分配
3.2.1 C語言程序所占內存分類
3.2.2 堆和棧的區(qū)別
3.3 程序的可移植性考慮
3.3.1 字長和數據類型
3.3.2 數據對齊
3.3.3 字節(jié)順序
3.4 C和匯編的接口
3.4.1 內嵌匯編的語法
3.4.2 編譯器優(yōu)化介紹
3.4.3 C語言關鍵字volatile
3.4.4 memory描述符
3.5 本章小結
3.6 本章習題
第4章 嵌入式Linux C內核常用數據結構
4.1 鏈表
4.1.1 單向鏈表
4.1.2 雙向鏈表
4.1.3 循環(huán)鏈表
4.1.4 ARM Linux中鏈表使用實例
4.2 樹、二叉樹、平衡樹
4.2.1 樹的定義
4.2.2 二叉樹
4.2.3 平衡樹
4.2.4 ARM Linux中紅黑樹使用實例
4.3 哈希表
4.3.1 哈希表的概念及作用
4.3.2 哈希表的構造方法
4.3.3 哈希表的處理沖突方法
4.3.4 ARM Linux中哈希表使用實例
4.4 本章小結
4.5 本章習題
第5章 嵌入式Linux文件操作
5.1 Linux文件系統(tǒng)概述
5.1.1 虛擬文件系統(tǒng)
5.1.2 通用文件模型
5.1.3 Linux下的設備文件
5.2 Linux下的I/O操作
5.2.1 不帶緩存的文件I/O操作
5.2.2 標準I/O
5.3 Linux下對文件和目錄的操作
5.3.1 文件類型
5.3.2 文件訪問權限
5.3.3 獲取文件屬性
5.3.4 修改文件訪問權限
5.3.5 創(chuàng)建目錄
5.3.6 創(chuàng)建鏈接文件
5.3.7 刪除文件
5.3.8 重命名文件
5.4 嵌入式Linux串口應用開發(fā)
5.4.1 串口概述
5.4.2 串口設置詳解
5.4.3 串口使用詳解
5.5 本章小結
5.6 本章習題
第6章 嵌入式Linux進程和線程編程
6.1 Linux進程概述
6.1.1 進程描述符及任務結構
6.1.2 進程的調度
6.1.3 Linux中的線程
6.2 Linux進程控制相關API
6.3 ARM Linux進程間通信
6.3.1 管道通信
6.3.2 信號通信
6.3.3 共享內存
6.3.4 消息隊列
6.4 ARM Linux線程相關API
6.5 Linux守護進程
6.5.1 守護進程概述
6.5.2 編寫規(guī)則
6.5.3 守護進程實例
6.6 本章小結
6.7 本章習題
第7章 網絡通信相關的C語言應用
7.1 TCP/IP協(xié)議簡介
7.1.1 TCP/IP的分層模型
7.1.2 TCP/IP分層模型的特點
7.1.3 TCP/IP核心協(xié)議
7.2 套接字的基本知識
7.2.1 套接字概述
7.2.2 地址結構和字節(jié)序
7.3 套接字相關的API及應用
7.3.1 socket函數
7.3.2 bind函數
7.3.3 connect函數
7.3.4 listen函數
7.3.5 accept函數
7.3.6 send、recv函數
7.3.7 sendto和recvfrom函數
7.3.8 close和shutdown函數
7.3.9 setsockopt和getsockopt函數
7.3.10 getpeername函數
7.3.11 gethostname函數
7.3.12 編程實例
7.4 套接字高級編程
7.5 本章小結
7.6 本章習題
附錄A 嵌入式Linux C函數快速參考