最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解:基于最新的Linux 4.0內(nèi)核

2023-07-18 23:23 作者:流浪在銀河邊緣的阿強(qiáng)  | 我要投稿

鏈接:https://pan.baidu.com/s/19WMktAaGxWSuZH7cE5ufJQ?pwd=gtoq?

提取碼:gtoq

  歷時(shí)8年,三次重構(gòu),內(nèi)容愈加爐火純青。

  全部代碼更新至全新的Linux 4.0版本。

  全面講解ARM Linux新版本內(nèi)核架構(gòu),如設(shè)備樹等。

  不僅僅注重知識和程序的講解,更注重程序的思想、演變、架構(gòu)和算法

  對于嵌入式工程師來說,進(jìn)入更高階段后,學(xué)習(xí)Linux設(shè)備驅(qū)動(dòng)開發(fā)無疑就是職業(yè)生涯的一次“重生”。這是因?yàn)長inux設(shè)備驅(qū)動(dòng)開發(fā)不僅僅涉及操作系統(tǒng)的轉(zhuǎn)換,開發(fā)方式的轉(zhuǎn)換,更重要的是思維上的轉(zhuǎn)變。對于Linux這樣一個(gè)復(fù)雜系統(tǒng),如何從復(fù)雜的代碼中抓住設(shè)備驅(qū)動(dòng)開發(fā)的關(guān)鍵是任何一個(gè)Linux設(shè)備驅(qū)動(dòng)開發(fā)者入門時(shí)需要面對的挑戰(zhàn)。除了知識、工具之外,往往還需要思路上的指導(dǎo)。本書不但幫助Linux設(shè)備驅(qū)動(dòng)開發(fā)的初學(xué)者厘清必要的概念,還從具體的實(shí)例、設(shè)備驅(qū)動(dòng)開發(fā)的指導(dǎo)原則循序漸進(jìn)地引導(dǎo)讀者漸入學(xué)習(xí)佳境。為了讓讀者能夠達(dá)到Linux設(shè)備驅(qū)動(dòng)開發(fā)的至臻境界,作者更是從軟件工程的角度抽象出設(shè)備驅(qū)動(dòng)開發(fā)的一般思想。毫無疑問,本書將成為讀者學(xué)習(xí)Linux設(shè)備驅(qū)動(dòng)開發(fā)過程中的一座“燈塔”。



內(nèi)容簡介

  本書介紹了Linux設(shè)備驅(qū)動(dòng)開發(fā)理論、框架與實(shí)例,詳細(xì)說明了自旋鎖、信號量、完成量、中斷頂/底半部、定時(shí)器、內(nèi)存和I/O映射以及異步通知、阻塞I/O、非阻塞I/O等Linux設(shè)備驅(qū)動(dòng)理論,以及字符設(shè)備、塊設(shè)備、tty設(shè)備、I2c設(shè)備、LCD設(shè)備、音頻設(shè)備、USB設(shè)備、網(wǎng)絡(luò)設(shè)備、PCI設(shè)備等Linux設(shè)備驅(qū)動(dòng)架構(gòu)中各個(gè)復(fù)雜數(shù)據(jù)結(jié)構(gòu)和函數(shù)的關(guān)系,并講解了Linux驅(qū)動(dòng)開發(fā)的大量實(shí)例,使讀者能夠獨(dú)立開發(fā)各類Linux設(shè)備驅(qū)動(dòng)。


【備注:本書第11頁,第六行鏈接已經(jīng)失效,替換為:https://pan.baidu.com/s/1472ejtnyguaKiULOWPahhw 密碼:moua】

作者簡介

  宋寶華,Linux布道者,知名嵌入式系統(tǒng)專家,《Essential Linux Device Drivers》譯者。作為較早從事Linux內(nèi)核與設(shè)備驅(qū)動(dòng)研究的專家之一,他在眾多國內(nèi)外知名企業(yè)開展Linux技術(shù)培訓(xùn)。他也是一位活躍的Linux開發(fā)者和深度實(shí)踐者,為Linux官方內(nèi)核貢獻(xiàn)了大量的Linux源碼并承擔(dān)代碼審核工作。至今已向Linux官方內(nèi)核提交逾數(shù)萬行代碼和幾百個(gè)補(bǔ)丁。他的《Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解》系列書在嵌入式Linux開發(fā)者中有口皆碑,是眾多Linux書籍中為數(shù)不多的暢銷書。

