> Ok, now I get:
>
> wrote 85144 byte from file main.elf in 9.609000s (8.653183 kb/s)
>
> But I still think it's slow. When I write the same image to a
> STM Primer using RFlasher 7, it only takes ~3 seconds.
>
> I also tried to use OpenOCD's RLink interface: 7.241484 kb/s.
> Much slower than the native RFlasher application.
>
> BTW: I also had a "too many retries waiting for DTC status"
> problem with OpenOCD's RLink interface. Setting the retry
> count to 10 in
> rlink.c:526 fixed the problem (maximum used was 7). I'm using
> a cygwin build on Windows XP SP3. Could you fix that in svn?
>
You could try the following patch - it will add a couple of K to the speed
(my tests anyway 13-14kb/sec).
Also increasing the stm32 driver (stm32x_write_block buffer_size) to 16k (if
you have enough target ram)
The cortex_m3 still needs a bit of work - below is an example that none of
my targets require (st or luminary)
But other people have issues with cortex_m3 without.
I really would like a target that issues the following line - but so far
have not found one.
LOG_ERROR("BUG: Why does this fail the first time????");
As a general note currently when we run an embedded algo we call
run_algorithm which saves/restores registers - this could be improved to
only do this once per flash programming session. Instead of each time
run_algorithm is called.
I have done no testing with the rlink so cannot really comment.
Cheers
Spen
Index: cortex_swjdp.c
===================================================================
--- cortex_swjdp.c (revision 1426)
+++ cortex_swjdp.c (working copy)
@@ -191,13 +191,13 @@
https://lists.berlios.de/pipermail/openocd-development/2008-September/003107
.html
*/
+// if ((retval=jtag_execute_queue())!=ERROR_OK)
+// {
+// LOG_ERROR("BUG: Why does this fail the first time????");
+// }
+// /* Why??? second time it works??? */
+// scan_inout_check_u32(swjdp, SWJDP_IR_DPACC, DP_CTRL_STAT, DPAP_READ,
0, &ctrlstat);
if ((retval=jtag_execute_queue())!=ERROR_OK)
- {
- LOG_ERROR("BUG: Why does this fail the first time????");
- }
- /* Why??? second time it works??? */
- scan_inout_check_u32(swjdp, SWJDP_IR_DPACC, DP_CTRL_STAT, DPAP_READ,
0, &ctrlstat);
- if ((retval=jtag_execute_queue())!=ERROR_OK)
return retval;
swjdp->ack = swjdp->ack & 0x7;
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development