Before we can execute the program there are a number of hurdles we
must overcome. First, we must compile the program into a binary format
suitable for loading onto the discovery board. Second, we must load this
binary into the flash memory. Finally, in order to observe the program, we
must intereact with the discovery board through a debugger (GDB). While
we use GDB as a loader as well as a debugger, in general the last two steps
may involve separate tools.