This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

I don't have "whole_program_debug" option in CCS 4.2.

Other Parts Discussed in Thread: TMS320DM6437, SYSBIOS


Hello,

I'm using CCS version 4.2.0.10018 and SYS/BIOS 6.30.2.42 to develop an application for the TMS320DM6437. This processor is on a custom board that we have developed.

I have been using "debug" for Project Properities -> CCS Build -> RTSC -> RTSC Build-Profile. The SYS/BIOS 6.x User's Guide describes and recommends using "whole_program_debug" for RTSC Build-Profile. However, my only choices are "debug", "release" and "whole_program". Why don't I have the "whole_program_debug" option? How can I get it?

Thanks,

Tim M

 

  • Tim,

    I don't see it there either. I wonder if this is an overlook or this option was removed as the BIOS libraries started to be built with optimization (-o2), which would impact debugging and render the two options whole_program and whole_program_debug very similar.

    In any case I will move your post to the BIOS forum and see if the experts there will have additional insights about this issue, ok?

    Regards,

    Rafael

  • Tim --

    whole_program is same as whole_program_debug except the whole_program_debug includes additional symbol information that might be helpful if you want to step into SYS/BIOS.   The drop-down box where you see 'whole_program' can be edited by hand.  You can put whole_program_debug in that box if you want to.  Performance of wp and wpd are same.   wpd  just has additional symbol info.

    -Karl-

  • Hi Karl, thanks for the answer.

    I entered  whole_program_debug in Project Properities -> CCS Build -> RTSC -> RTSC Build-Profile. I get these compiler errors:

     undefined                                          first referenced
      symbol                                                in file    
     ---------                                          ----------------
     _ti_sysbios_knl_Semaphore_Params__init__S          ./can.obj      
     _ti_sysbios_knl_Swi_Object__create__S              ./can.obj      
     _ti_sysbios_knl_Swi_Params__init__S                ./can.obj      
     _ti_sysbios_knl_Swi_post__E                        ./can.obj      
     _ti_sysbios_timers_timer64_Timer_Object__create__S ./adc.obj      
     _ti_sysbios_timers_timer64_Timer_Params__init__S   ./adc.obj      
     _xdc_runtime_Error_init__E                         ./tasks.obj 

    How do I resolve these? These are sysbios and xdc symbols. Under Project Properities -> CCS Build -> General, I'm using <automatic> for Runtime Support Library, which works fine when I do a "debug" RTSC build profile. If the answer is to choose a library instead of <automatic>, which do I choose? There are about 50 libraries listed. Where are these libraries documented?

    Thanks,

    Tim

    PS. Also, when I choose <automatic>, how can I tell which library the linker actually chooses?

  • Hi Tim --

    Tim Murtaugh said:

    How do I resolve these? 

    When using wp and wpd profiles, you need to include a 'useModule' for every module used by your app.  This is needed since the wp build flow makes a partial link and the partial link needs to maintain the entry points for these modules.   The 'useModule' causes these entry points to be available in the partial link .o file for the final app link.  Try adding the following lines to your .cfg:

    xdc.useModule('ti.sysbios.knl.Semaphore');
    xdc.useModule('ti.sysbios.knl.Swi');
    xdc.useModule('ti.sysbios.timers.timer64.Timer');
    xdc.useModule('xdc.runtime.Error');

    Tim Murtaugh said:

    PS. Also, when I choose <automatic>, how can I tell which library the linker actually chooses?

    Can you look at the .map file and search for rts?  I think it may specify the actual rts library that was used in the link.   I think that "<automatic>" tells the compiler to look at the command line options and pick the library that matches the compiler options.

    Regards,
    -Karl-

  • Hi Karl,

    I included the "useModule" lines that you suggested above in my .cfg file, and now the whole_program_debug profile builds without errors.

    I was previously using the debug profile, which built without error even though the "useModule" lines were not present in the .cfg file.

    Also, I looked in my map file and it does indeed list the runtime library that it is using (in my case, this is rts64plus.lib).

    Thanks,

    Tim