The CyDAC's firmware is broken a cross two cores. One core (core 0) is running PetaLinux and the other (core 1) is bare metal. PetaLinux is used to handle communication between the lab computer and the CyDAQ. It can be broken into two parts: communication between the lab computer and the CyDAC and the first core and second core.