what can cause CyU3PUsbStart() to hang? | Cypress Semiconductor
what can cause CyU3PUsbStart() to hang?
I have a bootloader in I2C which loads the main application image from I2C into RAM and calls CyFx3BootJumpToProgramEntry() to start the main application. This works fine, but I have discovered that the main application hangs in CyU3PUsbStart().
My bootloader does not call any of the boot API USB functions, but it does use the UART. When I am loading the application from the EEPROM into RAM I am following the recommended procedure for using a bounce buffer for ITCM accesses.
If I load the main application directly into RAM from the ROM bootloader (i.e. not using my I2C bootloader code) then it works fine and connects to USB every time. I'm at a loss to explain what could be going wrong to cause CyU3PUsbStart() to hang.