深入理解嵌入式Linux設備驅動程式

深入理解嵌入式Linux設備驅動程式

《深入理解嵌入式Linux設備驅動程式》是2012年電子工業出版社出版的圖書,作者是曹國輝。本書講述了嵌入式Linux驅動程式開發的方法。

內容簡介

《深入理解嵌入式Linux設備驅動程式》詳細闡述了嵌入式Linux設備驅動程式基本理論及開發方法。詳細講解了嵌入式系統的硬體體系架構,Linux系統的引導原理、啟動過程,Linux設備驅動模型及基本理論,具體的硬體設備驅動程式的源碼分析。在分析具體設備驅動程式源碼的基礎上,詳細講解了具體設備驅動程式的設計和移植方法。

不但講解了怎么做,更重要的是分析了為什麼要這么做,在分析Linux核心驅動源碼的基礎上,提煉出Linux驅動架構模型的核心思想及實現思路,在理解整個Linux設備驅動流程和實現思路的基礎上,闡述了編寫設備驅動和移植設備驅動的基本思路和方法。

目錄

第1章 嵌入式arm系統開發基礎

1.1 嵌入式arm系統開發概述

1.1.1 arm系統可執行映像檔案格式

1.1.2 arm開發調試工具

1.1.3 載入地址和運行地址

1.2 嵌入式arm系統的啟動代碼分析

1.2.1 arm上電啟動概述

1.2.2 arm上電初始化啟動代碼分析

1.3 嵌入式arm系統的中斷系統

1.3.1 arm中斷機制代碼分析

1.3.2 arm中斷服務處理程式的回響過程

1.4 按鍵中斷實驗

第2章 嵌入式linux設備驅動程式開發環境的構建

2.1 安裝虛擬機軟體vmware 6.0.2

2.2 新建虛擬機

2.3 安裝linux作業系統ubuntu

2.4 安裝vmware tools工具軟體

2.5 網路配置

2.6 設定軟體源伺服器

.2.7 安裝libncurses5-dev軟體包

2.8 安裝交叉編譯器arm-linux-gcc

第3章 嵌入式linux核心的裁剪與編譯

3.1 嵌入式linux核心的本質

3.2 嵌入式linux核心源碼的組織

3.3 嵌入式linux核心的移植與裁剪

3.4 嵌入式linux核心配置、編譯的基本原理

3.5 構建嵌入式linux根檔案系統

第4章 嵌入式系統bootloader代碼分析與移植

4.1 嵌入式系統bootloader功能概述

4.1.1 嵌入式linux系統的軟體組成及分布

4.1.2 嵌入式linux中為什麼要有bootloader

4.1.3 bootloader的功能和選擇

4.2 u-boot源碼分析

4.2.1 u-boot源碼檔案的組成及配置編譯

4.2.2 u-boot的執行過程及linux核心載入流程

4.2.3 start.s源碼檔案分析

4.2.4 board.c源碼檔案分析

4.3 u-boot中的環境變數

4.4 linux系統的載入過程

4.4.1 u-boot命令執行過程

4.4.2 bootm的執行流程

4.5 u-boot向linux傳遞參數的過程

4.6 u-boot的移植

第5章 嵌入式linux核心模組與字元設備驅動

5.1 嵌入式linux核心模組

5.1.1 嵌入式linux核心模組的概念

5.1.2 嵌入式linux核心模組編程

5.1.3 嵌入式linux核心模組的編譯

5.1.4 嵌入式linux核心模組的安裝與卸載

5.1.5 直接編譯嵌入式linux核心模組到核心

5.2 嵌入式linux字元設備驅動

5.2.1 嵌入式linux設備驅動程式的概念

5.2.2 嵌入式linux設備管理機制

5.2.3 嵌入式linux字元設備驅動程式的主要數據結構分析

5.2.4 嵌入式linux字元設備驅動的工作原理

5.2.5 嵌入式linux字元設備驅動程式設計實例

第6章 嵌入式linux系統的記憶體管理

6.1 虛擬地址和物理地址概述