精彩書評

  ★理解軟件一定是從某個(gè)邏輯起點(diǎn)開始,通過邏輯的延伸和數(shù)據(jù)的堆疊,首先在框架上獲知軟件是如何解決目標(biāo)問題的。然后通過這個(gè)框架性的理解來進(jìn)一步熟知程序中更加小的細(xì)節(jié)以添加新功能或修復(fù)已遇到的問題。我之前想,如果有一本書能在講解程序之前先詳細(xì)地介紹此程序的思想、演變、架構(gòu)和主要算法,然后再遍歷評論程序?qū)崿F(xiàn)的代碼,那絕對是秘籍?,F(xiàn)在終于有了,謝謝@宋寶華即將帶給我們的絕學(xué)圣典!

  —— CSR(Cambridge Silicon Radio)平臺軟件高級經(jīng)理 劉永生


  ★“宋寶華老師的這本書是國內(nèi)少有的可與《Linux Device Driver》和《Linux Kernel Development》相媲美的Linux內(nèi)核類書籍,甚至在所有技術(shù)類圖書中都是精品之作。相比國內(nèi)大量技術(shù)類圖書的呆板教條和抄襲,以及讓人讀來困倦,不知所云,該書文風(fēng)生動(dòng)而不失深刻,知識點(diǎn)全面精煉。書中不但介紹各常見驅(qū)動(dòng)的架構(gòu),更深入剖析內(nèi)核相關(guān)的底層實(shí)現(xiàn)機(jī)制,“授人以魚”更“授人以漁”,讓讀者真正領(lǐng)會和學(xué)習(xí)內(nèi)核社區(qū)大牛們的設(shè)計(jì)思想和技巧,從而快速提升自己的能力。愿本書的讀者通過學(xué)習(xí)能夠真正實(shí)現(xiàn)從“碼農(nóng)”到"內(nèi)核大牛”的華麗轉(zhuǎn)變?!?br>
  —— 中科院上海微系統(tǒng)所 朱軍


  ★“Linux內(nèi)核的書籍不少,可是為什么好書少,與時(shí)俱進(jìn)的好書更加少。這是因?yàn)長inux內(nèi)核每到兩三個(gè)月就更新一次,不斷有新的技術(shù)、新的框架加入。試問有哪個(gè)作者可以一直堅(jiān)持寫作關(guān)于Linux內(nèi)核新的變化和技術(shù)。就連國外的經(jīng)典之作《Linux Device Driver》、《Understanding Linux Kernel》都早就沒有更新的作品了,可是宋寶華老師一直在用他獨(dú)特的視角和一線Linux內(nèi)核開發(fā)的工作實(shí)踐不斷地給大家?guī)硇潞玫摹禠inux設(shè)備驅(qū)動(dòng)開發(fā)詳解》。希望每一位Linux內(nèi)核的開發(fā)者和愛好者都能好好學(xué)習(xí)宋老師的新作,同時(shí)學(xué)習(xí)他堅(jiān)持不懈的精神,多為Linux內(nèi)核社區(qū)提供好的技術(shù)和作品?!?br>
  —— NVIDIA高級系統(tǒng)軟件工程師 伍鵬 (Bryan Wu)

目錄

贊譽(yù)

推薦序一

推薦序二

前言

第1章 Linux設(shè)備驅(qū)動(dòng)概述及開發(fā)環(huán)境構(gòu)建 1

1.1 設(shè)備驅(qū)動(dòng)的作用 1

1.2 無操作系統(tǒng)時(shí)的設(shè)備驅(qū)動(dòng) 2

1.3 有操作系統(tǒng)時(shí)的設(shè)備驅(qū)動(dòng) 4

1.4 Linux設(shè)備驅(qū)動(dòng) 5

1.4.1 設(shè)備的分類及特點(diǎn) 5

1.4.2 Linux設(shè)備驅(qū)動(dòng)與整個(gè)軟硬件系統(tǒng)的關(guān)系 6

1.4.3 Linux設(shè)備驅(qū)動(dòng)的重點(diǎn)、難點(diǎn) 7

1.5 Linux設(shè)備驅(qū)動(dòng)的開發(fā)環(huán)境構(gòu)建 8

1.5.1 PC上的Linux環(huán)境 8

1.5.2 QEMU實(shí)驗(yàn)平臺 11

1.5.3 源代碼閱讀和編輯 13

1.6 設(shè)備驅(qū)動(dòng)Hello World:LED驅(qū)動(dòng) 15

1.6.1 無操作系統(tǒng)時(shí)的LED驅(qū)動(dòng) 15

1.6.2 Linux下的LED驅(qū)動(dòng) 15

第2章 驅(qū)動(dòng)設(shè)計(jì)的硬件基礎(chǔ) 20

2.1 處理器 20

2.1.1 通用處理器 20

2.1.2 數(shù)字信號處理器 22

2.2 存儲器 24

2.3 接口與總線 28

2.3.1 串口 28

2.3.2 I2C 29

2.3.3 SPI 30

2.3.4 USB 31

2.3.5 以太網(wǎng)接口 33

2.3.6 PCI和PCI-E 34

2.3.7 SD和SDIO 36

2.4 CPLD和FPGA 37

2.5 原理圖分析 40

2.6 硬件時(shí)序分析 42

2.6.1 時(shí)序分析的概念 42

2.6.2 典型的硬件時(shí)序 43

2.7 芯片數(shù)據(jù)手冊閱讀方法 44

2.8 儀器儀表使用 47

2.8.1 萬用表 47

2.8.2 示波器 47

2.8.3 邏輯分析儀 49

2.9 總結(jié) 51

第3章 Linux內(nèi)核及內(nèi)核編程 52

3.1 Linux內(nèi)核的發(fā)展與演變 52

3.2 Linux 2.6后的內(nèi)核特點(diǎn) 56

3.3 Linux內(nèi)核的組成 59

3.3.1 Linux內(nèi)核源代碼的目錄結(jié)構(gòu) 59

3.3.2 Linux內(nèi)核的組成部分 60

3.3.3 Linux內(nèi)核空間與用戶空間 64

3.4 Linux內(nèi)核的編譯及加載 64

3.4.1 Linux內(nèi)核的編譯 64

3.4.2 Kconfig和Makefile 66

3.4.3 Linux內(nèi)核的引導(dǎo) 74

3.5 Linux下的C編程特點(diǎn) 75

3.5.1 Linux編碼風(fēng)格 75

3.5.2 GNU C與ANSI C 78

3.5.3 do { } while(0) 語句 83

3.5.4 goto語句 85

3.6 工具鏈 85

3.7 實(shí)驗(yàn)室建設(shè) 88

3.8 串口工具 89

3.9 總結(jié) 91

第4章 Linux內(nèi)核模塊 92

4.1 Linux內(nèi)核模塊簡介 92

4.2 Linux內(nèi)核模塊程序結(jié)構(gòu) 95

4.3 模塊加載函數(shù) 95

4.4 模塊卸載函數(shù) 97

4.5 模塊參數(shù) 97

4.6 導(dǎo)出符號 99

4.7 模塊聲明與描述 100

4.8 模塊的使用計(jì)數(shù) 100

4.9 模塊的編譯 101

4.10 使用模塊“繞開”GPL 102

4.11 總結(jié) 103

第5章 Linux文件系統(tǒng)與設(shè)備文件 104

5.1 Linux文件操作 104

5.1.1 文件操作系統(tǒng)調(diào)用 104

5.1.2 C庫文件操作 108

5.2 Linux文件系統(tǒng) 109

5.2.1 Linux文件系統(tǒng)目錄結(jié)構(gòu) 109

5.2.2 Linux文件系統(tǒng)與設(shè)備驅(qū)動(dòng) 110

5.3 devfs 114

5.4 udev用戶空間設(shè)備管理 116

5.4.1 udev與devfs的區(qū)別 116

5.4.2 sysfs文件系統(tǒng)與Linux設(shè)備模型 119

