Linux Kernel and Driver Development - Practical Labs (Embedded Linux) (Volume 4)
This book contains the practical labs corresponding to the "Linux Kernel and Driver Development: Training Handouts" book from Bootlin. Get your hands on an embedded board based on an ARM processor (the Beagle Bone Black board), and apply what you learned: write a Device Tree to declare devices connected to your board, configure pin multiplexing, and implement drivers for I2C and serial devices. You will learn how to manage multiple devices with the same driver, to acces and write hardware registers, to allocate memory, to register and manage interrupts, as well as how to debug your code and interpret the kernel error messages. You will also keep an eye on the board and CPU datasheets so that you will always understand the values that you feed to the kernel.