注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)計(jì)算機(jī)組織與體系結(jié)構(gòu)嵌入式Linux高級(jí)驅(qū)動(dòng)教程

嵌入式Linux高級(jí)驅(qū)動(dòng)教程

嵌入式Linux高級(jí)驅(qū)動(dòng)教程

定 價(jià):¥88.00

作 者: 陳志發(fā),周中孝,李志超 著; 深圳信盈達(dá)電子有限公司 編
出版社: 電子工業(yè)出版社
叢編項(xiàng): 信盈達(dá)技術(shù)創(chuàng)新系列圖書(shū)
標(biāo) 簽: LINUX 操作系統(tǒng)/系統(tǒng)開(kāi)發(fā) 計(jì)算機(jī)/網(wǎng)絡(luò)

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787121230264 出版時(shí)間: 2014-09-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 604 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)涉及嵌入式Linux系統(tǒng)設(shè)備驅(qū)動(dòng)開(kāi)發(fā)的各個(gè)環(huán)節(jié)。全書(shū)共21章,內(nèi)容包括:Linux系統(tǒng)基本操作,嵌入式Linux開(kāi)發(fā)環(huán)境的搭建,Linux設(shè)備驅(qū)動(dòng)的概念,Linux內(nèi)核模塊編程,字符設(shè)備驅(qū)動(dòng)(含LED驅(qū)動(dòng))的開(kāi)發(fā)及完善,內(nèi)核同步機(jī)制,中斷驅(qū)動(dòng),內(nèi)核工作隊(duì)列,內(nèi)核定時(shí)器,平臺(tái)設(shè)備、LCD設(shè)備、Linux觸摸屏和溫度傳感器的驅(qū)動(dòng),以及Linux內(nèi)核各子系統(tǒng)(clock子系統(tǒng)、輸入子系統(tǒng)、IIC子系統(tǒng)、SPI子系統(tǒng)和MTD子系統(tǒng))的介紹。本書(shū)由深圳信盈達(dá)嵌入式學(xué)院的嵌入式開(kāi)發(fā)工程師編寫(xiě),并配備了相關(guān)的實(shí)驗(yàn)和完整的驅(qū)動(dòng)程序代碼及測(cè)試應(yīng)用程序代碼。

作者簡(jiǎn)介

  深圳信盈達(dá)電子有限公司、是一家專注于單片機(jī)、ARM、嵌入式產(chǎn)品開(kāi)發(fā)和技術(shù)培訓(xùn)的高新技術(shù)服務(wù)企業(yè),公司下設(shè)開(kāi)發(fā)部和技術(shù)培訓(xùn)部。公司開(kāi)發(fā)部為國(guó)內(nèi)外眾多客戶開(kāi)發(fā)多款基于嵌入式單片機(jī)、ARM等技術(shù)的整套方案和高性能產(chǎn)品,技術(shù)培訓(xùn)部提供優(yōu)秀的單片機(jī)、ARM、嵌入式產(chǎn)品開(kāi)發(fā)工程師培訓(xùn)。同時(shí)為眾多工程師,各大師專院校提供實(shí)驗(yàn)器材及技術(shù)培訓(xùn)課程!

圖書(shū)目錄

