[ 收藏 ] [ 繁体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  • 新类目

     管理
     投资理财
     经济
     社会科学
  • 【正版圖書】Linux設備驅動開發詳解:基於的Linux 4.0內核 宋寶華
    該商品所屬分類:圖書 -> 遼寧音響出版社
    【市場價】
    784-1136
    【優惠價】
    490-710
    【作者】 宋寶華 
    【出版社】機械工業出版社 
    【ISBN】9787111507895
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    店鋪:遼寧音像出版社圖書專營店
    出版社:機械工業出版社
    ISBN:9787111507895

    商品編碼:10029248156110
    包裝:平裝
    出版時間:2015-08-15

    作者:宋寶華

        
        
    "

    基本信息

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

    定價

    作者:宋寶華

    出版社:機械工業出版社

    出版日期:2015-08-15

    ISBN:9787111507895

    字數:277

    頁碼:618

    版次:

    裝幀:平裝

    開本:16開

    商品重量:

    編輯推薦


    href="#" target="_blank">

    內容提要


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

    目錄


    贊譽

    推薦序一

    推薦序二

    前言

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

    1.1設備驅動的作用 1

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

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

    1.4Linux設備驅動 5

    1.4.1設備的分類及特點 5

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

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

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

    1.5.1PC上的Linux環境 8

    1.5.2QEMU實驗平臺 11

    1.5.3源代碼閱讀和編輯 13

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

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

    1.6.2Linux下的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.2I2C 29

    2.3.3SPI 30

    2.3.4USB 31

    2.3.5以太網接口 33

    2.3.6PCI和PCI-E 34

    2.3.7SD和SDIO 36

    2.4CPLD和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.1Linux內核的發展與演變 52

    3.2Linux 2.6後的內核特點 56

    3.3Linux內核的組成 59

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

    3.3.2Linux內核的組成部分 60

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

    3.4Linux內核的編譯及加載 64

    3.4.1Linux內核的編譯 64

    3.4.2Kconfig和Makefile 66

    3.4.3Linux內核的引導 74

    3.5Linux下的C編程特點 75

    3.5.1Linux編碼風格 75

    3.5.2GNU C與ANSI C 78

    3.5.3do { } while(0) 語句 83

    3.5.4goto語句 85

    3.6工具鏈 85

    3.7實驗室建設 88

    3.8串口工具 89

    3.9總結 91

    第4章Linux內核模塊 92

    4.1Linux內核模塊簡介 92

    4.2Linux內核模塊程序結構 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.1Linux文件操作 104

    5.1.1文件操作繫統調用 104

    5.1.2C庫文件操作 108

    5.2Linux文件繫統 109

    5.2.1Linux文件繫統目錄結構 109

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

    5.3devfs 114

    5.4udev用戶空間設備管理 116

    5.4.1udev與devfs的區別 116

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

    5.4.3udev的組成 128

    5.4.4udev規則文件 129

    5.5總結 133

    第6章字符設備驅動 134

    6.1Linux字符設備驅動結構 134

    6.1.1cdev結構體 134

    6.1.2分配和釋放設備號 136

    6.1.3f?ile_operations結構體 136

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

    6.2globalmem虛擬設備實例描述 142

    6.3globalmem設備驅動 142

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

    6.3.2加載與卸載設備驅動 143

    6.3.3讀寫函數 144

    6.3.4seek函數 146

    6.3.5ioctl函數 146

    6.3.6使用文件私有數據 148

    6.4globalmem驅動在用戶空間中的驗證 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.2Linux異步通知編程 207

    9.2.1Linux信號 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.4Linux異步I/O 215

    9.4.1AIO概念與GNU C庫AIO 215

    9.4.2Linux內核AIO與libaio 219

    9.4.3AIO與設備驅動 222

    9.5總結 223

    0章中斷與時鐘 224

    10.1中斷與定時器 224

    10.2Linux中斷處理程序架構 227

    10.3Linux中斷編程 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

    1章內存與I/O訪問 251

    11.1CPU與內存、I/O 251

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

    11.1.2內存 252

    11.2Linux內存管理 256

    11.3內存存取 261

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

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

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

    11.4.1Linux 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.5I/O內存靜態映射 276

    11.6DMA 277

    11.6.1DMA與Cache一致性 278

    11.6.2Linux下的DMA編程 279

    11.7總結 285

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

    12.1Linux驅動的軟件架構 286

    12.2platform設備驅動 290

    12.2.1platform總線、設備與驅動 290

    12.2.2將globalf?ifo作為platform設備 293

    12.2.3platform設備資源和數據 295

    12.3設備驅動的分層思想 299

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

    12.3.2輸入設備驅動 301

    12.3.3RTC設備驅動 306

    12.3.4Framebuffer設備驅動 309

    12.3.5終端設備驅動 311

    12.3.6misc設備驅動 316

    12.3.7驅動核心層 321

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

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

    12.4.2Linux SPI主機和設備驅動 322

    12.5總結 330

    3章Linux塊設備驅動 331

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

    13.2Linux塊設備驅動結構 332

    13.2.1block_device_operations結構體 332

    13.2.2gendisk結構體 334

    13.2.3bio、request和request_queue 335

    13.2.4I/O調度器 339

    13.3Linux塊設備驅動的初始化 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.1vmem_disk的硬件原理 349

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

    13.7.3vmem_disk設備驅動的block_device_operations 351

    13.7.4vmem_disk的I/O請求處理 352

    13.8Linux MMC子繫統 354

    13.9總結 357

    4章Linux網絡設備驅動 358

    14.1Linux網絡設備驅動的結構 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.9DM9000網卡設備驅動實例 380

    14.9.1DM9000網卡硬件描述 380

    14.9.2DM9000網卡驅動設計分析 380

    14.10總結 386

    5章Linux I2C核心、總線與設備驅動 387

    15.1Linux I2C體繫結構 387

    15.2Linux I2C核心 394

    15.3Linux I2C適配器驅動 396

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

    15.3.2I2C總線的通信方法 397

    15.4Linux I2C設備驅動 399

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

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

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

    15.5Tegra I2C總線驅動實例 405

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

    15.7總結 413

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

    16.1Linux USB驅動層次 414

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

    16.1.2設備、配置、接口、端點 415

    16.2USB主機控制器驅動 420

    16.2.1USB主機控制器驅動的整體結構 420

    16.2.2實例:Chipidea USB主機驅動 425

    16.3USB設備驅動 425

    16.3.1USB設備驅動的整體結構 425

    16.3.2USB請求塊 430

    16.3.3探測和斷開函數 435

    16.3.4USB骨架程序 436

    16.3.5實例:USB鍵盤驅動 443

    16.4USB UDC與Gadget驅動 446

    16.4.1UDC和Gadget驅動的關鍵數據結構與API 446

    16.4.2實例:Chipidea USB UDC驅動 451

    16.4.3實例:Loopback Function驅動 453

    16.5USB OTG驅動 456

    16.6總結 458

    7章I2C、SPI、USB驅動架構類比 459

    17.1I2C、SPI、USB驅動架構 459

    17.2I2C主機和外設眼裡的Linux世界 460

    8章ARM Linux設備樹 461

    18.1ARM設備樹起源 461

    18.2設備樹的組成和結構 462

    18.2.1DTS、DTC和DTB等 462

    18.2.2根節點兼容性 468

    18.2.3設備節點兼容性 470

    18.2.4設備節點及label的命名 475

    18.2.5地址編碼 477

    18.2.6中斷連接 479

    18.2.7GPIO、時鐘、pinmux連接 480

    18.3由設備樹引發的BSP和驅動變更 484

    18.4常用的OF API 490

    18.5總結 493

    9章Linux電源管理的繫統架構和驅動 494

    19.1Linux電源管理的全局架構 494

    19.2CPUFreq驅動 495

    19.2.1SoC的CPUFreq驅動實現 495

    19.2.2CPUFreq的策略 501

    19.2.3CPUFreq的性能測試和調優 501

    19.2.4CPUFreq通知 502

    19.3CPUIdle驅動 504

    19.4PowerTop 508

    19.5Regulator驅動 508

    19.6OPP 511

    19.7PM QoS 515

    19.8CPU熱插撥 518

    19.9掛起到RAM 522

    19.10運行時的PM 528

    19.11總結 534

    第20章Linux芯片級移植及底層驅動 535

    20.1ARM Linux底層驅動的組成和現狀 535

    20.2內核節拍驅動 536

    20.3中斷控制器驅動 541

    20.4SMP多核啟動以及CPU熱插撥驅動 549

    20.5DEBUG_LL和EARLY_PRINTK的設置 556

    20.6GPIO驅動 557

    20.7pinctrl驅動 560

    20.8時鐘驅動 572

    20.9dmaengine驅動 578

    20.10總結 580

    第21章Linux設備驅動的調試 581

    21.1GDB調試器的用法 581

    21.1.1GDB的基本用法 581

    21.1.2DDD圖形界面調試工具 591

    21.2Linux內核調試 594

    21.3內核打印信息——printk 596

    21.4DEBUG_LL和EARLY_PRINTK 599

    21.5使用“/proc” 600

    21.6Oops 606

    21.7BUG_ON和WARN_ON 608

    21.8strace 609

    21.9KGDB 610

    21.10使用仿真器調試內核 612

    21.11應用程序調試 613

    21.12Linux性能監控與調優工具 616

    21.13總結 618

    作者介紹


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

    序言





    "
     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部