Re: USB HOST Bootloader and Application issue.
So it is because it doesn't return correctly from the interrupt. I tried unsuccessfully to change the return pointer so the RETIF would just go to the start of the application code.
asm("mov #0xa800, wreg15"); // didn't work.
The USB interrupt routines had a lot of while(usb...) which took too long. I tried to insert code to exit when these took too long but it wasn't working due to the USB host being interrupt based.
I got it working by disabling the USB and timer interrupts timer interrupt then the normal exit logic would happen.