第1章 Linux基礎(chǔ)知識(shí) 1
1.1 Linux歷史介紹 1
1.2 Linux 常用命令 1
1.2.1 文件管理命令 1
1.2.2 磁盤(pán)相關(guān)命令(fdisk) 9
1.2.3 文檔編輯命令 10
1.2.4 文件傳輸命令 11
1.2.5 磁盤(pán)維護(hù)命令 12
1.2.6 系統(tǒng)設(shè)置命令 12
1.2.7 備份壓縮命令 13
1.3 Linux環(huán)境編程入門(mén) 14
1.3.1 GCC介紹 14
1.3.2 GNU Make 基本語(yǔ)法 15
1.3.3 Makefile 通用模塊 20
1.4 Linux內(nèi)核版本 21
1.5 Linux內(nèi)核開(kāi)發(fā)者社區(qū) 22
1.6 shell 編程入門(mén) 22
1.6.1 shell里的流程控制 26
1.6.2 Here Documents 31
1.6.3 shell里的函數(shù) 32
1.6.4 命令行參數(shù) 33
1.6.5 shell腳本示例 33
1.6.6 腳本調(diào)試 34
1.7 vim編輯器 35
1.7.1 模式 35
1.7.2 常用命令 36
1.7.3 配置文件 38
第2章 嵌入式Linux驅(qū)動(dòng)開(kāi)發(fā)環(huán)境搭建 40
2.1 引言 40
2.2 交叉編譯器 42
2.2.1 交叉編譯器概念 42
2.2.2 交叉編譯器獲取 42
2.2.3 交叉編譯器安裝 42
2.2.4 交叉編譯器使用 43
2.3 嵌入式開(kāi)發(fā)串口終端 44
2.3.1 串口終端用途介紹 44
2.3.2 Windows下超級(jí)終端介紹 45
2.3.3 Linux下Minicom 串口終端介紹 46
2.4 嵌入式開(kāi)發(fā)相關(guān)下載工具 50
2.4.1 Windows下TFTP下載軟件 50
2.4.2 Linux下TFTP服務(wù) 50
2.4.3 Linux 下NFS服務(wù)器 51
2.5 啟動(dòng)加載程序的使用和移植 52
2.5.1 u-boot常用命令 52
2.5.2 u-boot常用環(huán)境變量介紹 53
2.5.3 u-boot移植到mini2440方法 53
2.6 為mini2440編譯內(nèi)核 56
2.7 根文件系統(tǒng)制作 56
2.7.1 根文件系統(tǒng)的作用 56
2.7.2 根文件系統(tǒng)的制作步驟 57
2.8 J-Link仿真器使用 59
2.8.1 J-Link功能簡(jiǎn)介 59
2.8.2 J-Link功能配置及使用范例 60
第3章 Linux設(shè)備驅(qū)動(dòng)簡(jiǎn)介 63
3.1 Linux設(shè)備驅(qū)動(dòng)概述 63
3.2 Linux內(nèi)核結(jié)構(gòu) 63
3.2.1 Linux內(nèi)核空間劃分 63
3.2.2 Linux用戶空間 64
3.2.3 Linux內(nèi)核空間 64
3.2.4 用戶態(tài)和內(nèi)核態(tài) 64
3.2.5 進(jìn)程上下文和中斷上下文 64
3.3 Linux設(shè)備驅(qū)動(dòng)特點(diǎn) 65
3.3.1 設(shè)備分類 65
3.3.2 設(shè)備號(hào) 65
3.3.3 模塊和設(shè)備驅(qū)動(dòng)關(guān)系 66
3.4 內(nèi)核模塊的主要相關(guān)命令 66
3.5 內(nèi)核驅(qū)動(dòng)信息打印―printk 67
第4章 Linux內(nèi)核模塊編程 71
4.1 認(rèn)識(shí)Linux模塊 71
4.1.1 一個(gè)最簡(jiǎn)單的Linux內(nèi)核模塊 71
4.1.2 Linux內(nèi)核模塊程序結(jié)構(gòu) 74
4.1.3 helloworld.c模塊Makefile 文件編寫(xiě) 76
4.1.4 helloworld模塊編譯 76
4.2 模塊編程形式2:多模塊――模塊間有依賴關(guān)系 76
4.2.1 模塊符號(hào)導(dǎo)出 76
4.2.2 多模塊C代碼編程示例 77
4.2.3 多模塊Makefile編譯編程示例 78
4.2.4 編譯和測(cè)試模塊 78
4.2.5 多模塊編程總結(jié) 79
4.3 模塊編程形式3:模塊傳遞參數(shù) 79
4.3.1 模塊傳遞參數(shù)關(guān)鍵宏定義 79
4.3.2 module_param () 介紹 79
4.3.3 模塊傳遞參數(shù)示例C代碼 81
4.3.4 模塊傳遞參數(shù)示例Makefile 82
4.3.5 編譯和測(cè)試模塊傳遞參數(shù)功能 82
4.3.6 模塊傳遞參數(shù)功能總結(jié) 83
4.4 模塊編程形式4:多個(gè)C文件編譯為一個(gè)模塊 84
4.4.1 多個(gè)C文件模塊示例C代碼 84
4.4.2 多個(gè)C文件模塊示例Makefile代碼 85
4.4.3 編譯和測(cè)試模塊 85
4.4.4 多個(gè)C文件模塊編程總結(jié) 86
第5章 字符設(shè)備驅(qū)動(dòng)開(kāi)發(fā) 87
5.1 Linux設(shè)備驅(qū)動(dòng)特點(diǎn) 87
5.1.1 Linux系統(tǒng)3大類設(shè)備特點(diǎn) 87
5.1.2 Linux內(nèi)核框架 88
5.1.3 字符設(shè)備的幾種編程模型 89
5.2 字符設(shè)備相關(guān)重要結(jié)構(gòu) 89
5.2.1 struct file_operaions結(jié)構(gòu) 89
5.2.2 struct inode結(jié)構(gòu) 92
5.2.3 struct file結(jié)構(gòu) 96
5.3 雜項(xiàng)設(shè)備驅(qū)動(dòng)模板 97
5.3.1 雜項(xiàng)設(shè)備注冊(cè)和注銷 98
5.3.2 雜項(xiàng)設(shè)備驅(qū)動(dòng)測(cè)試 99
5.3.3 雜項(xiàng)設(shè)備驅(qū)動(dòng)模型示例 101
5.4 早期標(biāo)準(zhǔn)字符設(shè)備驅(qū)動(dòng)模板 105
5.4.1 早期標(biāo)準(zhǔn)字符設(shè)備驅(qū)動(dòng)注冊(cè)和注銷 105
5.4.2 早期標(biāo)準(zhǔn)字符設(shè)備驅(qū)動(dòng)模型示例 106
5.4.3 早期標(biāo)準(zhǔn)字符設(shè)備驅(qū)動(dòng)模型測(cè)試 109
5.5 Linux 2.6標(biāo)準(zhǔn)字符設(shè)備驅(qū)動(dòng)模型 112
5.5.1 Linux 2.6標(biāo)準(zhǔn)字符設(shè)備驅(qū)動(dòng)核心結(jié)構(gòu):struct cdev 112
5.5.2 Linux 2.6標(biāo)準(zhǔn)字符設(shè)備驅(qū)動(dòng)設(shè)備號(hào) 112
5.5.3 Linux 2.6標(biāo)準(zhǔn)字符設(shè)備驅(qū)動(dòng)相關(guān)API函數(shù) 113
5.5.4 Linux 2.6標(biāo)準(zhǔn)字符設(shè)備驅(qū)動(dòng)編寫(xiě)流程 115
5.5.5 Linux 2.6標(biāo)準(zhǔn)字符設(shè)備驅(qū)動(dòng)模型示例 115
5.5.6 Linux 2.6標(biāo)準(zhǔn)字符設(shè)備驅(qū)動(dòng)程序測(cè)試 120
5.6 字符設(shè)備驅(qū)動(dòng)模型小結(jié) 122
5.7 早期字符設(shè)備驅(qū)動(dòng)自動(dòng)生成設(shè)備節(jié)點(diǎn)文件 123
5.7.1 mdev的介紹及使用方法 123
5.7.2 相關(guān)數(shù)據(jù)結(jié)構(gòu)、函數(shù)介紹 124
5.7.3 自動(dòng)創(chuàng)建設(shè)備文件范例 126
5.7.4 自動(dòng)創(chuàng)建設(shè)備文件小結(jié) 133
第6章 字符設(shè)備LED驅(qū)動(dòng) 135
6.1 LED硬件原理圖 135
6.2 LED點(diǎn)燈原理分析 135
6.3 字符設(shè)備驅(qū)動(dòng)open接口 136
6.3.1 open接口參數(shù) 136
6.3.2 open 接口函數(shù)框架 136
6.4 release接口函數(shù) 137
6.4.1 release 接口函數(shù)的作用 137
6.4.2 release接口函數(shù)框架 137
6.5 字符設(shè)備驅(qū)動(dòng)write接口 137
6.5.1 write接口參數(shù)說(shuō)明 137
6.5.2 與write接口代碼相關(guān)的常用API 138
6.5.3 write 接口函數(shù)框架 138
6.6 字符設(shè)備驅(qū)動(dòng)read接口 139
6.6.1 read接口參數(shù) 139
6.6.2 與read接口代碼相關(guān)的常用API 139
6.6.3 read 接口函數(shù)框架 139
6.7 llseek接口實(shí)現(xiàn) 140
6.7.1 llseek接口參數(shù) 140
6.7.2 llsek接口函數(shù)框架 140
6.7.3 重寫(xiě)能與llseek配套的write函數(shù)框架 141
6.7.4 重寫(xiě)能與llseek配套的read函數(shù)框架 142
6.8 LED驅(qū)動(dòng)程序示例 143
6.8.1 LED驅(qū)動(dòng)程序要使用到的核心函數(shù) 143
6.8.2 LED驅(qū)動(dòng)程序示例 143
6.9 ioctl控制接口 154
6.9.1 用戶空間ioctl系統(tǒng)調(diào)用 154
6.9.2 內(nèi)核空間驅(qū)動(dòng)ioctl的方法 154
6.9.3 ioctl接口函數(shù)框架示例 156
6.9.4 LED驅(qū)動(dòng)添加標(biāo)準(zhǔn)ioctl接口控制LED的范例 158
第7章 內(nèi)核同步機(jī)制 172
7.1 引言 172
7.2 原子操作 172
7.2.1 原子操作概念 172
7.2.2 原子操作相關(guān)API 173
7.2.3 簡(jiǎn)單原子操作使用例子 176
7.3 信號(hào)量 181
7.3.1 信號(hào)量概念 181
7.3.2 信號(hào)量相關(guān)API 181
7.3.3 簡(jiǎn)單信號(hào)量使用例子 183
7.4 讀寫(xiě)信號(hào)量(rw_semaphore) 188
7.4.1 讀寫(xiě)信號(hào)量概念 188
7.4.2 讀寫(xiě)信號(hào)量相關(guān)API 189
7.5 自旋鎖 191
7.5.1 自旋鎖概念 192
7.5.2 自旋鎖相關(guān)API 192
7.5.3 自旋鎖使用方法小結(jié) 197
第8章 LED驅(qū)動(dòng)完善―添加同步機(jī)制代碼 199
8.1 信號(hào)量實(shí)現(xiàn)LED設(shè)備獨(dú)占 199
8.1.1 添加互斥量代碼實(shí)現(xiàn)獨(dú)占功能示例 199
8.1.2 應(yīng)用程序測(cè)試信號(hào)量獨(dú)占功能 205
8.2 原子操作實(shí)現(xiàn)LED設(shè)備獨(dú)占 206
8.2.1 原子操作代碼實(shí)現(xiàn)獨(dú)占功能示例 206
8.2.2 測(cè)試應(yīng)用程序:原子操作獨(dú)占功能 213
8.3 自旋鎖實(shí)現(xiàn)LED設(shè)備并發(fā)控制 214
8.3.1 SMP并發(fā)分析 214
8.3.2 自旋鎖代碼實(shí)現(xiàn)設(shè)備并發(fā)控制功能示例 215
8.3.3 應(yīng)用程序測(cè)試自旋鎖并發(fā)控制功能 221
8.4 等待隊(duì)列 222
8.4.1 為什么要使用等待隊(duì)列 222
8.4.2 等待隊(duì)列頭數(shù)據(jù)結(jié)構(gòu) 222
8.4.3 等待隊(duì)列的睡眠過(guò)程 222
8.4.4 等待隊(duì)列的喚醒過(guò)程 225
8.4.5 等待隊(duì)列API 227
8.5 各種同步機(jī)制的比較 231
第9章 Linux中斷驅(qū)動(dòng)程序 232
9.1 什么是中斷 232
9.2 Linux 2.6 中斷處理原理 232
9.3 Linux中斷處理程序架構(gòu) 235
9.3.1 底半部實(shí)現(xiàn)方法之一:tasklet 235
9.3.2 底半部實(shí)現(xiàn)方法之二:工作隊(duì)列 239
9.4 Linux 2.6 中斷API 244
9.4.1 注冊(cè)中斷 244
9.4.2 注銷中斷 245
9.4.3 禁止中斷 246
9.4.4 使能中斷 246
9.4.5 共享中斷 247
9.5 按鍵設(shè)備驅(qū)動(dòng)程序 247
9.5.1 開(kāi)發(fā)板按鍵硬件原理圖 247
9.5.2 軟件設(shè)計(jì)程序分析 247
9.5.3 按鍵驅(qū)動(dòng)程序代碼示例 248
9.5.4 按鍵驅(qū)動(dòng)應(yīng)用程序測(cè)試結(jié)果 258
9.6 非阻塞I/O和阻塞I/O 261
9.6.1 概念 261
9.6.2 如何在設(shè)備驅(qū)動(dòng)實(shí)現(xiàn)阻塞功能 261
9.6.3 驅(qū)動(dòng)阻塞和非阻塞模板 262
9.7 按鍵驅(qū)動(dòng)程序完善:新增加poll接口 263
9.7.1 鍵驅(qū)動(dòng)程序poll接口示例代碼清單 263
9.7.2 poll接口應(yīng)用程序編寫(xiě) 273
9.7.3 測(cè)試結(jié)果及分析 276
第10章 內(nèi)核工作隊(duì)列 281
10.1 內(nèi)核工作隊(duì)列概述 281
10.2 Linux workqueue工作原理 281
10.2.1 數(shù)據(jù)結(jié)構(gòu)work_struct 282
10.2.2 數(shù)據(jù)結(jié)構(gòu)workqueue_struct 282
10.2.3 數(shù)據(jù)結(jié)構(gòu)cpu_workqueue_struct 283
10.2.4 workqueue原理分析 283
10.3 Linux內(nèi)核共享工作隊(duì)列 284
10.3.1 共享工作隊(duì)列介紹 284
10.3.2 內(nèi)核共享工作隊(duì)列API 284
10.3.3 內(nèi)核共享工作隊(duì)列使用步驟 285
10.3.4 內(nèi)核共享工作隊(duì)列示例 286
10.3.5 內(nèi)核共享工作隊(duì)列測(cè)試及結(jié)果分析 287
10.4 自定義內(nèi)核工作隊(duì)列 288
10.4.1 創(chuàng)建工作隊(duì)列 288
10.4.2 調(diào)度工作隊(duì)列 288
10.4.3 銷毀工作隊(duì)列 289
10.4.4 自定義工作隊(duì)列示例 289
10.4.5 自定義工作隊(duì)列測(cè)試及結(jié)果分析 292
10.5 延時(shí)工作隊(duì)列 292
10.5.1 延時(shí)工作隊(duì)列介紹 292
10.5.2 延時(shí)工作隊(duì)列數(shù)據(jù)結(jié)構(gòu)和核心API 293
10.5.3 延時(shí)工作隊(duì)列示例 294
10.5.4 延時(shí)工作隊(duì)列測(cè)試及結(jié)果分析 296
10.6 內(nèi)核微線程tasklet 296
10.6.1 內(nèi)核微線程簡(jiǎn)介 296
10.6.2 tasklet的創(chuàng)建及enable/disable函數(shù) 297
10.6.3 tasklet調(diào)度函數(shù) 298
10.6.4 微線程kill函數(shù) 299
10.6.5 tasklet微線程的編程步驟 300
10.6.6 tasklet的簡(jiǎn)單示例 301
10.6.7 微線程的簡(jiǎn)單示例測(cè)試及結(jié)果分析 302
10.7 按鍵設(shè)備驅(qū)動(dòng)程序改進(jìn)――使用延時(shí)工作隊(duì)列實(shí)現(xiàn)消抖 303
10.7.1 按鍵抖動(dòng)機(jī)械特性分析 303
10.7.2 軟件設(shè)備框架分析 304
10.7.3 增加延時(shí)工作隊(duì)列機(jī)制的按鍵驅(qū)動(dòng)代碼示例 304
10.7.4 添加延時(shí)工作隊(duì)列機(jī)制的按鍵驅(qū)動(dòng)程序測(cè)試及結(jié)果分析 315
第11章 內(nèi)核定時(shí)器 317
11.1 內(nèi)核定時(shí)器概述 317
11.2 相關(guān)數(shù)據(jù)結(jié)構(gòu) 317
11.3 內(nèi)核定時(shí)器函數(shù) 318
11.3.1 靜態(tài)定義并初始化定時(shí)器API 318
11.3.2 定時(shí)器初始化 318
11.3.3 向內(nèi)核添加定時(shí)器 319
11.3.4 定時(shí)器時(shí)間修改 319
11.3.5 定時(shí)器取消 320
11.3.6 定時(shí)情況查詢 320
11.4 定時(shí)器編程步驟 320
11.5 內(nèi)核定時(shí)器編程簡(jiǎn)單示例 321
11.5.1 內(nèi)核定時(shí)器示例代碼 321
11.5.2 內(nèi)核定時(shí)示例代碼測(cè)試結(jié)果分析 322
11.6 按鍵設(shè)備驅(qū)動(dòng)程序改進(jìn)―使用內(nèi)核定時(shí)器實(shí)現(xiàn)消抖 323
11.6.1 修改按鍵驅(qū)動(dòng)代碼 323
11.6.2 改進(jìn)版本的按鍵驅(qū)動(dòng)程序測(cè)試及結(jié)果分析 335
第12章 平臺(tái)設(shè)備驅(qū)動(dòng)模型 337
12.1 平臺(tái)設(shè)備和驅(qū)動(dòng)初識(shí) 337
12.1.1 總線驅(qū)動(dòng)模型簡(jiǎn)介 337
12.1.2 平臺(tái)總線驅(qū)動(dòng)模型特點(diǎn) 337
12.2 平臺(tái)設(shè)備驅(qū)動(dòng)模型分層 337
12.2.1 platform 設(shè)備層編程 337
12.2.2 設(shè)備層核心數(shù)據(jù)結(jié)構(gòu) 338
12.2.3 platform 設(shè)備層API 339
12.2.4 platform驅(qū)動(dòng)層編程 340
12.2.5 平臺(tái)驅(qū)動(dòng)層核心數(shù)據(jù)結(jié)構(gòu) 341
12.2.6 platform 驅(qū)動(dòng)層核心API 342
12.3 基于平臺(tái)模型的LED設(shè)備驅(qū)動(dòng) 343
12.3.1 平臺(tái)模型LED驅(qū)動(dòng)軟件框架分析 343
12.3.2 平臺(tái)模型LED驅(qū)動(dòng)層編程 344
12.3.3 平臺(tái)模型設(shè)備層編程 346
12.3.4 平臺(tái)模型LED驅(qū)動(dòng)測(cè)試結(jié)果分析 353
第13章 LCD設(shè)備驅(qū)動(dòng) 355
13.1 FrameBuffer 的原理 355
13.2 FrameBuffer在Linux中的實(shí)現(xiàn)和機(jī)制 355
13.3 內(nèi)核自帶s3c2440 LCD驅(qū)動(dòng)移植 356
13.3.1 LCD硬件資源分析 356
13.3.2 LCD工作時(shí)序參數(shù)分析 357
13.3.3 驅(qū)動(dòng)探測(cè)函數(shù)簡(jiǎn)要分析 360
13.3.4 LCD驅(qū)動(dòng)平臺(tái)數(shù)據(jù)結(jié)構(gòu) 360
13.3.5 LCD驅(qū)動(dòng)平臺(tái)資源分析 363
13.3.6 LCD設(shè)備驅(qū)動(dòng)設(shè)備層編程 364
13.4 LCD設(shè)備驅(qū)動(dòng)分析 365
13.4.1 LCD設(shè)備驅(qū)動(dòng)核心結(jié)構(gòu)struct fb_info 366
13.4.2 LCD設(shè)備驅(qū)動(dòng)可變參數(shù)結(jié)構(gòu)struct fb_var_screeninfo 367
13.4.3 LCD設(shè)備驅(qū)動(dòng)固定參數(shù)結(jié)構(gòu)struct fb_fix_screeninfo 368
13.4.4 LCD設(shè)備驅(qū)動(dòng)硬件操作方法結(jié)構(gòu)struct fb_ops 369
13.4.5 LCD設(shè)備驅(qū)動(dòng)probe函數(shù)分析 371
13.4.6 LCD設(shè)備驅(qū)動(dòng)remove函數(shù)分析 384
13.4.7 LCD設(shè)備驅(qū)動(dòng)suspend函數(shù)分析 385
13.4.8 LCD設(shè)備驅(qū)動(dòng)resume函數(shù)分析 385
13.4.9 LCD硬件操作函數(shù)結(jié)構(gòu)struct fb_ops *fbop分析 386
13.5 LCD應(yīng)用程序編程示例 391
13.5.1 LCD顯示漢字示例代碼 391
13.5.2 LCD顯示BMP圖片示例代碼 399
第14章 Linux下clock子系統(tǒng) 407
14.1 clk時(shí)鐘管理概念 407
14.2 核心數(shù)據(jù)結(jié)構(gòu)struct clk 407
14.3 clocks鏈表 408
14.4 clk平臺(tái)通用操作 408
14.5 clk與pm(電源管理) 409
14.6 clk時(shí)鐘系統(tǒng)實(shí)現(xiàn)原理 409
14.7 clk時(shí)鐘系統(tǒng)的應(yīng)用 409
第15章 Linux輸入子系統(tǒng) 413
15.1 輸入子系統(tǒng)概述 413
15.2 輸入子系統(tǒng)的結(jié)構(gòu) 413
15.3 Linux中輸入設(shè)備驅(qū)動(dòng)的分層 414
15.4 關(guān)鍵結(jié)構(gòu)體 414
15.5 軟件設(shè)計(jì)流程 418
15.6 常用相關(guān)API 418
15.7 使用輸入子系統(tǒng)的例子 420
15.8 小結(jié) 424
第16章 Linux觸摸屏驅(qū)動(dòng) 425
16.1 電阻式觸摸屏工作原理 425
16.2 s3c2440中的觸摸屏接口 425
16.3 mini2440的觸摸屏驅(qū)動(dòng) 426
16.3.1 初始化 431
16.3.2 中斷處理 433
16.3.3 測(cè)試與校準(zhǔn) 434
16.4 觸摸屏驅(qū)動(dòng)總結(jié) 436
第17章 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng) 437
17.1 網(wǎng)絡(luò)設(shè)備概述 437
17.2 DM9000芯片工作原理介紹 438
17.2.1 DM9000功能介紹 438
17.2.2 DM9000結(jié)構(gòu)框圖 438
17.3 DM9000的引腳 438
17.4 DM9000的寄存器 442
17.5 DM9000內(nèi)部寄存器訪問(wèn)方式 452
17.6 DM9000 編程操作步驟 453
17.7 mini2440 開(kāi)發(fā)板DM9000硬件連接圖分析 454
17.8 DM9000 Linux驅(qū)動(dòng)移植 456
17.8.1 DM9000設(shè)備模型分析 456
17.8.2 DM9000探測(cè)函數(shù)簡(jiǎn)要分析 456
17.8.3 DM9000 平臺(tái)的資源分析 457
17.8.4 DM9000平臺(tái)的數(shù)據(jù)分析 458
17.8.5 移植DM9000平臺(tái)設(shè)備層代碼的編寫(xiě) 460
17.9 DM9000 Linux驅(qū)動(dòng)源碼分析 461
17.9.1 數(shù)據(jù)結(jié)構(gòu) struct net_device 461
17.9.2 數(shù)據(jù)結(jié)構(gòu)struct net_device_ops 462
17.9.3 數(shù)據(jù)結(jié)構(gòu) struct sk_buff 463
17.9.4 私有數(shù)據(jù)結(jié)構(gòu) struct board_info 465
17.9.5 DM9000使用到的核心API 466
17.10 DM9000驅(qū)動(dòng)模塊入口函數(shù)分析 476
17.11 DM9000探測(cè)函數(shù)代碼分析 477
17.12 DM9000網(wǎng)卡硬件操作函數(shù)struct net_device_ops重要成員分析 486
17.12.1 網(wǎng)絡(luò)設(shè)備打開(kāi)函數(shù)ndo_open接口 486
17.12.2 網(wǎng)絡(luò)設(shè)備關(guān)閉函數(shù)ndo_stop接口 490
17.12.3 網(wǎng)絡(luò)設(shè)備發(fā)送函數(shù)ndo_start_xmit接口 491
17.12.4 網(wǎng)絡(luò)設(shè)備超時(shí)處理函數(shù)ndo_tx_timeout接口 498
17.13 接收過(guò)程詳細(xì)分析 499
17.13.1 DM9000接收中斷代碼分析 499
17.13.2 DM9000讀數(shù)據(jù)包及提交數(shù)據(jù)包到上層函數(shù)分析 500
第18章 Linux I2C子系統(tǒng) 507
18.1 IIC總線知識(shí) 507
18.2 IIC子系統(tǒng)體系結(jié)構(gòu) 510
18.3 IIC相關(guān)的重要數(shù)據(jù)結(jié)構(gòu) 510
18.4 IIC核心層 513
18.5 i2c_add_driver分析 515
18.6 IIC設(shè)備驅(qū)動(dòng)示例 518
18.6.1 設(shè)備驅(qū)動(dòng)程序 518
18.6.2 應(yīng)用程序編程 522
18.7 IIC總線驅(qū)動(dòng)分析 524
18.7.1 適配器驅(qū)動(dòng) 524
18.7.2 適配器平臺(tái)資源 531
18.8 IIC子系統(tǒng)總結(jié) 531
第19章 Linux SPI子系統(tǒng) 532
19.1 SPI子系統(tǒng)概述 532
19.2 SPI子系統(tǒng)框圖詳解 532
19.3 SPI相關(guān)的數(shù)據(jù)結(jié)構(gòu) 533
19.4 SPI核心代碼的初始化分析 535
19.5 SPI設(shè)備文件自動(dòng)產(chǎn)生代碼的分析 536
19.6 SPI子系統(tǒng)核心API 537
19.7 SPI設(shè)備驅(qū)動(dòng)范例 539
19.7.1 SPI設(shè)備驅(qū)動(dòng)程序編程 539
19.7.2 SPI應(yīng)用程序編程 544
19.8 SPI總線驅(qū)動(dòng)分析 546
19.9 SPI子系統(tǒng)總結(jié) 549
第20章 單總線協(xié)議―DS18B20溫度傳感器驅(qū)動(dòng) 550
20.1 DS18B20介紹 550
20.2 DS18B20的特點(diǎn) 550
20.3 DS18B20的內(nèi)部結(jié)構(gòu) 550
20.4 DS18B20指令碼 553
20.5 DS18B20時(shí)序 554
20.5.1 復(fù)位時(shí)序 554
20.5.2 寫(xiě)時(shí)序 555
20.5.3 讀時(shí)序 555
20.6 DS18B20操作流程 556
20.7 DS18B20與單片機(jī)的典型接口設(shè)計(jì) 556
20.8 DS18B20的精確延時(shí)問(wèn)題 557
20.9 基于MS51單片機(jī)的裸機(jī)DS18B20 驅(qū)動(dòng)程序 557
20.10 Linux 系統(tǒng)下的DS18B20溫度傳感器驅(qū)動(dòng) 561
20.10.1 內(nèi)核自帶DS18B20溫度傳感器驅(qū)動(dòng)簡(jiǎn)要說(shuō)明 562
20.10.2 通過(guò)內(nèi)核配置菜單配置DS18B20驅(qū)動(dòng) 562
20.10.3 注冊(cè)DS18B20驅(qū)動(dòng)的設(shè)備層 563
第21章 Linux MTD子系統(tǒng) 567
21.1 Linux MTD子系統(tǒng)介紹 567
21.2 MTD子系統(tǒng)相關(guān)核心結(jié)構(gòu) 569
21.3 Nand Flash硬件操作介紹 572
21.3.1 Nand Flash工作原理 572
21.3.2 Nand Flash 數(shù)據(jù)存儲(chǔ)單元的整體架構(gòu) 573
21.3.3 Nand Flash 引腳(Pin)說(shuō)明 573
21.3.4 Nand Flash尋址方式 573
21.3.5 Nand Flash讀操作流程 574
21.3.6 Nand Flash 寫(xiě)操作流程 574
21.3.7 Nand Flash主要內(nèi)設(shè)命令詳細(xì)介紹 575
21.3.8 Nand Flash 控制器中特殊功能寄存器介紹 576
21.4 Nand Flash驅(qū)動(dòng)實(shí)例 577
21.4.1 Nand Flash驅(qū)動(dòng)框架編寫(xiě) 577
21.4.2 Nand Flash底層操作程序 584
21.4.3 Nand Flash分區(qū)的配置 585
21.4.4 Nand Flash驅(qū)動(dòng)掛接測(cè)試 585
21.5 基于MTD 子系統(tǒng)的設(shè)備驅(qū)動(dòng)編程總結(jié) 586
參考文獻(xiàn) 587

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)