2011-08-12 06:52 AM
Has anyone else had problems getting DFU to work over an EHCI (USB 2.0) host controller? When I perform an upgrade over an EHCI controller, the last packet of every transfer is corrupted. If, on the same computer, I perform the same upgrade over an OHCI/UHCI (USB 1.0) host controller, the upgrade works fine. If I trace the transfer at the kernel level using a tool like USBTrace or USBlyzer, all the packets look fine.
#dfu2011-08-17 01:47 PM
I have narrowed this down further and found that using the IAR Embedded Workbench compiler, if I disable optimizations, I experience problems when I download firmware. The last 64 byte packet of every USB transfer seems to be corrupted. If I set optimizations to 'High', everything works as expected. Any experience or advice related to this problem would be appreciated.
2011-08-21 09:52 PM
we can only conclude in general that without optimizations the code is too bloated/slow that may cause such problems.
2011-08-23 08:53 AM
I should have mentioned I am using ST's DFU example code, on an ST Eval Board, with ST's DFU Demo application. I guess I wouldn't expect such a simple example to have these kind of performance issues. And it also seems to be a pretty specific ''performance problem'' that the last packet of every transfer is being corrupted. Perhaps at the lower optimization level something is being initialized incorrectly...