Hello everyone:
I'm new here and not familiar with the ways of how work is done here.
I want to discuss a new kind of way of improving the performance of
openocd. Currently, all JTAG/SWD low-level communication is done in
openocd, on the PC side. The debugger hardware is only a message
carrier. Many complex operations require long read-judge-write
operation in JTAG/SWD and require openocd to send plunty of low-level
data sequences through debugger, where latency from USB communication
reduces debug performance.
I am considering splitting openocd into two parts, one part on PC
handling GDB messages and high-level debug operations, the other part
on debug probes handling low-level communications so debug probes can
do lots of things, reducing time delay and bringing better
performance.
The preliminary idea is to remove all 'target' layers into the
embedded world and reduce 'jtag drivers' into one device since this
new software would only run on a specific hardware. The new hardware
would also be open source and the MCU inside is powerful enough to
handle target specific processings.
I have some knowledge in e&e and programming, both on PC and embedded
world, but before working on this I want to know other expert's
opinions and suggestions, and know if someone would join.
Thanks a lot.
Ray Zhang