5.4.3 udev的組成 128

5.4.4 udev規(guī)則文件 129

5.5 總結(jié) 133

第6章 字符設(shè)備驅(qū)動(dòng) 134

6.1 Linux字符設(shè)備驅(qū)動(dòng)結(jié)構(gòu) 134

6.1.1 cdev結(jié)構(gòu)體 134

6.1.2 分配和釋放設(shè)備號 136

6.1.3 f?ile_operations結(jié)構(gòu)體 136

6.1.4 Linux字符設(shè)備驅(qū)動(dòng)的組成 138

6.2 globalmem虛擬設(shè)備實(shí)例描述 142

6.3 globalmem設(shè)備驅(qū)動(dòng) 142

6.3.1 頭文件、宏及設(shè)備結(jié)構(gòu)體 142

6.3.2 加載與卸載設(shè)備驅(qū)動(dòng) 143

6.3.3 讀寫函數(shù) 144

6.3.4 seek函數(shù) 146

6.3.5 ioctl函數(shù) 146

6.3.6 使用文件私有數(shù)據(jù) 148

6.4 globalmem驅(qū)動(dòng)在用戶空間中的驗(yàn)證 156

6.5 總結(jié) 157

第7章 Linux設(shè)備驅(qū)動(dòng)中的并發(fā)控制 158

7.1 并發(fā)與競態(tài) 158

7.2 編譯亂序和執(zhí)行亂序 160

7.3 中斷屏蔽 165

7.4 原子操作 166

7.4.1 整型原子操作 167

7.4.2 位原子操作 168

7.5 自旋鎖 169

7.5.1 自旋鎖的使用 169

7.5.2 讀寫自旋鎖 173

7.5.3 順序鎖 174

7.5.4 讀-復(fù)制-更新 176

7.6 信號量 181

7.7 互斥體 183

7.8 完成量 184

7.9 增加并發(fā)控制后的globalmem的設(shè)備驅(qū)動(dòng) 185

7.10 總結(jié) 188

第8章 Linux設(shè)備驅(qū)動(dòng)中的阻塞與非阻塞I/O 189

8.1 阻塞與非阻塞I/O 189

8.1.1 等待隊(duì)列 191

8.1.2 支持阻塞操作的globalf?ifo設(shè)備驅(qū)動(dòng) 194

8.1.3 在用戶空間驗(yàn)證globalf?ifo的讀寫 198

8.2 輪詢操作 198

8.2.1 輪詢的概念與作用 198

8.2.2 應(yīng)用程序中的輪詢編程 199

8.2.3 設(shè)備驅(qū)動(dòng)中的輪詢編程 201

8.3 支持輪詢操作的globalf?ifo驅(qū)動(dòng) 202

8.3.1 在globalf?ifo驅(qū)動(dòng)中增加輪詢操作 202

8.3.2 在用戶空間中驗(yàn)證globalf?ifo設(shè)備的輪詢 203

8.4 總結(jié) 205

第9章 Linux設(shè)備驅(qū)動(dòng)中的異步通知與異步I/O 206

9.1 異步通知的概念與作用 206

9.2 Linux異步通知編程 207

9.2.1 Linux信號 207

9.2.2 信號的接收 208

9.2.3 信號的釋放 210

9.3 支持異步通知的globalf?ifo驅(qū)動(dòng) 212

9.3.1 在globalf?ifo驅(qū)動(dòng)中增加異步通知 212

9.3.2 在用戶空間中驗(yàn)證globalf?ifo的異步通知 214

9.4 Linux異步I/O 215

9.4.1 AIO概念與GNU C庫AIO 215

9.4.2 Linux內(nèi)核AIO與libaio 219

9.4.3 AIO與設(shè)備驅(qū)動(dòng) 222

9.5 總結(jié) 223

第10章 中斷與時(shí)鐘 224

10.1 中斷與定時(shí)器 224

10.2 Linux中斷處理程序架構(gòu) 227

10.3 Linux中斷編程 228

10.3.1 申請和釋放中斷 228

10.3.2 使能和屏蔽中斷 230

10.3.3 底半部機(jī)制 230

10.3.4 實(shí)例:GPIO按鍵的中斷 235

10.4 中斷共享 237

10.5 內(nèi)核定時(shí)器 238

10.5.1 內(nèi)核定時(shí)器編程 238

10.5.2 內(nèi)核中延遲的工作delayed_work 242

10.5.3 實(shí)例:秒字符設(shè)備 243

10.6 內(nèi)核延時(shí) 247

10.6.1 短延遲 247

10.6.2 長延遲 248

10.6.3 睡著延遲 248

10.7 總結(jié) 250

第11章 內(nèi)存與I/O訪問 251

11.1 CPU與內(nèi)存、I/O 251

11.1.1 內(nèi)存空間與I/O空間 251

11.1.2 內(nèi)存管理單元 252

11.2 Linux內(nèi)存管理 256

11.3 內(nèi)存存取 261

11.3.1 用戶空間內(nèi)存動(dòng)態(tài)申請 261

11.3.2 內(nèi)核空間內(nèi)存動(dòng)態(tài)申請 262

11.4 設(shè)備I/O端口和I/O內(nèi)存的訪問 267

11.4.1 Linux I/O端口和I/O內(nèi)存訪問接口 267

11.4.2 申請與釋放設(shè)備的I/O端口和I/O內(nèi)存 268

11.4.3 設(shè)備I/O端口和I/O內(nèi)存訪問流程 269

11.4.4 將設(shè)備地址映射到用戶空間 270

11.5 I/O內(nèi)存靜態(tài)映射 276

11.6 DMA 277

11.6.1 DMA與Cache一致性 278

11.6.2 Linux下的DMA編程 279

11.7 總結(jié) 285

第12章 Linux設(shè)備驅(qū)動(dòng)的軟件架構(gòu)思想 286

12.1 Linux驅(qū)動(dòng)的軟件架構(gòu) 286

12.2 platform設(shè)備驅(qū)動(dòng) 290

12.2.1 platform總線、設(shè)備與驅(qū)動(dòng) 290

12.2.2 將globalf?ifo作為platform設(shè)備 293

12.2.3 platform設(shè)備資源和數(shù)據(jù) 295

12.3 設(shè)備驅(qū)動(dòng)的分層思想 299

12.3.1 設(shè)備驅(qū)動(dòng)核心層和例化 299

12.3.2 輸入設(shè)備驅(qū)動(dòng) 301

12.3.3 RTC設(shè)備驅(qū)動(dòng) 306

12.3.4 Framebuffer設(shè)備驅(qū)動(dòng) 309

12.3.5 終端設(shè)備驅(qū)動(dòng) 311

12.3.6 misc設(shè)備驅(qū)動(dòng) 316

12.3.7 驅(qū)動(dòng)核心層 321

12.4 主機(jī)驅(qū)動(dòng)與外設(shè)驅(qū)動(dòng)分離的設(shè)計(jì)思想 321

12.4.1 主機(jī)驅(qū)動(dòng)與外設(shè)驅(qū)動(dòng)分離 321

12.4.2 Linux SPI主機(jī)和設(shè)備驅(qū)動(dòng) 322

12.5 總結(jié) 330

第13章 Linux塊設(shè)備驅(qū)動(dòng) 331

13.1 塊設(shè)備的I/O操作特點(diǎn) 331

13.2 Linux塊設(shè)備驅(qū)動(dòng)結(jié)構(gòu) 332

13.2.1 block_device_operations結(jié)構(gòu)體 332

13.2.2 gendisk結(jié)構(gòu)體 334

13.2.3 bio、request和request_queue 335

13.2.4 I/O調(diào)度器 339

13.3 Linux塊設(shè)備驅(qū)動(dòng)的初始化 340

13.4 塊設(shè)備的打開與釋放 342

13.5 塊設(shè)備驅(qū)動(dòng)的ioctl函數(shù) 342

13.6 塊設(shè)備驅(qū)動(dòng)的I/O請求處理 343

13.6.1 使用請求隊(duì)列 343

13.6.2 不使用請求隊(duì)列 347

13.7 實(shí)例:vmem_disk驅(qū)動(dòng) 349

13.7.1 vmem_disk的硬件原理 349

