I would like to introduce this book: Linux Device Drivers by Jonathan Corbet. It is used as a reference of many people who work with hardware or embedded system. In my case, I read many technical documents and I found this book, at that time, really felt very happy as finding a great way to go.
I work in embedded system field, so it is very important. I hope it is good for you also. Enjoy !
Here we go
This is the web site for the Third Edition of Linux Device Drivers, by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartm
an. For the moment, only the finished PDF files are available; we do intend to make an HTML version and the DocBook
source available as well.
This book is available under the terms of the Creative Commons Attribution-ShareAlike 2.0 license. That means that you are free to download and redistribute it. The development of the book was made possible, however, by those who purchase a copy from O’Reilly or elsewhere.
LDD3 is current as of the 2.6.10 kernel. See the LWN 2.6 API changes page for information on
LDD3 chapter files
Title page Copyright and credits Table of Contents Preface Chapter 1: An Introduction to Device Drivers Chapter 2: Building and Running Modules Chapter 3: Char Drivers Chapter 4: Debugging Techniques Chapter 5: Concurrency and Race Conditions Chapter 6: Advanced Char Driver Operations Chapter 7: Time, Delays, and Deferred Work Chapter 8: Allocating Memory Chapter 9: Communicating with Hardware Chapter 10: Interrupt Handling Chapter 11: Data Types in the Kernel Chapter 12: PCI Drivers Chapter 13: USB Drivers Chapter 14: The Linux Device Model Chapter 15: Memory Mapping and DMA Chapter 16: Block Drivers Chapter 17: Network Drivers Chapter 18: TTY Drivers Index
- A tarball of the LDD3 PDF files (11MB).
Note: you can also find out many interesting things in those authos’ website.