6.2 虛擬地址到物理地址轉換的基本原理

6.3 基於arm s3c2440的gpio連線埠地址映射實驗

6.3.1 問題描述

6.3.2 分析與思路

6.4 linux核心中記憶體分配和釋放函式的用法

第7章 嵌入式linux設備驅動開發的核心技術

7.1 嵌入式linux中斷處理和定時器

7.1.1 嵌入式linux系統中斷服務程式的編寫

7.1.2 嵌入式linux系統硬體定時器的使用

7.1.3 中斷的下半部分

7.1.4 嵌入式linux軟體定時器的使用

7.2 嵌入式linux設備驅動程式中的並發及並發控制

7.2.1 並發的概念

7.2.2 嵌入式linux設備驅動程式中的並發控制方式

7.2.3 信號量與自旋鎖的使用場景

7.3 嵌入式linux設備驅動中的阻塞與非阻塞

7.3.1 概述

7.3.2 linux設備驅動程式中阻塞的工作原理

7.3.3 進程阻塞訪問設備的基本原理

7.3.4 linux設備驅動程式中的阻塞編程

7.4 嵌入式linux設備驅動中的異步通知編程

7.4.1 概述

7.4.2 linux異步通知工作原理

7.4.3 linux異步通知套用的編程方法

7.4.4 linux異步通知驅動的編程方法

7.5 嵌入式linux設備驅動中的輪詢操作

7.5.1 概述

7.5.2 linux設備驅動輪詢操作的工作原理及源碼分析

7.5.3 linux輪詢操作的套用層編程

7.5.4 linux輪詢操作的驅動層編程

第8章 嵌入式linux平台設備驅動程式開發

8.1 linux設備和設備驅動模型

8.1.1 linux核心中的bus(匯流排)

8.1.2 linux核心中的設備

8.1.3 linux核心中的設備驅動

8.2 linux平台設備驅動程式開發過程

8.3 嵌入式linux系統中利用mdev自動創建設備檔案節點

第9章 嵌入式linux lcd屏驅動程式設計

9.1 lcd屏的工作原理概述

9.2 lcd屏硬體原理及驅動程式設計

9.2.1 tft lcd屏的顯示原理

9.2.2 s3c2440 lcd控制器tft lcd的控制時序分析

9.2.3 s3c2440 lcd控制器顯示的數據格式

9.2.4 s3c2440 lcd控制器的顯示數據流程

9.2.5 vbpd、vfpd、vspw和hbpd、hfpd、hspw的設定

9.3 嵌入式linux lcd屏驅動程式框架

9.4 嵌入式linux lcd屏驅動源碼分析

9.4.1 s3c2410fb.c源碼分析

9.4.2 lcd屏linux驅動主要數據結構

9.4.3 probe函式處理流程及源碼分析

9.4.4 fbmem.c源碼分析

9.5 嵌入式linux lcd屏驅動的移植

第10章 嵌入式linux觸控螢幕驅動程式設計

10.1 觸控螢幕工作原理概述

10.2 s3c2440觸控螢幕接口及硬體驅動程式設計

10.2.1 s3c2440觸控螢幕控制器接口

10.2.2 s3c2440裸機下觸控螢幕控制器的接口編程

10.3 嵌入式linux觸控螢幕驅動程式框架

10.4 嵌入式linux觸控螢幕驅動的源碼分析

10.4.1 linux觸摸設備驅動的處理流程

10.4.2 觸控螢幕驅動模組的初始化函式s3c2410ts_init

10.4.3 筆針按下中斷服務處理程式stylus_updown

10.5 嵌入式linux輸入子系統的工作原理及實現機制

10.5.1 linux輸入子系統的主要數據結構與全局變數

10.5.2 輸入設備的註冊流程

10.5.3 事件處理器的註冊流程

10.5.4 輸入事件的報告流程

10.5.5 應用程式訪問輸入設備的流程

第11章 嵌入式linux mtd子系統與 flash驅動程式設計

11.1 mtd子系統概述

