Linux Device Drivers Development: Develop customized drivers for embedded Linux
LINUX DRIVER DEVELOPMENT FOR EMBEDDED PROCESSORS -SECOND EDITION-
The flexibility of embedded Linux, the availability of powerful, energy efficient processors designed for embedded computing and the low cost of new processors are encouraging many industrial companies to come up with new developments based on embedded processors. Current engineers have powerful tools in their hands for developing applications previously unimagined, but they need to understand the countless features that Linux offers today. This book will teach you how to develop device drivers for Device Tree embedded Linux systems. You will learn how to write different types of Linux drivers, as well as the appropriate Application Program Interfaces (APIs) and methods to interface with kernel and user spaces.
This book is meant to be practical, but also provides an important theoretical base. Nearly thirty drivers are written and ported to three different processors. You can choose between the NXP i.MX7D, Microchip SAMA5D2 and Broadcom BCM2837 processors to develop and test the drivers, whose implementation is described in detail in the practical lab sections of the book. Before you start reading, I encourage you to acquire one of these processor boards whenever you have access to some GPIOs, and at least one SPI and I2C controller. The hardware configurations of the different evaluation boards used to develop the drivers are explained in detail throughout this book; one of the boards used to implement the drivers is the famous Raspberry PI 3 Model B board.
You will learn how to develop drivers, from the simplest ones that do not interact with any external hardware, to drivers that manage different kind of devices: accelerometers, DACs, ADCs, RGB LEDs, Multi-Display LED controllers, I/O expanders, buttons, and USB HID devices. You will also develop DMA drivers, drivers that manage interrupts, and drivers that write/read on the internal registers of the processor to control external devices. To ease the development of some of these drivers, you will use different types of frameworks: Miscellaneous framework, LED framework, UIO framework, Input framework and the IIO industrial framework. This second edition has been updated to the v4.9 LTS kernel.
Since the end of March 2019, a new chapter and an appendix have been added to the text of the book. These are: Chapter 13, “Linux USB Device Drivers†and Appendix, “Porting Kernel Modules to the Microchip SAMA5D27-SOM1â€. These two new chapters can be downloaded from the Github of this book for readers who have acquired the book before that date. In the Chapter 13, you will learn how to create a fully functional USB HID device based on the Microchip PIC32MX microcontroller that will send/receive data to/from a Linux USB Host device based on the Microchip SAMA5D27 processor; several custom Linux USB device drivers will be developed throughout this chapter. The Appendix describes the hardware settings for the ATSAMA5D27-SOM1-EK1 board that are needed to test the practical labs described throughout this book. To run the labs on this board, the SAMA5D27-SOM1 drivers based on the v4.14 LTS kernel and the SAMA5D27-SOM1 device tree settings can be downloaded from the GitHub repository of this book.
Country | USA |
Manufacturer | Independently published |
Binding | Paperback |
EANs | 9781729321829 |
ReleaseDate | 0000-00-00 |