13.7.2 vmem_disk驅(qū)動(dòng)模塊的加載與卸載 349

13.7.3 vmem_disk設(shè)備驅(qū)動(dòng)的block_device_operations 351

13.7.4 vmem_disk的I/O請求處理 352

13.8 Linux MMC子系統(tǒng) 354

13.9 總結(jié) 357

第14章 Linux網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng) 358

14.1 Linux網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)的結(jié)構(gòu) 358

14.1.1 網(wǎng)絡(luò)協(xié)議接口層 359

14.1.2 網(wǎng)絡(luò)設(shè)備接口層 363

14.1.3 設(shè)備驅(qū)動(dòng)功能層 367

14.2 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)的注冊與注銷 367

14.3 網(wǎng)絡(luò)設(shè)備的初始化 369

14.4 網(wǎng)絡(luò)設(shè)備的打開與釋放 370

14.5 數(shù)據(jù)發(fā)送流程 371

14.6 數(shù)據(jù)接收流程 372

14.7 網(wǎng)絡(luò)連接狀態(tài) 375

14.8 參數(shù)設(shè)置和統(tǒng)計(jì)數(shù)據(jù) 377

14.9 DM9000網(wǎng)卡設(shè)備驅(qū)動(dòng)實(shí)例 380

14.9.1 DM9000網(wǎng)卡硬件描述 380

14.9.2 DM9000網(wǎng)卡驅(qū)動(dòng)設(shè)計(jì)分析 380

14.10 總結(jié) 386

第15章 Linux I2C核心、總線與設(shè)備驅(qū)動(dòng) 387

15.1 Linux I2C體系結(jié)構(gòu) 387

15.2 Linux I2C核心 394

15.3 Linux I2C適配器驅(qū)動(dòng) 396

15.3.1 I2C適配器驅(qū)動(dòng)的注冊與注銷 396

15.3.2 I2C總線的通信方法 397

15.4 Linux I2C設(shè)備驅(qū)動(dòng) 399

15.4.1 Linux I2C設(shè)備驅(qū)動(dòng)的模塊加載與卸載 400

15.4.2 Linux I2C設(shè)備驅(qū)動(dòng)的數(shù)據(jù)傳輸 400

15.4.3 Linux的i2c-dev.c文件分析 400

15.5 Tegra I2C總線驅(qū)動(dòng)實(shí)例 405

15.6 AT24xx EEPROM的I2C設(shè)備驅(qū)動(dòng)實(shí)例 410

15.7 總結(jié) 413

第16章 USB主機(jī)、設(shè)備與Gadget驅(qū)動(dòng) 414

16.1 Linux USB驅(qū)動(dòng)層次 414

16.1.1 主機(jī)側(cè)與設(shè)備側(cè)USB驅(qū)動(dòng) 414

16.1.2 設(shè)備、配置、接口、端點(diǎn) 415

16.2 USB主機(jī)控制器驅(qū)動(dòng) 420

16.2.1 USB主機(jī)控制器驅(qū)動(dòng)的整體結(jié)構(gòu) 420

16.2.2 實(shí)例:Chipidea USB主機(jī)驅(qū)動(dòng) 425

16.3 USB設(shè)備驅(qū)動(dòng) 425

16.3.1 USB設(shè)備驅(qū)動(dòng)的整體結(jié)構(gòu) 425

16.3.2 USB請求塊 430

16.3.3 探測和斷開函數(shù) 435

16.3.4 USB骨架程序 436

16.3.5 實(shí)例:USB鍵盤驅(qū)動(dòng) 443

16.4 USB UDC與Gadget驅(qū)動(dòng) 446

16.4.1 UDC和Gadget驅(qū)動(dòng)的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)與API 446

16.4.2 實(shí)例:Chipidea USB UDC驅(qū)動(dòng) 451

16.4.3 實(shí)例:Loopback Function驅(qū)動(dòng) 453

16.5 USB OTG驅(qū)動(dòng) 456

16.6 總結(jié) 458

第17章 I2C、SPI、USB驅(qū)動(dòng)架構(gòu)類比 459

17.1 I2C、SPI、USB驅(qū)動(dòng)架構(gòu) 459