11.2 linux中nor flash驅動的源碼分析

11.3 mtd子系統的源碼分析

11.3.1 mtd子系統源碼組織

11.3.2 mtd子系統主要數據的結構分析

11.4 nor flash晶片手冊解讀

第12章 嵌入式linux nand flash 驅動程式設計

12.1 nand flash晶片硬體及接口介紹

12.1.1 nand flash存儲空間的組織

12.1.2 nand flash的硬體接口及讀寫操作時序

12.1.3 s3c2440對nand flash晶片的訪問

12.2 嵌入式linux下nand flash驅動分析

12.2.1 nand flash驅動源碼組織

12.2.2 nand flash驅動架構

12.2.3 nand flash相關操作流程

12.2.4 s3c24xx_nand_probe函式分析

12.3 應用程式對nand flash設備的讀/寫操作

12.3.1 mtd字元設備寫nand flash的操作分析

12.3.2 s3c2440_nand_hwcontrol函式

12.3.3 nand_command函式

第13章 嵌入式linux i2c匯流排驅動程式設計

13.1 i2c匯流排概述

13.2 s3c2440 i2c匯流排控制器的硬體工作原理

13.3 s3c2440 i2c控制器的硬體編程

13.3.1 初始化s3c2440 i2c主控制器

13.3.2 i2c匯流排寫at24c02操作

13.3.3 i2c匯流排讀at24c02操作

13.4 嵌入式linux i2c匯流排驅動架構

13.4.1 i2c體系架構的硬體實體

13.4.2 i2c驅動的軟體實體

13.5 嵌入式linux i2c匯流排驅動源碼的組織

13.6 嵌入式linux i2c匯流排控制器驅動的程式設計及源碼分析

13.6.1 i2c匯流排控制器驅動的主要數據結構

13.6.2 寫at24c02一個位元組操作

13.6.3 i2c匯流排驅動框架

13.6.4 i2c匯流排控制器設備驅動探測函式probe的工作流程

13.6.5 i2c_add_adapter處理流程分析

13.6.6 定義和實現i2c適配器的底層操作接口algorithm

13.7 嵌入式linux i2c 設備驅動程式的設計及源碼分析

13.7.1 i2c設備驅動程式框架

13.7.2 i2c_add_driver函式

13.7.3 at24c02b_probe函式

13.8 應用程式通過i2c設備驅動寫at24c02一個位元組的流程

第14章 嵌入式linux網卡驅動程式設計

14.1 概述

14.2 dm9000網路晶片與s3c2440的硬體原理圖

14.3 dm9000a網卡晶片內部暫存器的訪問

14.4 dm9000數據傳送/接收的流程

14.5 嵌入式linux dm9000網卡驅動的框架及源碼分析

14.5.1 dm9000設備

14.5.2 dm9000設備驅動

14.5.3 dm9000平台設備驅動的工作流程

14.5.4 套用層網路應用程式的操作

第15章 嵌入式linux usb設備驅動程式設計

15.1 usb通信系統概述

15.2 usb通信系統的拓撲結構圖

15.3 usb通信的分時復用技術

15.4 usb通信系統的基本概念

15.5 usb通信的數據格式

15.5.1 域

15.5.2 包

15.5.3 事務

15.5.4 傳輸

15.5.5 usb標識域(pid)

15.6 usb設備的枚舉過程

15.7 usb設備端usb通信固件的程式設計

15.7.1 usb晶片cy7c68013概述

15.7.2 ez-usb固件程式的啟動模式

15.7.3 ez-usb晶片的中斷系統

15.7.4 usb固件程式的功能

15.7.5 usb固件程式的框架及源碼分析

15.8 嵌入式linux usb驅動程式框架

15.9 嵌入式linux usb主控制器驅動的源碼分析

15.9.1 s3c2440 usb主控制器平台設備驅動的源碼分析

15.9.2 usb主機驅動枚舉usb設備的過程

15.10 嵌入式linux usb設備驅動的程式設計方法

相關詞條

熱門詞條

聯絡我們