Different Targets can be built by implementing a _init_func() and _main_func()_ function in src/main_foo.c The resulting binary main_foo.bin can be built by issuing make BOARD=PCD TARGET=main_foo If you want to add debugging support (debug unit aka DBGU, RS232), add DEBUG=1 Building dfu.bin (the DFU loader binary): make -f Makefile.dfu BOARD=PCD For more information, please read http://wiki.openpcd.org/wiki/Firmware