This is code running on the debug probe’s CPU, not the target. It’s flashed
into the XDS110 as part of its firmware. So the probe has the “smarts” to do
ARM DAP memory transactions directly.
The current software stack issues DAP register accesses to do a memory
transaction (e.g. setting CSW, TAP, SELECT, reading the AP, etc.). The
firmware in our probe does all that for us. So the host side code just needs to
pass in a request like “read 4 bytes from address 0x20000000 on AP #0”, and the
XDS110 does all the work. The result is fewer USB packets needed, and because
this is a full speed USB device, that ends up being a significant performance
boost. This is a low-cost probe. The base CPU chip only has full speed
support. High speed requires external parts not included in most XDS110
implementations. The purpose of this design was something cheap that could be
essentially given away for “free” as part of an evaluation board.
Edward
From: Steven Stallion [mailto:stall...@squareup.com]
Sent: Wednesday, May 31, 2017 8:55 AM
To: Fewell, Edward
Cc: openocd-devel@lists.sourceforge.net
Subject: Re: [OpenOCD-devel] Debug probe hardware that can read/write target
memory directly
Hi Edward,
It sounds like you're describing an algorithm (code that is executed on the
target). Is this something that is resident only when firmware is loaded? Is
this something that's baked into every firmware image or is it copied to RAM
during debugging?
Cheers,
Steve
On Wed, May 31, 2017 at 7:59 AM, Fewell, Edward
<efew...@ti.com<mailto:efew...@ti.com>> wrote:
I am currently implementing the Texas Instruments XDS110 debug probe in
OpenOCD. The firmware of this probe includes APIs to read and write memory via
the target’s DAP for ARM Cortex based devices. The OpenOCD software stack does
not appear to support this and only can execute DAP register transactions via
the probe.
Any ideas on how best to implement this feature from within OpenOCD? The
performance gains are huge for this probe. We see almost 40x improvement
between the CMSIS-DAP interface vs using our built-in memory calls on the
XDS110.
The memory calls within the ARM Cortex architecture code would need to check if
the probe supports direct memory calls then route the call to be handled
entirely by the probe firmware. Otherwise, it could continue on to do the
memory transaction via DAP register calls.
Edward Fewell
Texas Instruments, Inc
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net<mailto:OpenOCD-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/openocd-devel
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel