Linux設備驅動開發詳解:基於最新的Linux 4.0內核

Linux設備驅動開發詳解:基於最新的Linux 4.0內核 下載 mobi epub pdf 電子書 2024


簡體網頁||繁體網頁
宋寶華 著



點擊這裡下載
    

想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

發表於2024-11-05

類似圖書 點擊查看全場最低價


圖書介紹

齣版社: 機械工業齣版社
ISBN:9787111507895
版次:1
商品編碼:11752798
品牌:機工齣版
包裝:平裝
叢書名: 電子與嵌入式係統設計叢書
開本:16開
齣版時間:2015-08-01
用紙:膠版紙
頁數:618


相關圖書





圖書描述

編輯推薦

  曆時8年,三次重構,內容愈加爐火純青。

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

  全麵講解ARM Linux新版本內核架構,如設備樹等。

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

  對於嵌入式工程師來說,進入更高階段後,學習Linux設備驅動開發無疑就是職業生涯的一次“重生”。這是因為Linux設備驅動開發不僅僅涉及操作係統的轉換,開發方式的轉換,更重要的是思維上的轉變。對於Linux這樣一個復雜係統,如何從復雜的代碼中抓住設備驅動開發的關鍵是任何一個Linux設備驅動開發者入門時需要麵對的挑戰。除瞭知識、工具之外,往往還需要思路上的指導。本書不但幫助Linux設備驅動開發的初學者厘清必要的概念,還從具體的實例、設備驅動開發的指導原則循序漸進地引導讀者漸入學習佳境。為瞭讓讀者能夠達到Linux設備驅動開發的至臻境界,作者更是從軟件工程的角度抽象齣設備驅動開發的一般思想。毫無疑問,本書將成為讀者學習Linux設備驅動開發過程中的一座“燈塔”。



內容簡介

  本書介紹瞭Linux設備驅動開發理論、框架與實例,詳細說明瞭自鏇鎖、信號量、完成量、中斷頂/底半部、定時器、內存和I/O映射以及異步通知、阻塞I/O、非阻塞I/O等Linux設備驅動理論,以及字符設備、塊設備、tty設備、I2c設備、LCD設備、音頻設備、USB設備、網絡設備、PCI設備等Linux設備驅動架構中各個復雜數據結構和函數的關係,並講解瞭Linux驅動開發的大量實例,使讀者能夠獨立開發各類Linux設備驅動。


【備注:本書第11頁,第六行鏈接已經失效,替換為:http://pan.baidu.com/s/1cFrl2e 密碼:ezs2】

作者簡介

  宋寶華,Linux布道者,知名嵌入式係統專傢,《Essential Linux Device Drivers》譯者。作為較早從事Linux內核與設備驅動研究的專傢之一,他在眾多國內外知名企業開展Linux技術培訓。他也是一位活躍的Linux開發者和深度實踐者,為Linux官方內核貢獻瞭大量的Linux源碼並承擔代碼審核工作。至今已嚮Linux官方內核提交逾數萬行代碼和幾百個補丁。他的《Linux設備驅動開發詳解》係列書在嵌入式Linux開發者中有口皆碑,是眾多Linux書籍中為數不多的暢銷書。

精彩書評

  ★理解軟件一定是從某個邏輯起點開始,通過邏輯的延伸和數據的堆疊,首先在框架上獲知軟件是如何解決目標問題的。然後通過這個框架性的理解來進一步熟知程序中更加小的細節以添加新功能或修復已遇到的問題。我之前想,如果有一本書能在講解程序之前先詳細地介紹此程序的思想、演變、架構和主要算法,然後再遍曆評論程序實現的代碼,那絕對是秘籍。現在終於有瞭,謝謝@宋寶華即將帶給我們的絕學聖典!

  —— CSR(Cambridge Silicon Radio)平颱軟件高級經理 劉永生


  ★“宋寶華老師的這本書是國內少有的可與《Linux Device Driver》和《Linux Kernel Development》相媲美的Linux內核類書籍,甚至在所有技術類圖書中都是精品之作。相比國內大量技術類圖書的呆闆教條和抄襲,以及讓人讀來睏倦,不知所雲,該書文風生動而不失深刻,知識點全麵精煉。書中不但介紹各常見驅動的架構,更深入剖析內核相關的底層實現機製,“授人以魚”更“授人以漁”,讓讀者真正領會和學習內核社區大牛們的設計思想和技巧,從而快速提升自己的能力。願本書的讀者通過學習能夠真正實現從“碼農”到"內核大牛”的華麗轉變。”

  —— 中科院上海微係統所 硃軍


  ★“Linux內核的書籍不少,可是為什麼好書少,與時俱進的好書更加少。這是因為Linux內核每到兩三個月就更新一次,不斷有新的技術、新的框架加入。試問有哪個作者可以一直堅持寫作關於Linux內核新的變化和技術。就連國外的經典之作《Linux Device Driver》、《Understanding Linux Kernel》都早就沒有更新的作品瞭,可是宋寶華老師一直在用他獨特的視角和一綫Linux內核開發的工作實踐不斷地給大傢帶來新好的《Linux設備驅動開發詳解》。希望每一位Linux內核的開發者和愛好者都能好好學習宋老師的新作,同時學習他堅持不懈的精神,多為Linux內核社區提供好的技術和作品。”

  —— NVIDIA高級係統軟件工程師 伍鵬 (Bryan Wu)

目錄

贊譽

推薦序一

推薦序二

前言

第1章 Linux設備驅動概述及開發環境構建 1

1.1 設備驅動的作用 1

1.2 無操作係統時的設備驅動 2

1.3 有操作係統時的設備驅動 4

1.4 Linux設備驅動 5

1.4.1 設備的分類及特點 5

1.4.2 Linux設備驅動與整個軟硬件係統的關係 6

1.4.3 Linux設備驅動的重點、難點 7

1.5 Linux設備驅動的開發環境構建 8

1.5.1 PC上的Linux環境 8

1.5.2 QEMU實驗平颱 11

1.5.3 源代碼閱讀和編輯 13

1.6 設備驅動Hello World:LED驅動 15

1.6.1 無操作係統時的LED驅動 15

1.6.2 Linux下的LED驅動 15

第2章 驅動設計的硬件基礎 20

2.1 處理器 20

2.1.1 通用處理器 20

2.1.2 數字信號處理器 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 以太網接口 33

2.3.6 PCI和PCI-E 34

2.3.7 SD和SDIO 36

2.4 CPLD和FPGA 37

2.5 原理圖分析 40

2.6 硬件時序分析 42

2.6.1 時序分析的概念 42

2.6.2 典型的硬件時序 43

2.7 芯片數據手冊閱讀方法 44

2.8 儀器儀錶使用 47

2.8.1 萬用錶 47

2.8.2 示波器 47

2.8.3 邏輯分析儀 49

2.9 總結 51

第3章 Linux內核及內核編程 52

3.1 Linux內核的發展與演變 52

3.2 Linux 2.6後的內核特點 56

3.3 Linux內核的組成 59

3.3.1 Linux內核源代碼的目錄結構 59

3.3.2 Linux內核的組成部分 60

3.3.3 Linux內核空間與用戶空間 64

3.4 Linux內核的編譯及加載 64

3.4.1 Linux內核的編譯 64

3.4.2 Kconfig和Makefile 66

3.4.3 Linux內核的引導 74

3.5 Linux下的C編程特點 75

3.5.1 Linux編碼風格 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 實驗室建設 88

3.8 串口工具 89

3.9 總結 91

第4章 Linux內核模塊 92

4.1 Linux內核模塊簡介 92

4.2 Linux內核模塊程序結構 95

4.3 模塊加載函數 95

4.4 模塊卸載函數 97

4.5 模塊參數 97

4.6 導齣符號 99

4.7 模塊聲明與描述 100

4.8 模塊的使用計數 100

4.9 模塊的編譯 101

4.10 使用模塊“繞開”GPL 102

4.11 總結 103

第5章 Linux文件係統與設備文件 104

5.1 Linux文件操作 104

5.1.1 文件操作係統調用 104

5.1.2 C庫文件操作 108

5.2 Linux文件係統 109

5.2.1 Linux文件係統目錄結構 109

5.2.2 Linux文件係統與設備驅動 110

5.3 devfs 114

5.4 udev用戶空間設備管理 116

5.4.1 udev與devfs的區彆 116

5.4.2 sysfs文件係統與Linux設備模型 119

