In the Hello World tutorial we glossed over a lot of detail about what we were writing to and how the hardware access works. For this tutorial, we’re going to revisit our blinking LED and go into more detail about the hardware involved.
A register is a memory address that is tied to hardware, effectively the hardware either listens to what is written to a register, or updates the contents of a register for us to read and act on.
A peripheral, like say a USART or a timer, has a collection of registers that makes up the capabilities of that peripheral. On the Kakapo, those collections are represented by C structs, with different instances of the same peripheral using the same base struct. These are pulled into our code with the include near the top of the hello world example: