![]()
内容推荐 Linux内核是一种复杂、可迁移、模块化和广泛使用的软件,在全世界过半数设备的80%左右服务器和嵌入式系统中运行。设备驱动程序在Linux系统良好运行中起到非常重要的作用。随着Linux已成为最流行的操作系统之一,为专有设备开发驱动程序的兴趣也与日俱增。 约翰·马杜著的《Linux设备驱动程序开发(影印版)(英文版)》将帮助你理解驱动程序相关基础知识,并带你完成游览Linux内核的漫长旅程。本书涵盖基于多种Linux子系统的驱动程序开发,包括内存管理、PWM、RTC、IIO和IRQ管理。本书还提供直接内存访问和网络设备驱动程序的实用方法。 在本书最后,你将会熟悉驱动程序开发的概念,并且可以从头开始为最新版内核编写任何驱动程序。 目录 Preface Chapter 1: Introduction to Kernel Development Environment setup Getting the sources Source organization Kernel configuration Build your kernel Kernel habits Coding style Kernel structures allocation/initialization Classes, objects, and OOP Summary Chapter 2: Device Driver Basis User space and kernel space The concept of modules Module dependencies depmod utility Module loading and unloading Manual loading modprobe and insmod /etc/modules-load.d/(filename).conf Auto-loading Module unload Driver skeletons Module entry and exit point init and exit attributes Module information Licensing Module author(s) Module description Errors and message printing Error handling Handling null pointer errors Message printing - printk0 Module parameters Building your first module The module's makefile In the kernel tree Out of the tree Building the module Summary Chapter 3: Kernel Facilities and Helper Functions Understanding container_of macro Linked lists Creating and initializing the list Dynamic method Static method Creating a list node Adding a list node Deleting a node from the list Linked list traversal Kernel sleeping mechanism Wait queue Delay and timer management Standard timers Jiffies and HZ Timers API Timer setup initialization Standard timer example High resolution timers (HRTs) HRT API HRT setup initialization Dynamic tick/tickless kernel Delays and sleep in the kernel Atomic context Nonatomic context Kernel locking mechanism Mutex Mutex API Declare Acquire and release Spinlock Spinlock versus mutexes Work deferring mechanism Softirqs and ksoftirqd ksoftirqd Tasklets Declaring a tasklet …… Chanter 4: Character Device Drivers Chapter 5: Platform Device Drivers Chaoter 6: The Conceot of Device Tree Chapter 7: 12C Client Drivers Chapter 8: SPI Device Drivers Chapter 9: Regmap API - A Register Map Abstraction Chapter 10: IIO Framework Chapter 11: Kernel Memory Management Chapter 12: DMA- Direct Memory Access Chapter 13: Linux Device Model Chapter 14: Pin Control and GPIO Subsystem Chapter 15: GPIO Controller Drivers - gpio_chip Chapter 16: Advanced IRQ Management Chaoter 17: Inout Devices Drivers Chapter 18: RTC Drivers Chapter 19: PWM Drivers Chapter 20: Regulator Framework Chapter 21: Framebuffer Drivers Chapter 22: Network Interface Card Drivers
|