"Supported by Linux" rarely means "it will work for you". In fact, most vendor-supplied device drivers require extensive modification---and often a complete rewrite---before deployment in embedded environments.This presentation offers a list of best practices, with examples, drawn from the author's decade of experience writing real-world, high-complexity device drivers for Linux kernels. You'll learn how to make the compiler write bulletproof register access code for you, how to plan for hardware integration and field failures, and considerations for proactive, reactive, and interactive debugging scenarios. You'll also learn the key differences between "device drivers" and "interfaces", and how that knowledge translates into code that does more AND works better than the code you're delivering now. |