This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

USB problems when booting from flash

Other Parts Discussed in Thread: TMS320C5535

After successfully running the USB_CDC CSL example through the XDS debugger, I'm now having problems running the same code from flash (I am booting from an SD card).  Basically, I no longer receive USB interrupts.

Reading through http://e2e.ti.com/support/dsp/c5000/f/109/p/95041/332809.aspx#332809, I made sure to incorporate all GEL-contained initialization into my main() loop.  However, this does not seem to help.

I tried running via the debugger, and eliminated all init code from the GEL file.  This ran fine.

What else might be different between running via debugger and running via flash?

Any help would be very appreciated.

Thanks,

Dan

  • What device are you using? when in standalone mode, other than GEL not executed, bootloader uses SARAM31 (vyte address 0x4E000 - 0x4FFFF) so anything in there would be altered, also for C5515/14/05/04 series, debugger will enable MPORT while in standalone bootloader disables it before exit. Check IO register at 0x0001.

    Regards. 

  • I'm using a TMS320C5535.  

    I modified my CMD file to ensure that I am not using the SARAM31 block:

    MEMORY

    {

        MMR     (RW) : origin = 0000000h length = 0000C0h /* MMRs */

        VEC     (RWX) : origin = 00000C0h length = 000300h /* on-chip ROM vectors */

        DARAM   (RW) : origin = 0000400h length = 00FC00h /* on-chip DARAM  */

        SARAM1  (RW) : origin = 0010000h length = 03E000h /* on-chip SARAM  */

        SARAMBOOT  (RW) : origin = 004E000h length = 002000h /* on-chip SARAM  */

    }

    Additionally, I write 0x000E to the ICR to ensure that MPORT is out of IDLE.

    However, the problem persists.

    Any other ideas?

  • I was finally able to get this running properly.  Writing to PCGCR1/PCGCR2 to activate all the clocks ensured that the USBCDC would enumerate on the host.