Linux Device Driver Development : Everything you need to start with device driver development for Linux kernel and embedded Linux, 2/e (Paperback)

Madieu, John

  • 出版商: Packt Publishing
  • 出版日期: 2022-04-21
  • 售價: $2,100
  • 貴賓價: 9.5$1,995
  • 語言: 英文
  • 頁數: 708
  • 裝訂: Quality Paper - also called trade paper
  • ISBN: 1803240067
  • ISBN-13: 9781803240060
  • 相關分類: 嵌入式系統Linux
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

Get up to speed with the most important concepts in driver development and focus on common embedded system requirements such as memory management, interrupt management, and locking mechanisms

Key Features

  • Write feature-rich and customized Linux device drivers for any character, SPI, and I2C device
  • Develop a deep understanding of locking primitives, IRQ management, memory management, DMA, and so on
  • Gain practical experience in the embedded side of Linux using GPIO, IIO, and input subsystems

Book Description

Linux is by far the most-used kernel on embedded systems. Thanks to its subsystems, the Linux kernel supports almost all of the application fields in the industrial world. This updated second edition of Linux Device Driver Development is a comprehensive introduction to the Linux kernel world and the different subsystems that it is made of, and will be useful for embedded developers from any discipline.

You'll learn how to configure, tailor, and build the Linux kernel. Filled with real-world examples, the book covers each of the most-used subsystems in the embedded domains such as GPIO, direct memory access, interrupt management, and I2C/SPI device drivers. This book will show you how Linux abstracts each device from a hardware point of view and how a device is bound to its driver(s). You'll also see how interrupts are propagated in the system as the book covers the interrupt processing mechanisms in-depth and describes every kernel structure and API involved. This new edition also addresses how not to write device drivers using user space libraries for GPIO clients, I2C, and SPI drivers.

By the end of this Linux book, you'll be able to write device drivers for most of the embedded devices out there.

What you will learn

  • Download, configure, build, and tailor the Linux kernel
  • Describe the hardware using a device tree
  • Write feature-rich platform drivers and leverage I2C and SPI buses
  • Get the most out of the new concurrency managed workqueue infrastructure
  • Understand the Linux kernel timekeeping mechanism and use time-related APIs
  • Use the regmap framework to factor the code and make it generic
  • Offload CPU for memory copies using DMA
  • Interact with the real world using GPIO, IIO, and input subsystems

Who this book is for

This Linux OS book is for embedded system and embedded Linux enthusiasts/developers who want to get started with Linux kernel development and leverage its subsystems. Electronic hackers and hobbyists interested in Linux kernel development as well as anyone looking to interact with the platform using GPIO, IIO, and input subsystems will also find this book useful.

商品描述(中文翻譯)

快速掌握驅動程式開發中最重要的概念,並專注於常見的嵌入式系統需求,如記憶體管理、中斷管理和鎖定機制。

主要特點:

- 為任何字符、SPI 和 I2C 裝置撰寫功能豐富且自訂的 Linux 裝置驅動程式。
- 深入了解鎖定原語、IRQ 管理、記憶體管理、DMA 等等。
- 透過 GPIO、IIO 和輸入子系統在嵌入式 Linux 方面獲得實際經驗。

書籍描述:

Linux 是嵌入式系統中使用最廣泛的內核。由於其子系統的支援,Linux 內核幾乎支援工業界中的所有應用領域。這本更新的第二版《Linux 裝置驅動程式開發》是對 Linux 內核世界和其不同子系統的全面介紹,對於任何學科的嵌入式開發人員都很有用。

您將學習如何配置、定制和構建 Linux 內核。書中充滿了實際示例,涵蓋了嵌入式領域中最常用的子系統,如 GPIO、直接記憶體存取、中斷管理和 I2C/SPI 裝置驅動程式。本書將向您展示 Linux 如何從硬體角度抽象出每個裝置,以及裝置如何與其驅動程式綁定。書中還深入介紹了中斷處理機制,並描述了每個內核結構和相關 API。這本新版還介紹了如何避免使用用於 GPIO 客戶端、I2C 和 SPI 驅動程式的用戶空間庫撰寫裝置驅動程式。

通過閱讀本書,您將能夠為大多數嵌入式裝置撰寫裝置驅動程式。

學到的內容:

- 下載、配置、構建和定制 Linux 內核。
- 使用設備樹描述硬體。
- 撰寫功能豐富的平台驅動程式,並利用 I2C 和 SPI 匯流排。
- 充分利用新的並發管理工作隊列基礎設施。
- 了解 Linux 內核的時間記錄機制並使用相關的時間 API。
- 使用 regmap 框架將程式碼因素化並使其通用化。
- 使用 DMA 進行記憶體複製以減輕 CPU 負擔。
- 通過 GPIO、IIO 和輸入子系統與現實世界互動。

適合閱讀對象:

本書適合嵌入式系統和嵌入式 Linux 熱衷者/開發人員,他們希望開始進行 Linux 內核開發並利用其子系統。對於對 Linux 內核開發感興趣的電子駭客和愛好者,以及任何希望使用 GPIO、IIO 和輸入子系統與平台互動的人,本書也很有用。

目錄大綱

1. Introduction to Kernel Development
2. Understanding Linux Kernel Module Basic Concepts
3. Dealing with Kernel Core Helpers
4. Writing Character Device Drivers
5. Understanding and Leveraging the Device Tree
6. Introduction to Devices, Drivers, and Platform Abstraction
7. Understanding the Concept of Platform Devices and Drivers
8. Writing I2C Device Drivers
9. Writing SPI Device Drivers
10. Understanding the Linux Kernel Memory Allocation
11. Implementing Direct Memory Access (DMA) Support
12. Abstracting Memory Access – Introduction to the Regmap API: a Register Map Abstraction
13. Demystifying the Kernel IRQ Framework
14. Introduction to the Linux Device Model
15. Digging into the IIO Framework
16. Getting the Most Out of the Pin Controller and GPIO Subsystems
17. Leveraging the Linux Kernel Input Subsystem

目錄大綱(中文翻譯)

1. 內核開發介紹
2. 理解Linux內核模組基本概念
3. 處理內核核心輔助工具
4. 編寫字符設備驅動程式
5. 理解並利用設備樹
6. 設備、驅動程式和平台抽象介紹
7. 理解平台設備和驅動程式的概念
8. 編寫I2C設備驅動程式
9. 編寫SPI設備驅動程式
10. 理解Linux內核內存分配
11. 實現直接內存訪問(DMA)支援
12. 抽象內存訪問 - Regmap API介紹:註冊映射抽象
13. 解密內核中斷請求(IRQ)框架
14. Linux設備模型介紹
15. 深入瞭解IIO框架
16. 充分利用引腳控制器和GPIO子系統
17. 利用Linux內核輸入子系統的功能