Today, developers utilizing embedded processors in their applications require more flexibility from their System-on-Chip (SoC) solutions. Often, missing features like additional peripherals or custom interfaces are implemented using FPGAs, ASICs, or software resources, but these approaches can be costly as they take up valuable board space or consume processing bandwidth of the main processor. The programmable real-time unit (PRU) subsystem gives system engineers the ability to implement a variety of “soft” peripherals which are peripherals implemented using a combination of on-chip hardware and software.