幫助中心 | 我的帳號 | 關於我們

手把手教你學Linux設備驅動開發

  • 作者:北京迅為電子有限公司|責編:胡俊英
  • 出版社:人民郵電
  • ISBN:9787115701770
  • 出版日期:2026/08/01
  • 裝幀:平裝
  • 頁數:246
人民幣:RMB 79.8 元      售價:
放入購物車
加入收藏夾

內容大鋼
    Linux設備驅動程序(常簡稱為驅動)開發是構建智能硬體與物聯網系統的核心技術,它不僅要求開發者深入理解Linux內核工作機制,還要求開發者掌握硬體交互、併發控制、中斷處理等關鍵系統級編程技能。
    本書系統講解嵌入式Linux設備驅動的知識體系與開發方法。全書從前置知識與Linux內核編程出發,深入講解字元設備驅動、併發與競爭、I/O模型、中斷、平台匯流排、設備樹、設備模型、熱插拔技術等核心機制。在此基礎上,本書結合現代嵌入式開發的實際需求,深入剖析pinctrl與GPIO子系統、輸入子系統等關鍵框架。之後,以單匯流排、I2C匯流排、SPI匯流排、串口通信、PWM、CAN匯流排等為例,系統闡述複雜匯流排設備的驅動開發流程,並進一步拓展至網路設備、IIO子系統、USB子系統及塊設備驅動的實現,涵蓋從外設到網路、從通信到存儲的各個驅動開發領域。
    本書既可面向嵌入式系統開發工程師、Linux驅動工程師及具有相關基礎的嵌入式開發愛好者,作為系統學習驅動開發的指南,也可作為高校嵌入式相關課程的教學參考書。

作者介紹
北京迅為電子有限公司|責編:胡俊英
    北京迅為電子有限公司(簡稱迅為公司)是一家專註于嵌入式平台與解決方案的高新技術公司,也是物聯網與邊緣計算領域的重要技術創新公司。     迅為公司研發團隊在嵌入式領域擁有十余年的技術積累與行業實踐經驗,在硬體設計、嵌入式Linux系統與Android系統定製、底層驅動開發、系統性能優化及合規性設計等方向形成了完整的技術棧,具備出色的跨行業項目落地能力。團隊長期深耕嵌入式核心技術,致力於為工業物聯網、智能終端、邊緣計算等領域提供可靠的嵌入式平台與解決方案,持續助力國家智能製造與信息化建設。

目錄
第1章 前置知識
  1.1 Linux基礎知識
    1.1.1 Linux的前身——UNIX
    1.1.2 GNU和Linux的發展
    1.1.3 Linux的優勢
    1.1.4 Linux版本命名
  1.2 設備驅動開發的基礎知識
    1.2.1 設備驅動分類
    1.2.2 框架學習法
  1.3 iTOP開發板介紹
    1.3.1 連接方式介紹
    1.3.2 核心板介紹
    1.3.3 底板介紹
  1.4 小結
第2章 Linux內核編程
  2.1 Linux內核源碼結構
  2.2 helloworld驅動程序
  2.3 將驅動編譯為內核模塊
    2.3.1 內核模塊編譯及載入與卸載
    2.3.2 內核模塊參數傳遞
    2.3.3 內核模塊符號導出
    2.3.4 內核模塊的載入流程
  2.4 將驅動編譯進內核
    2.4.1 圖形化操作界面
    2.4.2 Kconfig與Makefile
    2.4.3 編譯進內核的驅動的載入流程
  2.5 小結
第3章 字元設備驅動
  3.1 文件操作集
  3.2 字元設備註冊
    3.2.1 申請和釋放設備號
    3.2.2 創建設備節點
    3.2.3 註冊字元設備
  3.3 雜項設備註冊
  3.4 內核空間與用戶空間數據交互機制
  3.5 文件私有數據管理
  3.6 ioctl()函數
  3.7 內核定時器
  3.8 RTC驅動
  3.9 看門狗驅動
  3.10 驅動程序調試方法
  3.11 小結
第4章 併發與競爭
  4.1 併發與競爭概述
  4.2 原子操作
  4.3 自旋鎖
  4.4 信號量
  4.5 互斥鎖
  4.6 小結
第5章 I/O模型

  5.1 阻塞與非阻塞I/O
  5.2 I/O多路復用
  5.3 信號驅動I/O
  5.4 小結
第6章 中斷
  6.1 中斷概述
  6.2 中斷的申請與處理
  6.3 中斷的底半部實現方法
    6.3.1 tasklet
    6.3.2 軟中斷
    6.3.3 工作隊列
    6.3.4 中斷線程化
  6.4 小結
第7章 平台匯流排
  7.1 平台匯流排模型
  7.2 平台匯流排驅動開發
    7.2.1 平台設備註冊和卸載
    7.2.2 平台驅動註冊和卸載
  7.3 小結
第8章 設備樹
  8.1 設備樹概述
  8.2 設備樹語法
    8.2.1 根節點
    8.2.2 子節點
    8.2.3 reg屬性
    8.2.4 compatible屬性
    8.2.5 中斷相關屬性
    8.2.6 自定義屬性
    8.2.7 修改或追加節點內容
    8.2.8 包含文件
  8.3 常用的of操作函數
    8.3.1 查找節點函數
    8.3.2 獲取屬性函數
    8.3.3 映射函數
    8.3.4 獲取中斷資源函數
  8.4 設備樹展開流程
  8.5 設備樹插件
  8.6 小結
