I've gotten my do-little codec, codec server, and application running on the DM6467T. Now I'm trying to get CCS debugging my do-little codec so I can edit it and make it do-more.
I'm trying to follow the instructions at http://processors.wiki.ti.com/index.php/Debugging_the_DSP_side_of_a_CE_application_using_CCS#Algorithm_Debugging
Please help me figure out how to do this. The instructions above are obviously obsolete, and I'm probably doing things wrong as well.
I run my application from a Tera Term session connected to the DM6467T serial port, and per instructions I get up to the point where my application is waiting at getchar().
I then proceed with steps 1 and 2 of the instructions. I'm stuck already. I can't find EXACTLY the options in the instructions, and my CCS version 4.1.1.00014 doesn't behave as the instructions imply.
PLEASE HELP!
Here's what I do and find (findings_list):
- When CCSv4.1.1.00014 first loads, it asks me for a workspace. I am telling it the same workspace I used for first getting the do-little codec to compile. Therefore, once CCS is loaded, I have a project window with my current project as the active project.
- For doing instruction step #2, Debug->connect, I have no "Debug" command on the menu bar at the top of the window. Instead, I see three possible paths to follow:
- View / Target Configurations / Projects / mycodecproject / DM6467T_TargetConfiguration.ccxml [Default]
- View / Target Configurations / User Defined / Helmut1080PEVM.ccxml
- Target / Debug Active Project
- Target / Lauch TI Debugger
- (Projects window) right click codec project / Debug As / Debug Session
- (Projects widnow) right click codec project / Debug As / Debug...
- I believe 2.a, 2.c, and 2.f all lead to the same thing, which is debugging my codec as if it were a free-standing application, rather than the desired connection while my app is mid-stream.
- Note that the ccxml from 2.a was created from scratch per http://software-dl.ti.com/dsps/dsps_public_sw/sdo_ccstudio/CCSv4/Demos/ccs4-setup1_b5.htm and then directly associated with my codec project.
- Note that ccxml from 2.b was created by the same method much earlier, and successfully used to flash UBL and U-Boot into NAND on the EVM.
- Note I tried to use a downloaded dm6467T_arm.gel and follow instructions at http://processors.wiki.ti.com/index.php/GEL, but my CCS does not have a Tools Gel files option. (Note I think I created one on my own as a part of my NAND flashing.
I tried (findings_list) 2.a and found options under the Target menu. So I followed up with...
- Target / Connect Target
- I get a whole tree of things in the Debug window. I notice FOUR at the top level:
- Spectrum Digital XDS510USB Emulator_0/ARM926 [Non-project Debug Session]
- Spectrum Digital XDS510USB Emulator_0/C64XP [Non-project Debug Session]
- Spectrum Digital XDS510USB Emulator_0/ARM926_0 [Non-project Debug Session]
- Spectrum Digital XDS510USB Emulator_0/ARM926_1 [Non-project Debug Session]
- It seems 2.b which mentions C64XP ought to be right, so select it and then go back up to the top for Target / Connect Target
- After eclipse slowpokiness, I get "C64XP: GEL Output: Startup Complete.
- NOTE at this point, I figure I've completed instructions 1 and 2. The next instruction, 3, is to load symbols. Since I used a target configuration associated with my project, I don't think I need this. I move on to step 4 and set a breakpoint.
- Oooh! unlike 2.b described below, I now have an enabled Target / Run (F8) option. I try it. I get one more debug output from the arm side on my Tera Term session, which seems appropriate. But then nothing else happens on either the Tera Term session or within CCS.
Trying (findings_list) 2.a again with a breakpoint doesn't change the result. Remember, I'm running my app (arm side) up until the getchar, then loading CCS and connecting to the target.
I tried (findings_list)2.b and found options under the Target menu. So I followed up with...
- Target / Connect Target
- Target / Load Symbols
- I'm asked for a Program file. I browse to my .x64P file. (Note my codec .a64P is created by CCSv4 on WindowsXP(MachineB). That gets copied to Ubuntu/VMware/WindowsXP(MachineA), where I build a codec server that ends in .x64P. I can't access the virtual Ubuntu disk from MachineB, but my makefile does always automatically copy all the pertinent Ubuntu files to a place on MachineA where backup software can save it. So, I can point there from MachineB. Therefore, I browse and point CCS at mycodecserver.x64P.
- I'm also asked for Code offset and Data offset. I have no clue what these are, so I leave them blank.
- AT THIS POINT, I'm hoping I've accomplished instruction step 1 through 3, so my next steps are 4 and 5, which are to set breakpoint and run the DSP. However, it seems the DSP is already running. The Target menu has Halt and Terminate All options, but the Run (F8, not F5) option is grayed out. So I don't think I'm in the right "place" at the moment.
- When I try to set breakpoint anyway, there's already one set from previous attempts. Yet I try to set it again, and get "Failed to load symbols from ... 'mycodecserver.x64'P on target 'Spectrum Digital XDS510USB Emulator_0/ARM968_1' with "Reason: Invalid file format". So again, I don't think I'm in the right place.