So far, all of our programming has been done using high-level languages, such as shell script or Node.js. In this chapter, we will look at other BeagleBone software development methods along with other pieces of software on the BeagleBone that are necessary to support additional hardware. The BeagleBone is a full Linux system like Linux on a desktop or laptop and most desktop development techniques will be applicable. In this chapter, we will cover the following topics:
BeagleBone programming with the C and Linux APIs
User space / kernel space
Kernel driver on the BeagleBone
Device tree on the BeagleBone
Pinmuxing
Real-time behavior on Linux