5.4.3 udev的組成 128

5.4.4 udev規則文件 129

5.5 總結 133

第6章 字符設備驅動 134

6.1 Linux字符設備驅動結構 134

6.1.1 cdev結構體 134

6.1.2 分配和釋放設備號 136

6.1.3 f?ile_operations結構體 136

6.1.4 Linux字符設備驅動的組成 138

6.2 globalmem虛擬設備實例描述 142

6.3 globalmem設備驅動 142

6.3.1 頭文件、宏及設備結構體 142

6.3.2 加載與卸載設備驅動 143

6.3.3 讀寫函數 144

6.3.4 seek函數 146

6.3.5 ioctl函數 146

6.3.6 使用文件私有數據 148

6.4 globalmem驅動在用戶空間中的驗證 156

6.5 總結 157

第7章 Linux設備驅動中的並發控製 158

7.1 並發與競態 158

7.2 編譯亂序和執行亂序 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 讀-復製-更新 176

7.6 信號量 181

7.7 互斥體 183

7.8 完成量 184

7.9 增加並發控製後的globalmem的設備驅動 185

7.10 總結 188

第8章 Linux設備驅動中的阻塞與非阻塞I/O 189

8.1 阻塞與非阻塞I/O 189

8.1.1 等待隊列 191

8.1.2 支持阻塞操作的globalf?ifo設備驅動 194

8.1.3 在用戶空間驗證globalf?ifo的讀寫 198

8.2 輪詢操作 198

8.2.1 輪詢的概念與作用 198

8.2.2 應用程序中的輪詢編程 199

8.2.3 設備驅動中的輪詢編程 201

8.3 支持輪詢操作的globalf?ifo驅動 202

8.3.1 在globalf?ifo驅動中增加輪詢操作 202

8.3.2 在用戶空間中驗證globalf?ifo設備的輪詢 203

8.4 總結 205

第9章 Linux設備驅動中的異步通知與異步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驅動 212

9.3.1 在globalf?ifo驅動中增加異步通知 212

9.3.2 在用戶空間中驗證globalf?ifo的異步通知 214

9.4 Linux異步I/O 215

9.4.1 AIO概念與GNU C庫AIO 215

9.4.2 Linux內核AIO與libaio 219

9.4.3 AIO與設備驅動 222

9.5 總結 223

第10章 中斷與時鍾 224

10.1 中斷與定時器 224

10.2 Linux中斷處理程序架構 227

10.3 Linux中斷編程 228

10.3.1 申請和釋放中斷 228

10.3.2 使能和屏蔽中斷 230

10.3.3 底半部機製 230

10.3.4 實例:GPIO按鍵的中斷 235

10.4 中斷共享 237

10.5 內核定時器 238

10.5.1 內核定時器編程 238

10.5.2 內核中延遲的工作delayed_work 242

10.5.3 實例:秒字符設備 243

10.6 內核延時 247

10.6.1 短延遲 247

10.6.2 長延遲 248

10.6.3 睡著延遲 248

10.7 總結 250

第11章 內存與I/O訪問 251

11.1 CPU與內存、I/O 251

11.1.1 內存空間與I/O空間 251

11.1.2 內存管理單元 252

11.2 Linux內存管理 256

11.3 內存存取 261

11.3.1 用戶空間內存動態申請 261

11.3.2 內核空間內存動態申請 262

11.4 設備I/O端口和I/O內存的訪問 267

11.4.1 Linux I/O端口和I/O內存訪問接口 267

11.4.2 申請與釋放設備的I/O端口和I/O內存 268

11.4.3 設備I/O端口和I/O內存訪問流程 269

11.4.4 將設備地址映射到用戶空間 270

11.5 I/O內存靜態映射 276

11.6 DMA 277

11.6.1 DMA與Cache一緻性 278

11.6.2 Linux下的DMA編程 279

11.7 總結 285

第12章 Linux設備驅動的軟件架構思想 286

12.1 Linux驅動的軟件架構 286

12.2 platform設備驅動 290

12.2.1 platform總綫、設備與驅動 290

12.2.2 將globalf?ifo作為platform設備 293

12.2.3 platform設備資源和數據 295

12.3 設備驅動的分層思想 299

12.3.1 設備驅動核心層和例化 299

12.3.2 輸入設備驅動 301

