Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* Loading code with an Abatron BDI2000
@ 2005-07-08 16:43 Shaun Jackman
  2005-07-08 18:52 ` Shaun Jackman
  0 siblings, 1 reply; 2+ messages in thread
From: Shaun Jackman @ 2005-07-08 16:43 UTC (permalink / raw)
  To: gdb

Hello,

I'm using gdb 6.2.1 to debug an ARM7TDMI with an Abatron BDI2000, a
device which speaks the gdb remote protocol natively over Ethernet.
Loading code with
gdb is a slower process than I had hoped.

(gdb) lo
Loading section .text, size 0x37088 lma 0x2000000
Loading section .rodata, size 0x90a4 lma 0x2037088
Loading section .data, size 0x1a84 lma 0x204022c
Start address 0x2000000, load size 269232
Transfer rate: 153846 bits/sec, 312 bytes/write.

I'm seeing a transfer rate of ~19 kB/s. The BDI is connected to my
development machine through a cross-over Ethernet cable, so there is
no other traffic on the network segment. Abatron's website suggests the
BDI2000 should be capable of transferring code to an ARM7TDMI at 340
kB/s. These two figures seem to be separated by an order of magnitude.

A quick network sniff with Ethereal shows it's taking seven packets
and about 15 ms to transfer each 312 byte chunk of code. Can anything
be done to improve this performance? To start, can the write size be
increased to a value near Ethernet's maximum segment size?

Thanks,
Shaun

ARM7TDMI
BDI2000
gdb 6.2.1
Linux 2.6.11


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Loading code with an Abatron BDI2000
  2005-07-08 16:43 Loading code with an Abatron BDI2000 Shaun Jackman
@ 2005-07-08 18:52 ` Shaun Jackman
  0 siblings, 0 replies; 2+ messages in thread
From: Shaun Jackman @ 2005-07-08 18:52 UTC (permalink / raw)
  To: gdb, Abatron Support, Ultimate Solutions Support

A little searching through GDB's manual turned up "set remote
memory-write-packet-size" and "set download-write-size". On my target
these values defaulted to 336 and 512 respectively. I found that
increasing them to 1025 and 8192 did improve performance somewhat. I
used 1025 because I found the TCP packet size sent by GDB was limited
to 1024 for some reason unknown to me (anyone else know?) and the "+"
acknowledgement was sent in a TCP packet all to its own, but still
counted against the memory-write-packet-size. How can I increase the
TCP packet size to 1460, the TCP MSS, to get more date bytes out of
each packet? Any other thoughts on how else I can improve the transfer
rate?

Cheers,
Shaun

set remote memory-write-packet-size 1025
set remote memory-write-packet-size fixed
set download-write-size 8192

For the curious, a typical transfer between gdb and the BDI2000 is as
follows. The left column is elapsed milliseconds since t0.
0 +
0 $X and 1024 bytes of data
1	ACK the +
3	ACK the $X
14	ACK window update
27	ACK window update
29	+
39	$OK
69 +
70 $X and 1024 bytes of data
... and so forth.

There's quite a gap (30 ms) between the BDI's $OK the gdb's +. Could
this be improved?

On 7/8/05, Shaun Jackman <sjackman@gmail.com> wrote:
> I'm using gdb 6.2.1 to debug an ARM7TDMI with an Abatron BDI2000, a
> device which speaks the gdb remote protocol natively over Ethernet.
> Loading code with gdb is a slower process than I had hoped.
...


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2005-07-08 18:52 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-07-08 16:43 Loading code with an Abatron BDI2000 Shaun Jackman
2005-07-08 18:52 ` Shaun Jackman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox