2011-08-12 6: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 1: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 9: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 8: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...
We’re moving the ST Community to a new platform to give you a better and more reliable community experience.