第9章 設備模型
  9.1 設備模型概述
    9.1.1 匯流排
    9.1.2 設備
    9.1.3 設備驅動
    9.1.4 類
  9.2 kobject與kset
  9.3 引用計數
  9.4 小結
第10章 熱插拔技術
  10.1 熱插拔概述
  10.2 udev和mdev規則

  10.3 小結
第11章 pinctrl與GPIO子系統
  11.1 pinctrl子系統概述
  11.2 pinctrl子系統使用
  11.3 GPIO子系統概述
  11.4 pinctrl子系統與GPIO子系統配合使用
  11.5 小結
第12章 輸入子系統
  12.1 輸入子系統概述
  12.2 輸入設備驅動開發
  12.3 輸入事件處理驅動開發
  12.4 上報數據分析
    12.4.1 數據格式簡介
    12.4.2 實例分析
  12.5 小結
第13章 單匯流排
  13.1 單匯流排概述
  13.2 DS18B20寄存器介紹
  13.3 DS18B20指令介紹
  13.4 DS18B20驅動開發
    13.4.1 申請GPIO
    13.4.2 實現複位時序
    13.4.3 實現寫時序
    13.4.4 實現讀時序
    13.4.5 實現溫度讀取功能
  13.5 小結
第14章 I2C匯流排
  14.1 I2C匯流排概述
  14.2 I2C時序分析
  14.3 I2C子系統框架
  14.4 I2C的使用
    14.4.1 i2c_client部分
    14.4.2 i2c_driver部分
    14.4.3 I2C讀寫函數
  14.5 在應用層使用I2C匯流排
  14.6 i2c-tools的使用
    14.6.1 i2cdetect:掃描I2C匯流排設備
    14.6.2 i2cdump:讀取設備寄存器的值
    14.6.3 i2cset:向指定寄存器寫入數據
    14.6.4 i2cget:從指定寄存器讀取數據
  14.7 小結
第15章 SPI匯流排
  15.1 SPI匯流排概述
  15.2 SPI工作模式
  15.3 SPI子系統框架
  15.4 SPI設備驅動開發
    15.4.1 spi_device部分
    15.4.2 spi_driver部分
    15.4.3 SPI讀寫函數
  15.5 在應用層使用SPI匯流排

    15.5.1 spidev工具組簡介
    15.5.2 SPI應用開發
  15.6 小結
第16章 串口通信
  16.1 串口概述
  16.2 串口通信協議
  16.3 串口應用開發
  16.4 小結
第17章 PWM
  17.1 PWM概述
  17.2 PWM驅動開發
    17.2.1 PWM子系統核心API
    17.2.2 PWM驅動程序編寫
  17.3 模擬PWM
  17.4 小結
第18章 CAN匯流排
  18.1 CAN概述
  18.2 CAN幀格式
  18.3 CAN匯流排仲裁機制
  18.4 CAN應用開發
    18.4.1 套接字創建與綁定
    18.4.2 數據發送應用
    18.4.3 數據接收應用
  18.5 小結
第19章 網路設備
  19.1 網路設備概述
  19.2 乙太網介面
  19.3 網路體系架構
  19.4 數據封裝與解封裝
  19.5 網路設備驅動框架
  19.6 網路設備驅動開發
    19.6.1 註冊/註銷網路設備驅動
    19.6.2 初始化網路設備
    19.6.3 打開/關閉網路設備
    19.6.4 數據收發流程
  19.7 網路應用編程
    19.7.1 TCP套接字編程
    19.7.2 UDP套接字編程
  19.8 小結
第20章 IIO子系統
  20.1 IIO子系統概述
    20.1.1 IIO核心結構體介紹
    20.1.2 IIO設備註冊
  20.2 使用sysfs介面操作ADC設備
  20.3 基於IIO的ADC設備驅動開發實戰
    20.3.1 IIO API函數介紹
    20.3.2 ADC設備驅動程序編寫
  20.4 小結
第21章 USB子系統
  21.1 USB簡介

  21.2 USB協議介紹
    21.2.1 USB描述符
    21.2.2 USB通信數據格式
    21.2.3 USB枚舉
  21.3 USB驅動框架
  21.4 USB設備驅動
    21.4.1 USB設備驅動框架
    21.4.2 USB請求塊
    21.4.3 probe和disconnect函數
  21.5 Gadget Function驅動
  21.6 小結
第22章 塊設備
  22.1 塊設備簡介
    22.1.1 什麼是塊設備
    22.1.2 常見存儲介質
  22.2 文件系統與存儲設備
    22.2.1 什麼是文件系統
    22.2.2 文件系統的種類
  22.3 塊設備驅動框架
    22.3.1 通用塊層
    22.3.2 I/O調度層
    22.3.3 塊設備驅動層
  22.4 塊設備驅動開發
    22.4.1 register_blkdev()函數
    22.4.2 unregister_blkdev()函數
    22.4.3 blk_mq_init_sq_queue()函數
    22.4.4 blk_cleanup_queue()函數
    22.4.5 set_capacity()函數
    22.4.6 add_disk()函數
    22.4.7 blk_mq_start_request()函數
    22.4.8 blk_rq_pos()函數
    22.4.9 blk_rq_cur_bytes()函數
    22.4.10 bio_data()函數
    22.4.11 blk_update_request()函數
    22.4.12 blk_mq_end_request()函數
    22.4.13 alloc_disk宏
    22.4.14 rq_data_dir宏
    22.4.15 vmem虛擬塊設備驅動的實現
  22.5 小結

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032