Forums » Software Development »
Remote Debugging Hello DSP
Added by Mary Frantz about 12 years ago
I am having trouble remote debugging the Hello DSP application. I can run it from the target login shell just fine. If I try to debug using CCSv5 (version 5.2 ... just downloaded that), I see the following in the remote shell console:
root@mityomapl138:~# echo $PWD'>'
/home/root>
root@mityomapl138:~# gdbserver :2345 /home/root/HelloWorldDSP/Debug/Hello_DSP EV
M_DataAcq.out;exit
Process /home/root/HelloWorldDSP/Debug/Hello_DSP created; pid = 2325
Listening on port 2345
Remote debugging from host 192.168.1.91
Loading file EVM_DataAcq.out
Error running PROC_load : 0x80008009
Starting application.
FAILED to CONNECT TO OUTBOUND: name: DSPMSGQ0, status: 0x8000802d
Furthermore, after trying with the debugger, it won't run from the target command line either. I get the same error until I reboot the target. Here's what I see on the target console:
root@mityomapl138:~/HelloWorldDSP/Debug# ./Hello_DSP EVM_DataAcq.out
Loading file EVM_DataAcq.out
Msqg <debug> open failure: 0x80008050
PROC Load successful
Starting application.
Msqg <GPPMSGQ1> open failure: 0x80008050
Assertion failed (IS_VALID_MSGQ (msgqQueue)). File : msgq.c Line : 640
Assertion failed (MSGQ_isLocalQueue (msgqQueue)). File : msgq.c Line : 641
inbound:debug: Status = 0x8000800b
inbound:debug: Terminating
Assertion failed (IS_VALID_MSGQ (msgqQueue)). File : msgq.c Line : 640
Assertion failed (MSGQ_isLocalQueue (msgqQueue)). File : msgq.c Line : 641
inbound:GPPMSGQ1: Status = 0x8000800b
inbound:GPPMSGQ1: Terminating
Can you debug the ARM remotely if you are running an application on the DSP?
Thanks,
Mary
Replies (5)
RE: Remote Debugging Hello DSP - Added by Michael Williamson about 12 years ago
Are you trying to debug the DSP application or the ARM application?
There is an initialization sequence that has to happen during the application startup. I don't think we've had trouble connecting the ARM side.
You might try posting this to the TI E2E forums as well, as this is sort of a generic OMAP-L138 question.
-Mike
RE: Remote Debugging Hello DSP - Added by Mary Frantz about 12 years ago
I'm trying to debug the ARM application from CCSv5 running on Linux with GNU toolchain supplied with MDK_08-10-12.
RE: Remote Debugging Hello DSP - Added by John Pruitt about 12 years ago
We have debugged the ARM remotely while running a DSPlink application. We have debugged the ARM at the same time as debugging the DSP.
The error code 0x80008009 is listed in the file dsplink_linux_1_65_03/dsplink/gpp/inc/usr/errbase.h as DSP_EFILE and the comment indicates that the specified executable file could not be found. Are you sure the DSP executable name is correct?
The error code 0x80008050 indicates that the connection requested by the client already exists. This probably means the first DSP program is already running and isn't automatically torn down when the ARM process exits. The ARM program may want to take action to bring down the DSP program when it exits so you can run cleanly a second time.
Can you run the program from the command line twice?
Can you debug right after a reboot?
RE: Remote Debugging Hello DSP - Added by Mary Frantz about 12 years ago
Yes, I can run from the command line twice.
One problem: I needed to put the full path name for the DSP executable file. This fixed the DSP_EFILE error.
The other turns out to be a timing issue. I can't single step through the initialization code. I think the DSP tries to open a msg queue that hasn't been created on the ARM yet. It would be nice if the error messages mentioned which processor created them. If I just let it run through initialization, it works.
Thanks for pointing me to the error codes.
RE: Remote Debugging Hello DSP - Added by Mary Frantz about 12 years ago
Almost there ... I still have an issue.
John Pruitt said:
The error code 0x80008050 indicates that the connection requested by the client already exists. This probably means the first DSP program is already running and isn't automatically torn down when the ARM process exits. The ARM program may want to take action to bring down the DSP program when it exits so you can run cleanly a second time.
If I stop debugging without finishing, then the following code doesn't execute:
printf("Exiting application.\n");
// Stop the DSP application from running
lpDspApp->StopApp();
// Cleanup
CMEM_free(pData, &allocParms);
delete lpDspApp;
delete lpMessageInbound;
delete lpMessageOutbound;
CMEM_exit();
The next run fails with error code 0x80008050. I expect this scenario to happen often since this is an embedded application which by design never exits. Is there a way to reset the DSP from the ARM? I tried calling lpDspApp->StopApp() at the beginning but got an error:
ERROR: DSP_EATTACHEd
StopApp - Error in PROC_stop [0x80008002]
and then got the same 0x80008050 error. I believe this error is coming from the DSP side.
I would like to reset the DSP so I know I am starting from scratch, or is there anything to be done on the DSP side? like check for the existence of the message queue?