جزییات کتاب
LINUX DRIVER DEVELOPMENT FOR EMBEDDED PROCESSORS -SECOND EDITION-Note: Read with the free Kindle App (available on iOs, Android, PC & Mac) on your smartphone, tablet, computer or any of the devices listed in the drop-down at the end of the following ebook description.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. This eBook will teach you how to develop device drivers for Device Tree embedded Linux systems.This eBook 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 eBook. 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 eBook; 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 has been added to the text of the eBook. This is: Chapter 13, “Linux USB Device Drivers”. This new chapter can be downloaded from the Github of this eBook. In the Chapter 13, you will learn how to create a fully functional USB HID device that will send/receive data to/from a Linux USB Host device; several custom Linux USB device drivers will be developed throughout this chapter.Since the end of November 2019, the Linux drivers included in this book have been adapted to run on the Raspberry Pi 4 Model B board using Linux kernel v4.19 LTS. The Raspberry Pi 4 Linux drivers can be downloaded from the Github repository of this eBook.Since the beginning of March 2020, the Linux drivers included in this book have been adapted to run on the NXP i.MX 7Dual MCIMX7SABRE board using Linux kernel v4.19 LTS. The NXP i.MX 7Dual Linux drivers can be downloaded from the Github repository of this eBook.Since the end of March 2020, the Linux drivers included in this book have been adapted to run on the ST STM32MP1 processor using the STM32MP157C-DK2 board and the Linux kernel v4.19 LTS. The ST STM32MP1 Linux drivers can be downloaded from the Github repository of this eBook.Note: A "Practical Labs Hardware" document has been included to the Github of the eBook that details all the used hardware in each chapter to develop the lab examples of the book.