void SetupPRU(void *args)
{
    int32_t status = 0;

    gIcssg1Pru0Handle = PRUICSS_open(CONFIG_ICSSG1_PRU0);
    DebugP_log("PRUICSS_open!\r\n");

    status = PRUICSS_initMemory(gIcssg1Pru0Handle, PRUICSS_DATARAM(CONFIG_ICSSG1_PRU0));
    DebugP_log("PRUICSS_initMemory DRAM = %d!\r\n", status);

    status = PRUICSS_initMemory(gIcssg1Pru0Handle, PRUICSS_SHARED_RAM);
    DebugP_log("PRUICSS_initMemory Shared RAM = %d!\r\n", status);

    status = PRUICSS_disableCore(gIcssg1Pru0Handle, PRUICSS_PRU0);
    DebugP_log("PRUICSS_disableCore = %d!\r\n", status);

    status = PRUICSS_writeMemory(gIcssg1Pru0Handle,
                        PRUICSS_IRAM_PRU(PRUICSS_PRU0),
                        0,
                        (uint32_t *) PRU0Firmware_0,
                        sizeof(PRU0Firmware_0));
    DebugP_log("PRUICSS_writeMemory = %d!\r\n", status);

    status = PRUICSS_resetCore(gIcssg1Pru0Handle, PRUICSS_PRU0);
    DebugP_log("PRUICSS_resetCore = %d!\r\n", status);

    ClockP_usleep(2000000);

    /*Run firmware*/
    status = PRUICSS_enableCore(gIcssg1Pru0Handle, PRUICSS_PRU0);
    DebugP_log("PRUICSS_enableCore = %d!\r\n", status);
}