Linux設(shè)備驅(qū)動程序開發(fā)
定 價(jià):108 元
- 作者:Madieu John 著
- 出版時(shí)間:2018/8/1
- ISBN:9787564177539
- 出 版 社:東南大學(xué)出版社
- 中圖法分類:TP316.85
- 頁碼:
- 紙張:膠版紙
- 版次:1
- 開本:16K
Linux內(nèi)核是一種復(fù)雜、可遷移、模塊化和廣泛 使用的軟件,在全世界過半數(shù)設(shè)備的80%左右服務(wù)器 和嵌入式系統(tǒng)中運(yùn)行。設(shè)備驅(qū)動程序在Linux系統(tǒng)良 好運(yùn)行中起到**重要的作用。隨著Linux已成為* 流行的操作系統(tǒng)之一,為專有設(shè)備開發(fā)驅(qū)動程序的興 趣也與日俱增。
約翰·馬杜著的《Linux設(shè)備驅(qū)動程序開發(fā)(影印 版)(英文版)》將幫助你理解驅(qū)動程序相關(guān)基礎(chǔ)知識 ,并帶你完成游覽Linux內(nèi)核的漫長旅程。本書涵蓋 基于多種Linux子系統(tǒng)的驅(qū)動程序開發(fā),包括內(nèi)存管 理、PWM、RTC、IIO和IRQ管理。本書還提供直接內(nèi)存 訪問和網(wǎng)絡(luò)設(shè)備驅(qū)動程序的實(shí)用方法。
在本書*后,你將會熟悉驅(qū)動程序開發(fā)的概念, 并且可以從頭開始為*新版內(nèi)核編寫任何驅(qū)動程序。
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