12.3.3 RTC設備驅動 306

12.3.4 Framebuffer設備驅動 309

12.3.5 終端設備驅動 311

12.3.6 misc設備驅動 316

12.3.7 驅動核心層 321

12.4 主機驅動與外設驅動分離的設計思想 321

12.4.1 主機驅動與外設驅動分離 321

12.4.2 Linux SPI主機和設備驅動 322

12.5 總結 330

第13章 Linux塊設備驅動 331

13.1 塊設備的I/O操作特點 331

13.2 Linux塊設備驅動結構 332

13.2.1 block_device_operations結構體 332

13.2.2 gendisk結構體 334

13.2.3 bio、request和request_queue 335

13.2.4 I/O調度器 339

13.3 Linux塊設備驅動的初始化 340

13.4 塊設備的打開與釋放 342

13.5 塊設備驅動的ioctl函數 342

13.6 塊設備驅動的I/O請求處理 343

13.6.1 使用請求隊列 343

13.6.2 不使用請求隊列 347

13.7 實例:vmem_disk驅動 349

13.7.1 vmem_disk的硬件原理 349

13.7.2 vmem_disk驅動模塊的加載與卸載 349

13.7.3 vmem_disk設備驅動的block_device_operations 351

13.7.4 vmem_disk的I/O請求處理 352

13.8 Linux MMC子係統 354

13.9 總結 357

第14章 Linux網絡設備驅動 358

14.1 Linux網絡設備驅動的結構 358

14.1.1 網絡協議接口層 359

14.1.2 網絡設備接口層 363

14.1.3 設備驅動功能層 367

14.2 網絡設備驅動的注冊與注銷 367

14.3 網絡設備的初始化 369

14.4 網絡設備的打開與釋放 370

14.5 數據發送流程 371

14.6 數據接收流程 372

14.7 網絡連接狀態 375

14.8 參數設置和統計數據 377

14.9 DM9000網卡設備驅動實例 380

14.9.1 DM9000網卡硬件描述 380

14.9.2 DM9000網卡驅動設計分析 380

14.10 總結 386

第15章 Linux I2C核心、總綫與設備驅動 387

15.1 Linux I2C體係結構 387

15.2 Linux I2C核心 394

15.3 Linux I2C適配器驅動 396

15.3.1 I2C適配器驅動的注冊與注銷 396

15.3.2 I2C總綫的通信方法 397

15.4 Linux I2C設備驅動 399

15.4.1 Linux I2C設備驅動的模塊加載與卸載 400

15.4.2 Linux I2C設備驅動的數據傳輸 400

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

15.5 Tegra I2C總綫驅動實例 405

15.6 AT24xx EEPROM的I2C設備驅動實例 410

15.7 總結 413

第16章 USB主機、設備與Gadget驅動 414

16.1 Linux USB驅動層次 414

16.1.1 主機側與設備側USB驅動 414

Linux設備驅動開發詳解:基於最新的Linux 4.0內核 下載 mobi epub pdf txt 電子書 格式

Linux設備驅動開發詳解:基於最新的Linux 4.0內核 mobi 下載 pdf 下載 pub 下載 txt 電子書 下載 2024

Linux設備驅動開發詳解:基於最新的Linux 4.0內核 下載 mobi pdf epub txt 電子書 格式 2024

Linux設備驅動開發詳解:基於最新的Linux 4.0內核 下載 mobi epub pdf 電子書
想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

用戶評價

評分

挺不錯的,很喜歡,一直京東購買

評分

一直就對這個很好奇呢,很想學學!

評分

品牌産品就是好,。。用瞭一段時間纔來評價,,,,。。滿意,五星好評。,。。。。

評分

不錯,是我需要的,紙質也行。

評分

這本書寫的,終於買到瞭!!

評分

很好的書籍,對學習大有益處,值得閱讀!

評分

666666666666666666666

評分

活動價格很實惠。書質量很好。

評分

很好很強大,真的是棒棒噠

類似圖書 點擊查看全場最低價

Linux設備驅動開發詳解:基於最新的Linux 4.0內核 mobi epub pdf txt 電子書 格式下載 2024


分享鏈接




相關圖書


本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

友情鏈接

© 2024 book.teaonline.club All Rights Reserved. 圖書大百科 版權所有