Summary
In this chapter, we learned how to integrate a peripheral with a popular SoC. To do that, we had to mux pins and modify the device tree source using knowledge gleaned from data sheets and schematics. Without finished hardware in hand, we had to rely on a breakout board and do some soldering so that the part could be wired together with a dev board. Lastly, we learned how to use a logic analyzer to verify and troubleshoot electrical signals. Now that we have working hardware, we can begin to develop our embedded application.
The next two chapters are all about system startup and the different options you have for the init
program, from the simple BusyBox init
to more complex systems such as System V init
, systemd
, and BusyBox's runit
. Your choice of init
program can have a big impact on the user experience of your product, both in terms of boot times and fault tolerance.