Learn to design, develop, and validate USB systems with ease, using this valuable resource that provides a detailed bootstrap session on the Linux-USB design and implementation. BOOTSTRAP YOURSELF WITH LINUX-USB STACK offers a tour of the Linux-USB stack, explaining how to develop drivers for USB device and host controllers on Linux. It moves on to explore the interfaces and data structures of a USB module with UML diagrams, concluding each chapter with a sample implementation that applies the information just covered. A comprehensive look at the various tools and methods available on Linux to validate a USB system is also provided. Using a straightforward writing style, this book is a powerful tool for anyone learning to develop a protocol stack with proper architecture and design, ultimately leading to better quality, maintainability, and testability.
Features - Clarifies complex concepts with UML activity diagrams and sequence diagrams that present the Linux-USB subsystem framework visually.
- Enhances understanding of user-level programming of USB system and details with easy methods to validate and debug a USB system.
- Offers practical applications of the entire process with an appendix that provides an example driver of how to develop a simple USB device on Linux.
- Adds value with bonus CD-ROM containing all the sample programs discussed in the book, as well as an exclusive tool that can be used to perform regression tests of a USB system.
About The Author Rajaram Regupathy has more than a decade of experience in designing and managing embedded and programming tool products. He loves to design and program new and emerging technology products and has successfully engineered products based on USB from scratch. A Linux and open source enthusiast, Regupathy has published open source articles for Linux for You and Embedded.com, among others.
Table of Contents Introduction. - 1. USB and Linux: Introduction.
- 2. USB: An Overview.
- 3. Overview of the Linux USB Subsystem.
PART I: USB HOST. - 4. Linux USB Host Driver.
- 5. USB Device Notification.
- 6. Device File System.
- 7. Power Management.
- 8. Hub.
- 9. Generic Driver.
- 10. Host Driver for Embedded Controller.
PART II: USB DEVICE. - 11. Linux USB Gadget Driver .
- 12. Peripheral Device Controller Driver.
- 13. Gadget Driver.
- 14. Class Driver.
PART III: USB OTG. - 15. Linux USB OTG Driver.
PART IV: MISCELLANEOUS LINUX USB SUBSYSTEMS. - 16. USB Virtual File Systems.
- 17. User Space USB Drivers.
- 18. Debugging Using Linux USB.
- 19. Test Using Linux USB.
- Index.