Hi,
I'm trying to implement the C66 GDB with a C6678 DSP:
http://processors.wiki.ti.com/index.php/Hosted_C66x_GDB
The source code can be found here:
https://git.ti.com/sdo-emu/gdbc6x
The implementation normally uses the ARM CPU to provide a serial linux device for communication between GDB and the GDB stub running on the DSPs.
Because the C6678 doesn't have any ARM cores, I'm using a dedicated C66 core to implement the communication with the other cores and to implement the GDB Remnote Serial Protocol over TCP/IP.
I also compiled GDB for C66 targets successfully using the Cygwin environment. This way, I can use GDB with CCS / Eclipse under Windows.
This basically seems to work so far. I can connect to the target, set breakpoints, watch variables and so on. But there are a few problems remaining and I'm not sure if the same is true for the ARM implementation:
After the program runs into a breakpoint and halts execution, I'm not able to continue the execution while the breakpoint is still set. It seems that the core immediately stops at the same position again:
(gdb) c
Continuing.
Program received signal SIGTRAP, Trace/breakpoint trap.
$C$RL19 () at ../_main1.cpp:124
124 Task_sleep(1000);
(gdb)
The program only continues after removing this breakpoint.
Another problem is that I'm not able to set any breakpoints or to halt execution while the target is running with eclipse. Maybe GDB requires additional stub features.
Thanks,
Ralf