KBOOT V1.1.0 Loader - Help - it is just too slow to be useful!!!

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

KBOOT V1.1.0 Loader - Help - it is just too slow to be useful!!!

Jump to solution
972 Views
mjbcswitzerland
Specialist V

Hi All

 

I have noted the problem with the USB HID connecting of the latest KBOOT "KinetisUpdater.exe" in a few posts but this hasn't woken any interested so, in partial desparation and not really wanting to file a service request, I am starting a discussion about it.

 

Reference:

- The upload time for a large 1M program (for example on a K64) using USB-MSD loading is about 4s.

- The same upload time for the same program using KBOOT USB is about 1 hour (around 1'000 times longer)

 

Of course not all programs are that large but after testing various quite small programs uploads of around 25k and having to still wait 1.5..2 minute each time it is proving to be beyond a joke. Using the simple and slow UART connection is so much faster.

 

Is this a problem with running on Windows 8.1? Or is a problem with the program's design? Was the slowness not noticed during release testing (alhough I noted that the reference appliations are all about 2k in size but the fact that they don't program in a fraction of a second should have set alarm bells ringing)?

 

Thanks in advance.

 

Regards

 

Mark

Labels (1)
Tags (2)
1 Solution
555 Views
jay_heng
NXP Employee
NXP Employee

Hi Mark,

  This is design issue. As Kboot directly use hardware ACK for usb data packet transfer, For some reason Kboot host will always wait for a fixed time (100ms) after every single transmit data packet (32 bytes) transfer, so It will waste 3.2 seconds for every 1k program, that's why 1M program costs about 1 hour and 25k costs 1-2 minutes.

  To improve usb performance, you can modify the value of kPollAbortTimeoutMs (line 52 in \FSL_Kinetis_Bootloader_1_1_0\src\blfwk\UsbHidPeripheral.h) and rebuild the host project (in \FSL_Kinetis_Bootloader_1_1_0\apps\winupdater\KinetisUpdater.sln).

 

Of course Kboot needs to be improved. We will try to fix this issue in the next release.

Thanks for your feedback!

Best Regards,

Jay

View solution in original post

2 Replies
556 Views
jay_heng
NXP Employee
NXP Employee

Hi Mark,

  This is design issue. As Kboot directly use hardware ACK for usb data packet transfer, For some reason Kboot host will always wait for a fixed time (100ms) after every single transmit data packet (32 bytes) transfer, so It will waste 3.2 seconds for every 1k program, that's why 1M program costs about 1 hour and 25k costs 1-2 minutes.

  To improve usb performance, you can modify the value of kPollAbortTimeoutMs (line 52 in \FSL_Kinetis_Bootloader_1_1_0\src\blfwk\UsbHidPeripheral.h) and rebuild the host project (in \FSL_Kinetis_Bootloader_1_1_0\apps\winupdater\KinetisUpdater.sln).

 

Of course Kboot needs to be improved. We will try to fix this issue in the next release.

Thanks for your feedback!

Best Regards,

Jay

555 Views
mjbcswitzerland
Specialist V

Hi Jay

Thank you for the feedback and confirmation that the issue wil be resolved shortly.

Best regards

Mark

0 Kudos