當前位置:成語大全網 - 漢語詞典 - Linux驅動程序開發實例目錄

Linux驅動程序開發實例目錄

第1章Linux設備驅動模型1

1.1設備驅動程序基礎

概念1.1.1驅動程序1

1.1.2驅動加載模式2

1.1.3寫入可加載模塊3

1.1.4帶參數5的可加載模塊

1.1.5設備驅動程序分類6

1.2字符設備驅動原則7

1.2.1文件_操作結構7

1.2.2使用register_chrdev註冊字符。

設備9

1.2.3使用cdev_add註冊字符設備11。

1.2.4讀寫字符設備13

1.2.5 ioctl接口14

1.2.6求接口16

1.2.7投票接口18

1.2.8異步通知22

1.3處理器文件系統24

1.3.1 proc文件系統概述24

1.3.2序列文件機制25

1.3.3使用proc文件系統27

1.4設備驅動程序32

1.4.1 Linux塊設備驅動原理32

1.4.2簡單塊設備驅動程序示例35

1.5網絡設備驅動程序39

網絡設備的特殊性39

1.5.2 sk_buff結構40

1.5.3 Linux網絡設備驅動架構42

1.5.4虛擬網絡設備驅動程序示例46

1.6 Linux 2.6設備管理機制50

1 . 6 . 1k對象和kset 50

1.6.2 sysfs文件系統51

1.6.3設備型號層級52

1.6.4平臺的概念54

第二章Linux內核同步機制58

2.1鎖機制58

2.1.1旋轉鎖58

2.1.2讀寫鎖60

RCU 61

2.2相互排斥64

2.2.1原子操作64

信號量65

2.2.3讀寫信號量67

2.3等待隊列68

2.3.1等待隊列原則68

2.3.2阻塞I/O示例68

完成事件70

2.4關閉中斷71

第3章內存管理和鏈表72

3.1物理地址和虛擬地址72

3.2內存分配和釋放72

3.3 IO端口到虛擬地址的映射73

3.3.1靜態映射73

動態映射75

3.4從內核空間到用戶空間的映射76

3.4.1內核空間到用戶空間的地址

映射原則76

3.4.2 mmap地址映射示例78

3.5內核鏈表80

3.5.1 Linux內核中的Linux列表80

3.5.2內核鏈表實例81

第4章延期處理83

4.1內核線程83

4.2軟中斷機制85

4.2.1軟中斷原理85

小任務87

4.3工作隊列89

4.3.1工作隊列原則89

4.3.2工作隊列實例91

4.4核心時間92

4 . 4 . 1 Linux 92的時間概念

4 . 4 . 2 Linux 93中的延遲

4.4.3內核定時器93

第5章簡單設備驅動程序96

5.1寄存器訪問96

5.1.1 s3c 6410+00地址映射96

5.1.2 S3C6410看門狗驅動示例98

5.1.3 S3C6410蜂鳴器驅動器示例102

5.2液位控制107

5.2.1 S3C6410 LED驅動器示例107

5.2.2掃描S3C6410鍵驅動

程序示例109

5.3定時生成112

5.3.1時序圖原理112

5.3.2 AT24C02芯片原理112

5.3.3 AT24C02驅動程序開發示例115

5.4硬中斷處理123

5.4.1硬中斷處理原則123

5.4.2中斷S3C6410鍵驅動

程序示例127

5.5 Linux I/O端口控制132

5.5.1 Linux I/O端口132

5.5.2在應用層訪問Linux I/O。

端口133

5 . 5 . 3/開發/端口設備134

第6章深入到Linux內核135。

6.1嵌入式Linux系統組成135

6.2 Linux內核指南136

6.2.1 Linux內核由136組成

6 . 2 . 2 Linux 137代碼結構

6.2.3內核生成文件138

6 . 2 . 4 s3c 6410硬件初始化139

6.3 Linux文件系統141

6.3.1虛擬文件系統141

6.3.2根文件系統143

文件系統加載143

6.3.4 ext3文件系統145

6.4閃存文件系統145

6.4.1 MTD設備145

6.4.2 MTD字符設備148

6.4.3 MTD閉塞設備150

6.4.4 cramfs文件系統153

6.4.5 JFFS2文件系統153

6.4.6 YAFFS文件系統155

6.4.7文件系統摘要156

6.5 Linux內核移植156

6.5.1系統配置156

6.5.2添加yaffs2 157。

6.5.3 Nand閃存驅動程序移植157

6.5.4配置啟動參數159。

6.5.5移植RTC驅動程序160

6.6根文件系統制作162

6.6.1忙碌盒162

殼牌基礎165

6.6.3根文件系統構建實例166

6.7 udev型號167

6.7.1 udev模型原理167

6 . 7 . 2 MDEV mdev 167

第七章I2C公交車司機169

7.1 Linux 169的I2C驅動架構

7.1.1 I2C適配器169

7.1.2 I2C算法170

7.1.3 I2C驅動結構170

7.1.4 I2C奴隸171

7.1.5 i2c-dev設備層171

