內容簡介
廉文娟、郭華、范延濱編著的《ARM嵌入式Linux驅動程式開發》詳細介紹Linux在ARM上的移植過程和驅動程式設計的理論知識,並在此基礎上由淺入深,詳細講解Linux的驅動程式設計步驟以及Linux驅動程式的調試方法。本書基於Linux 2.6核心,以S3C2410A為主進行介紹。
全書共分11章,主要內容包括嵌入式系統介紹、嵌入式系統開發環境、嵌入式檔案系統分析與設計、BootLoader分析與設計、Linux系統的移植、Linux設備驅動程式、串口驅動程式、基於ZLG7290的鍵盤和數碼管驅動設計、LCD驅動程式分析與設計、USB設備驅動程式分析與設計、網路設備驅動程式分析與設計。
圖書目錄
前言
第1章 嵌入式系統概述
1.1 嵌入式系統的概念
1.1.1 嵌入式系統的定義
1.1.2 嵌入式系統的特點
1.1.3 嵌入式系統的發展趨勢
1.2 嵌入式系統的分類
1.3 嵌入式系統的組成結構
1.4 嵌入式處理器簡介
1.5 ARM處理器
1.5.1 ARM系列處理器概述
1.5.2 ARM處理器的暫存器檔案
1.5.3 ARM處理器的異常與中斷
1.5.4 ARM處理器的指令系統
1.5.5 S3C2410A的性能
1.6 嵌入式作業系統
1.6.1 嵌入式作業系統的發展階段
1.6.2 嵌入式實時作業系統
1.6.3 嵌入式作業系統選型
1.6.4 典型嵌入式作業系統
本章小結
第2章 創建嵌入式系統開發環境
2.1 Linux常用命令
2.1.1 命令基礎
2.1.2 檔案操作命令
2.1.3 目錄操作命令
2.1.4 檔案與目錄許可權操作
2.1.5 Linux用戶和組操作的常用命令
2.1.6 檔案壓縮與打包命令
2.1.7 進程操作的相關命令
2.1.8 網路命令
2.2 交叉編譯環境的預備知識
2.2.1 GCC編譯器
2.2.2 Clibc庫和CDB調試工具
2.2.3 make命令和makefile檔案
2.2.4 Binutils工具包
2.3 搭建交叉編譯環境
2.3.1 交叉編譯簡介
2.3.2 搭建S3C24IOA交叉編譯環境
2.3.3 程式執行方式
本章小結
第3章 嵌入式檔案系統分析與設計
3.1 Linux檔案系統類型
3.2 Linux根檔案系統
3.3 Linux系統的引導過程
3.4 嵌入式檔案系統
3.4.1 嵌入式檔案系統的特點和種類
3.4.2 常見的嵌入式檔案系統
3.4.3 記憶體技術設備
3.4.4 RAMDisk技術
3.4.5 網路檔案系統
3.5 Busybox
本章小結
第4章 BootLoader分析與設計
4.1 嵌入式系統的引導代碼
4.1.1 初識BootLoader
4.1.2 BootLoader的啟動流程
4.2 常用的嵌入式Linux Boot Loader
4.2.1 U-Boot
4.2.2 VIVI
4.2.3 Blob
4.2.4 RedBoot
4.2.5 其他BootLoader
4.3 U-Boot分析與移植
4.3.1 U-Boot原始碼結構
4.3.2 U-Boot原始碼編譯
4.3.3 U-Boot移植步驟
4.3.4 U-Boot啟動流程分析
4.4 U-Boot使用
4.4.1 U-Boot的常用命令
4.4.2 U-Boot的環境變數
本章小結
第5章 Linux系統的移植
5.1 Linux核心配置
5.1.1 Linux核心原始碼結構
5.1.2 Linux核心配置系統
5.2 Linux核心編譯
5.2.1 Kbuild編譯工具
5.2.2 Linux核心編譯命令及編譯過程
5.2.3 Linux核心編譯結果
5.3 Linux核心移植
5.3.1 Linux核心移植方法
5.3.2 Linux核心移植過程
5.4 Linux核心啟動過程分析
5.4.1 Linux核心啟動流程
5.4.2 Linux核心啟動原始碼分析
本章小結
第6章 Linux設備驅動程式
6.1 設備驅動基礎
6.1.1 設備驅動的概念
6.1.2 沒備類型與數據交換方式
6.1.3 核心窄問和用戶空間
6.2 設備驅動開發
6.2.1 Linux設備驅動程式框架
6.2.2 設備驅動中的關鍵數據結構
6.2.3 設備驅動中的基本函式
6.2.4 字元設備驅動開發舉例
本章小結
第7章 串口驅動程式
7.1 串口概述
7.2 S3C24IOA串口控制器
7.2.1 S3C2410A串口控制器原理
7.2.2 S3C2410A串口控制器相關暫存器
7.3 嵌入式Linux串口驅動程式設計
7.3.1 串口驅動程式框架
7.3.2 串口驅動程式的註冊
7.3.3 OPS中的串口操作函式
7.3.4 串口驅動中與控制台有關的函式
7.4 串口應用程式設計
7.4.1 串口終端函式
7.4.2 串口通信套用
本章小結
第8章 基於ZLG7290的鍵盤和數碼管驅動設計
8.1 ZLG7290介紹
8.1.1 ZLG7290功能描述
8.1.2 ZLG7290工作原理
8.1.3 ZLC7290內部暫存器
8.1.4 控制命令詳解
8.2 IIC匯流排
8.2.1 IIC匯流排概述
8.2.2 IIC匯流排標準
8.3 ZLG7290硬體電路設計
8.4 S3C24IOA中與IIC相關的I/O連線埠和暫存器
8.4.1 S3C2410A的IIC匯流排接門
8.4.2 各種模式下的操作流程圖
8.4.3 IIC匯流排特殊暫存器
8.5 Linux的IIC驅動程式分析與設計
8.5.1 IIC匯流排驅動的關鍵數據結構
8.5.2 S3C2410A匯流排IIC設備驅動實現
8.5.3 ZLG7290的IIC驅動安裝與測試
本章小結
第9章 LCD驅動程式分析與設計
9.1 LCD
9.2 LCD的顯示接口
9.3 嵌入式處理器的LCD控制器
9.3.1 LCD控制器
9.3.2 LCD控制器的設定
9.3.3 LCD的字元顯示快取
9.4 基於framebuffer的LCD驅動程式
9.4.1 framebuffer概述
9.4.2 framebuffer設備驅動程式的結構
9.4.3 framebuffer設備驅動程式的設計
9.5 LCD驅動程式在S3C2410A上的移植
9.5.1 移植步驟
9.5.2 LCD驅動程式分析
本章小結
第10章 USB設備驅動程式分析與設計
10.1 USB接口概述
10.1.1 USB系統組成
10.1.2 USB的電氣特性
10.1.3 USB匯流排的拓撲結構
10.1.4 USB的通信協定
10.2 USB設備驅動程式設計
10.2.1 USB設備驅動程式分類
10.2.2 USB驅動的框架程式
10.2.3 設備端USB驅動程式
10.3 USB驅動程式在S3C2410A上的移植
本章小結
第11章 網路設備驅動程式分析與設計
11.1 網路協定
11.2 乙太網
11.2.1 乙太網的拓撲結構
11.2.2 乙太網協定
11.2.3 乙太網幀結構
11.3 嵌入式網路接口
11.4 嵌入式Linux網路驅動
11.4.1 Linux網路設備驅動程式的體系結構
11.4.2 網路驅動程式的基本方法
11.4.3 網路驅動中的主要數據結構
11.5 網路驅動程式的移植及分析
本章小結
參考文獻