> This test was caused by curiosity which started after reading one 
> forum post in which someone describes that in CrossWorks when using 
> the same JTAG he achieved almost 150kB/s, over 14x faster than OpenOCD.

Well, that's BS. The STM32 flash has a nominal programming time of 52.5µs per 
16 bits. So the theoretical max speed anyone can achieve is roughly 37.2 
KiBytes/s. If you see claims of speeds way above that they're either lies, 
load-to-ram figures or a mixup in units.

That said, I think it should be possible to crank up the STM32 flash 
programming speed in OpenOCD by at least a factor of two. I don't know what the 
bottleneck is, but like you I have concluded that JTAG frequency is not the 
major issue here. My guess is that the programming algorithm we use might be 
quite inefficient. USB latency might play a role but with double buffering and 
other tricks in the algorithm the latency shouldn't be a limiting factor.

/Andreas

Hi Andreas,

On the LPC17xx range of micros, flash programming is 256 bytes in 1ms (this 
assumes those 256 bytes are sitting in RAM ready to flash), that gives
a theoretical flash speed of 256k/bytes per second .... I am only getting 
10kb/sec.

So my question is, for the LPC micro, is flash programming done like this? IE 
load 256 bytes to flash then flash that block of data?

Cheers,
Bernie
_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to