Hardware Interfacing with Embedded Linux
Many of the things around you have Linux embedded inside: WiFi routers, smart thermostats, smart door bells. When writing code for these devices you have to be aware of the techniques available to access the hardware at a low level.
This two day, hands-on, workshop will give you a chance to explore numerous types of hardware interfacing, including:
- GPIO
- i2c
- Camera
For the hands-on portion of the workshop we will be using Raspberry Pi boards to implement a smart door bell
In the lectures, you will learn the theory necessary to implement such a device. Starting from power on, we will consider how Linux discovers what hardware is attached, and especially the role of the device tree. We will look how Linux represents hardware internally through the device driver model and the sysfs file system, and how it loads device drivers for each component of hardware. Then we will see how to interact with device drivers from user-space programs to make a working system.
We will be using the industry standard Yocto Project to build the disk images for the target. If you are not familiar with Yocto, don’t worry: we will be covering the fundamentals of Yocto as well.
The workshop is suitable for anyone working with Embedded Linux, or IoT devices, or is just curious about how things work
To get the best out of it you will need good command-line Linux skills (grep, find, bash), good C/C++ coding skills, and a basic knowledge of computer architecture (memory address spaces, interrupts, DMA)
Chris Simmonds is a software consultant and trainer living in southern England. He has spent almost two decades designing and building open-source embedded systems of all shapes and sizes, and he has encapsulated much of that experience in his book, “Mastering Embedded Linux Programming”.
He is a frequent presenter at open source and embedded conferences, including the Embedded Linux Conference and Embedded World. You can see some of his work on the “Inner Penguin” blog at www.2net.co.uk