17.2 I2C主機(jī)和外設(shè)眼里的Linux世界 460

第18章 ARM Linux設(shè)備樹 461

18.1 ARM設(shè)備樹起源 461

18.2 設(shè)備樹的組成和結(jié)構(gòu) 462

18.2.1 DTS、DTC和DTB等 462

18.2.2 根節(jié)點(diǎn)兼容性 468

18.2.3 設(shè)備節(jié)點(diǎn)兼容性 470

18.2.4 設(shè)備節(jié)點(diǎn)及l(fā)abel的命名 475

18.2.5 地址編碼 477

18.2.6 中斷連接 479

18.2.7 GPIO、時(shí)鐘、pinmux連接 480

18.3 由設(shè)備樹引發(fā)的BSP和驅(qū)動(dòng)變更 484

18.4 常用的OF API 490

18.5 總結(jié) 493

第19章 Linux電源管理的系統(tǒng)架構(gòu)和驅(qū)動(dòng) 494

19.1 Linux電源管理的全局架構(gòu) 494

19.2 CPUFreq驅(qū)動(dòng) 495

19.2.1 SoC的CPUFreq驅(qū)動(dòng)實(shí)現(xiàn) 495

19.2.2 CPUFreq的策略 501

19.2.3 CPUFreq的性能測試和調(diào)優(yōu) 501

19.2.4 CPUFreq通知 502

19.3 CPUIdle驅(qū)動(dòng) 504

19.4 PowerTop 508

19.5 Regulator驅(qū)動(dòng) 508

19.6 OPP 511

19.7 PM QoS 515

19.8 CPU熱插拔 518

19.9 掛起到RAM 522

19.10 運(yùn)行時(shí)的PM 528

19.11 總結(jié) 534

第20章 Linux芯片級移植及底層驅(qū)動(dòng) 535

20.1 ARM Linux底層驅(qū)動(dòng)的組成和現(xiàn)狀 535

20.2 內(nèi)核節(jié)拍驅(qū)動(dòng) 536

20.3 中斷控制器驅(qū)動(dòng) 541

20.4 SMP多核啟動(dòng)以及CPU熱插拔驅(qū)動(dòng) 549

20.5 DEBUG_LL和EARLY_PRINTK的設(shè)置 556

20.6 GPIO驅(qū)動(dòng) 557

20.7 pinctrl驅(qū)動(dòng) 560

20.8 時(shí)鐘驅(qū)動(dòng) 572

20.9 dmaengine驅(qū)動(dòng) 578

20.10 總結(jié) 580

第21章 Linux設(shè)備驅(qū)動(dòng)的調(diào)試 581

21.1 GDB調(diào)試器的用法 581

21.1.1 GDB的基本用法 581

21.1.2 DDD圖形界面調(diào)試工具 591

21.2 Linux內(nèi)核調(diào)試 594

21.3 內(nèi)核打印信息——printk() 596

21.4 DEBUG_LL和EARLY_PRINTK 599

21.5 使用“/proc” 600

21.6 Oops 606

21.7 BUG_ON()和WARN_ON() 608

21.8 strace 609

21.9 KGDB 610

21.10 使用仿真器調(diào)試內(nèi)核 612

21.11 應(yīng)用程序調(diào)試 613

21.12 Linux性能監(jiān)控與調(diào)優(yōu)工具 616

21.13 總結(jié) 618

查看全部↓

前言/序言


Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解:基于最新的Linux 4.0內(nèi)核的評論 (共 條)

分享到微博請遵守國家法律
银川市| 乐平市| 南投市| 元谋县| 库车县| 邓州市| 抚宁县| 泸水县| 平乐县| 兴宁市| 双流县| 泰顺县| 凤城市| 太白县| 颍上县| 石景山区| 新龙县| 兰西县| 普定县| 新沂市| 郸城县| 衡阳县| 鱼台县| 台前县| 信阳市| 水城县| 常熟市| 正阳县| 南雄市| 法库县| 古蔺县| 吐鲁番市| 章丘市| 辉南县| 忻城县| 昔阳县| 竹山县| 林甸县| 郯城县| 华坪县| 河曲县|