7.2 Linux I2C驅動程序開發174

7.2.1 S3C2410X I2C控制器174

7 . 2 . 2 s3c 2410x的I2C驅動程序

分析175

7.3 I2C接入S3C2410 182的例子

7.4 I2C客戶端驅動程序185

第八章TTY和串口驅動190

8.1 TTY概念190

8.2 Linux TTY驅動系統190

8.2.1 TTY司機呼叫關系190

8.2.2 TTY司機原理191

8.3線規194

8.4串行驅動器和TTY 196

8.4.1串行設備驅動原理196

8 . 4 . 2 s3c 6410的串行驅動器

示例199

8.5 TTY應用層202

第九章網絡設備驅動205

9.1 DM9000網卡驅動程序

發展205

9.1.1 DM9000原則205

9.1.2 DM9000X驅動程序分析207

9.1.3 DM9000端口驅動程序移植215

9.2 NFS根文件系統219

9.2.1主機配置219

9.2.2 NFS根文件系統構建示例220

9.3 netlink插座224

9.3.1網絡鏈接機制224

9.3.2 netlink應用程序編程228

9.3.3 netlink驅動程序實例229

第10章幀緩沖驅動程序232

10.1 Linux幀緩沖驅動程序

程序原則232

10.1.1幀緩沖區核心數據結構232

10.1.2幀緩沖區操作接口234

10.1.3幀緩沖區驅動程序的文件

接口236

10.1.4幀緩沖區驅動程序幀236

10.2 S3C6410顯示控制器238

10.3 S3C6410 LCD驅動示例243

10.4幀緩沖應用層250

10.5 Qt4接口系統移植251

第11章輸入子系統驅動程序253

11.1 Linux輸入子系統概述253

11.1.1輸入_開發結構253

11.1.2輸入事件255

11.2輸入處理程序256

11 . 2 . 1輸入句柄層256

11.2.2常用輸入處理程序259

11.3輸入設備應用層261

11.4鍵盤輸入設備驅動程序

實施例262

11.5事件接口267

11.6觸摸屏驅動程序示例270

11 . 6 . 1s3c 6410觸摸屏控制器270

11 . 6 . 2 s3c 6410觸摸屏驅動

設計273

11.7觸摸屏校準282

11.7.1觸摸屏校準原理282

11.7.2使用TSLIB庫校準觸摸屏282

第12章USB驅動程序284

12.1 USB系統概述284

12.1.1 USB系統組成284

12.1.2 USB主機284

12.1.3 USB設備邏輯層次結構285

12.2 Linux USB驅動程序系統287

1 USB 287的整體結構

12.2.2 USB設備驅動287

12.2.3主機控制器驅動器288

12.2.4 USB請求塊urb 289

12 . 2 . 5 USB請求塊的填充291

12.3 S3C6410 USB主機控制器

司機292

12.3.1 USB主機控制器驅動器

分析292

12.3.2 S3C6410 USB驅動程序

負載294

12.4 USB鍵盤設備驅動程序

分析296

12.5 USB小工具驅動程序301

12.5.1Linux USB小工具驅動程序301

12.5.2 Linux USB小工具驅動程序

示例302

第13章音頻設備驅動303

13.1 ALSA音響系統303

13.2 ALSA驅動層API 304

13 . 2 . 1聲卡和設備管理

13.2.2 PCM API 304

13.2.3控制和混合API 305

13.2.4 AC97 API 306

13.2.5 SOC層驅動307

13.3 ALSA驅動程序實例308

AC97控制13 . 3 . 1s3c 6410

第三百零八單元

13.3.2 S3C6410聲卡電路原理309

13 . 3 . 3 s3c 6410 310的數字音頻接口

13 . 3 . 4 WM 9713 313的數字音頻接口

13.4 ALSA音頻編程接口316

13.4.1 ALSA PCM接口示例316

13.4.2 ALSAMDI接口實例320

13.4.3 ALSA混音器接口實例321

13.4.4 ALSA計時器接口實例322

第14章視頻4linux2視頻

司機327

14.1視頻4linux2驅動程序

建築327

14.1.1視頻4Linux 2驅動程序

註冊327

14.1.2 v4l2_fops接口331

14.1.3普通結構332

14.1.4 video 4 Linux 2333的Ioctl函數

14.2 S3C6410攝像頭驅動程序

分析333

14.2.1 333電路原理

驅動因素分析334

14.3 video4linux2應用層實例339

第15章SD卡驅動346

15.1 Linux SD卡驅動系統346

15.1.1 SD卡電路原理3446

15.1.2 MMC卡驅動程序架構347

15.1.3 MMC卡驅動相關

結構347

15.1.4 MMC卡塊設備驅動程序350

15.1.5 SD卡主機控制器接口驅動

程序356

15.2 S3C6410 SD卡控制器驅動程序

程序分析360

15.2.1電路原理360

15.2.2 S3C6410 SDHCI驅動程序

程序原理360

15 . 2 . 3sd卡364加載示例

參考文獻366