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.

Same source code compiled with same bios and same compiler in CCS3.3 results in a different map on CCS5.1

Hi

We have recently upgarded to CCS5.1 from CCS3.3. However since we were facing some issues we wanted to revert to Compiler 6.0.8 and Bios 5.31.2 (as these were used in CCS3.3). Here is what we are trying to do:

1) In CCS 5.1, use the old compiler and old bios and try to generate a new .out and .map.

2) After compilation, compare the map file with what we get by compiling the code in CCS3.3.

Please note: All settings of the project in 3.3 were imported to CCS5.1 using the 'Import Legacy code option'.

Observation: Many differences in map files

We are wondering why do we observe the difference in map by simply changing the IDE.

Please suggest

-Dushyant

 

  • Changing the IDE wouldn't cause that.  Check that your linker command files and compiler and linker options are the same in each build.

  • Hi,

    Please below a summary of the flags set from CCS5.1:

    C6000 Compiler: --c_src_interlist --define="_DEBUG" --include_path="C:/ti/ccsv5/tools/compiler/c6000_6.0.8/include" --include_path="C:/dsahni/LatestCode/Final_Phase2/DSP/Build/TiCcsProject/Debug" --include_path="C:/ti/bios_5_31_02/packages/ti/bios/include" --include_path="C:/ti/bios_5_31_02/packages/ti/rtdx/include/c6000" --include_path="C:/ti/xdais_7_21_01_07/packages/ti/xdais" --include_path="C:/dsahni/LatestCode/Final_Phase2/CP-DSP-Shared" --include_path="C:/dsahni/LatestCode/Final_Phase2/DSP/Build" --include_path="C:/dsahni/LatestCode/Final_Phase2/DSP/Common" --include_path="C:/dsahni/LatestCode/Final_Phase2/DSP/Common/WP" --include_path="C:/dsahni/LatestCode/Final_Phase2/DSP/GSM" --include_path="C:/dsahni/LatestCode/Final_Phase2/DSP/Infrastructure" --include_path="C:/dsahni/LatestCode/Final_Phase2/DSP/SelfTests" --include_path="C:/dsahni/LatestCode/Final_Phase2/DSP/Services" --include_path="C:/dsahni/LatestCode/Final_Phase2/DSP/UMTS" --include_path="C:/dsahni/LatestCode/Final_Phase2/DSP/UMTS/MapSearch" --include_path="C:/dsahni/LatestCode/Final_Phase2/DSP/Libraries/csl_c6482/inc" --include_path="C:/dsahni/LatestCode/Final_Phase2/DSP/Libraries/csl_c64xplus_intc/inc" --include_path="C:/dsahni/LatestCode/Final_Phase2/DSP/Libraries/dsplib/include" --include_path="C:/dsahni/LatestCode/Final_Phase2/DSP/UMTS/Aricent" --symdebug:dwarf --no_inlining --display_error_number --silicon_version=6400+

    Linker:

    --c_src_interlist --define="_DEBUG" --symdebug:dwarf --no_inlining --display_error_number --silicon_version=6400+ -z --rom_model --map_file="C:/dsahni/LatestCode/Final_Phase2/DSP/Build/Debug/NxtGenDSP.map" --reread_libs --search_path="C:/ti/ccsv5/tools/compiler/c6000_6.0.8/lib" --search_path="C:/ti/ccsv5/tools/compiler/c6000_6.0.8/include" --search_path="C:/ti/bios_5_31_02/packages/ti/rtdx/lib/c6000" --search_path="C:/ti/bios_5_31_02/packages/ti/bios/lib" --search_path="C:/dsahni/LatestCode/Final_Phase2/DSP/Build/TiCcsProject" --search_path="C:/dsahni/LatestCode/Final_Phase2/DSP/Build" --search_path="C:/dsahni/LatestCode/Final_Phase2/DSP/Libraries/mthlib/lib" --search_path="C:/dsahni/LatestCode/Final_Phase2/DSP/Libraries/cgtools/lib" --search_path="C:/dsahni/LatestCode/Final_Phase2/DSP/Libraries/csl_c64xplus_intc/lib" --search_path="C:/dsahni/LatestCode/Final_Phase2/DSP/Libraries/csl_c6482/lib" --search_path="C:/dsahni/LatestCode/Final_Phase2/DSP/Libraries/dsplib/lib" --warn_sections

    Please find atatched the .pjt from 3.3 for your reference.

    Request you to have a look.

    -Dushyant

     

    TiCcsProject.pjt
  • Dushyant Sahni said:

    Observation: Many differences in map files

    We are wondering why do we observe the difference in map by simply changing the IDE.

    Dushyant,

    Can you elaborate on what differences you see in the two map files? If possible, attach both the map files here as well.

    When importing the CCS3.3 project into CCSv5,  was there a migration.log generated and did it have any issues mentioned in it?

  • Hi Aarti,

    Please find attached the map file with CCS3.31780.NxtGenDSPwith3.3.txt

    Please find attached the map file with CCS5.17585.NxtGenDSPwith5.1.txt

    I see the addresses of various functions are different. We are wondering if it could be the linking order that's causing the issue.

    -Dushyant

  • This is not due to the linker; the size of the input object files has changed.

    The size of the object file UMTSMapSearchFunctions.obj has changed from 0x17e0 to 0x19a0.

    The size of UMTSMapSearchInitFunctions.obj changed from to 0xe60 to 0xfe0

    There are other files which have changed size.  The next step is to figure out why these object files' sizes changed.  You can use the cg_xml package (http://processors.wiki.ti.com/index.php/Code_Generation_Tools_XML_Processing_Scripts) to see where the differences in these files is.  This should provide clues as to why the files changed.

  • Hi,

    Could you point out the exact script that would provide inputs on the difference in sizes?

    -Dushyant

  • You can use objdiff from the cg_xml package http://processors.wiki.ti.com/index.php/Code_Generation_Tools_XML_Processing_Scripts to compare the object files, or you can use ofd6x each object file and use your favorite text diff program to compare the output, or you can generate the hand-coded assembly files and use your favorite text diff program on the assembly file.

  • I managed to find one difference in the object files. It was with respect to the '-g' option which was set to full symbolic debug in 3.3 and skeletal by default in 5.1.

    I have changed that setting for the project but still see some differences. Please find attached the new map file for your reference5287.NxtGenDSP.txt

    -Dushyant

  • I assume the latest map file is from CCS 3.3

    The major difference is that section .text in file UMTSMapSearchFunctions.obj changed from to 0x17e0  to 0x19a0, a 7% change.  Are you sure this file is compiled with the same options in both projects?  Try using objdiff on those two object files, or perhaps look at the compiler-generated assembly code.

  • The new map file was generated from CCS5.1.

    On using the objdiff on the UMTSMapSearchFunctions.obj, no differences were reported between the object files of the two versions. The assembly code is same too. The difference that is visible now is the following:

    It seems that the .text data from the fastrts64xlib is missing in the new map file. I wonder why that happened.

    Please find the results of objdiff of the  .out from CCS 3.3 vs CC5.1 for reference.

    ======================================================================
    Comparing Optional File Headers : optional_file_header
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
               text_size:              0x759e0	              0x76380
              data_start:           0xe00f7fe0	           0xe00fe74c
             entry_point:           0xe00f7d80	           0xe00d7d80
    ======================================================================
    Comparing Sections : section = .CPTalk_$stk
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00d6b80	           0xe00f5658
    ======================================================================
    Comparing Sections : section = .CXdev_$stk
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00f5658	           0xe00f6658
    ======================================================================
    Comparing Sections : section = .DDR$heap
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00c8ffc	           0xe00c997c
    ======================================================================
    Comparing Sections : section = .EngEv_$stk
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00f6658	           0xe00f7658
    ======================================================================
    Comparing Sections : section = .LOG_system$buf
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00f7700	           0xe00d7700
    ======================================================================
    Comparing Sections : section = .TSK_idle$stk
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00fd130	           0xe00fdb80
    ======================================================================
    Comparing Sections : section = .args
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00d0ffc	           0xe00d197c
    ======================================================================
    Comparing Sections : section = .bios
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00d1000	           0xe00d1980
    	Raw data is different
    ======================================================================
    Comparing Sections : section = .bss
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00fcb70	           0xe00f8658
    ======================================================================
    Comparing Sections : section = .buf
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00f7658	           0xe00fe6f0
    ======================================================================
    Comparing Sections : section = .cinit
    ======================================================================
    	Raw data is different
    ======================================================================
    Comparing Sections : section = .cio
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00fd8b0	           0xe00f8d98
    ======================================================================
    Comparing Sections : section = .clk
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00f76f4	           0xe00f8ff8
    ======================================================================
    Comparing Sections : section = .const
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00abdf8	           0xe00ac778
    	Raw data is different
    ======================================================================
    Comparing Sections : section = .data
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00f7fe0	           0xe00fe74c
    ======================================================================
    Comparing Sections : section = .far
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe0075a00	           0xe0076380
    ======================================================================
    Comparing Sections : section = .gblinit
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00fdc58	           0xe00fe588
    	Raw data is different
    ======================================================================
    Comparing Sections : section = .hst
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00d7be0	           0xe00f8fe4
    ======================================================================
    Comparing Sections : section = .hst0
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00fd9d0	           0xe00f8eb8
    ======================================================================
    Comparing Sections : section = .hst1
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00f76d4	           0xe00fdfe0
    ======================================================================
    Comparing Sections : section = .hwi_vec
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00f7800	           0xe00d7800
    	Raw data is different
    ======================================================================
    Comparing Sections : section = .idl
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00759e0	           0xe00d7fe0
    ======================================================================
    Comparing Sections : section = .log
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00fdb98	           0xe00fe4c8
    ======================================================================
    Comparing Sections : section = .pip
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00fdad0	           0xe00fe400
    ======================================================================
    Comparing Sections : section = .printf
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00c8ffc	           0xe00c997c
    ======================================================================
    Comparing Sections : section = .sLogBlockErrors$buf
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00f8000	           0xe00f9000
    ======================================================================
    Comparing Sections : section = .sLogDecoderMetrics$buf
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00f9000	           0xe00fa000
    ======================================================================
    Comparing Sections : section = .s_LOG_LMU1$buf
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00fa000	           0xe00fb000
    ======================================================================
    Comparing Sections : section = .sem
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00fdd10	           0xe00fe640
    ======================================================================
    Comparing Sections : section = .stack
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00fb000	           0xe00fc000
    ======================================================================
    Comparing Sections : section = .sts
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00d7b80	           0xe00fdf80
    ======================================================================
    Comparing Sections : section = .swi
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00f76a8	           0xe00f8fb8
    ======================================================================
    Comparing Sections : section = .switch
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           raw_data_size:                0xb70	                0xb80
           physical_addr:           0xe00fc000	           0xe00fd000
    ======================================================================
    Comparing Sections : section = .sys
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00f76e4	           0xe00fdff0
    ======================================================================
    Comparing Sections : section = .sysinit
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00f7a00	           0xe00d7a00
    	Raw data is different
    ======================================================================
    Comparing Sections : section = .text
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           raw_data_size:              0x759e0	              0x76380
    ======================================================================
    Comparing Sections : section = .trace
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00fd530	           0xe00d7500
    ======================================================================
    Comparing Sections : section = .trace$buf
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00d7c00	           0xe00fe000
    ======================================================================
    Comparing Sections : section = .trcdata
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00d7bf4	           0xe00fe740
    ======================================================================
    Comparing Sections : section = .tsk
    ======================================================================
             Differences: c:\dsahni\LatestCode\LMU_14.1_Integration\Lmuvob\DSP\Build\Debug\NxtGenDSP.out	 c:\dsahni\LatestCode\Final_Phase2\DSP\Build\Debug\NxtGenDSP.out
           physical_addr:           0xe00fd730	           0xe00f8c14
    ======================================================================
    Comparing Sections : section = .vers
    ======================================================================
    	Raw data is different
    ======================================================================
    Comparing Sections : section = CPDSPLNK
    ======================================================================
    	Raw data is different
    ======================================================================
    Comparing Sections : section = ICODE
    ======================================================================
    	Raw data is different
    
    Files are different
    

    Please note: The map files that I have uploaded yesterday and will be uploading in future will be made using CCS5.1. The map file generated from CCS 3.3 was uploaded in a previous reply (filename NxtGenDSPwith3.3.txt) and that should be used as reference

    -Dushyant

  • Could anybody provide inputs on this please?

    -Dushyant

  • Objdiff shows us that the executables differ, and where, but doesn't tell us why.  For instance, .textsize grew; in the "LMU_14.1_integration" version, .text was 0x759e0 bytes, but in the "Final_Phase2" version, it is 0x76380, a 0.5% code growth.  To determine where that came from, we should next look at the map files for these two versions.  Looking at the part of the map file which shows the various .text sections from the linker input files collected into one large .text shows a few differences.  Just go down the list of sections in each map file and look for the differences.  In particular, notice that the "LMU_14.1_integration" shows that that executable contains object files from fastrts64x.lib (for example divdp.obj), whereas "Final_Phase2" has object files from rts64plus.lib (for example divd.obj).  These two files provide the same function, __divd, which is the float double-precision division helper function.  These two versions of this function are nartually of different size and performance.  So, the biggest difference here is that you are using fastrts64x.lib in one project and not the other.  Repeat this analysis for the rest of the differences showing in the objdiff output.

  • Thanks for your suggestions. The main reason for the discrepancies was indeed the non-usage of fastrts64x.lib by the new toolset.

    I tried many things to get this sorted and have eventually managed to get the CCS v5 use fastrts64x.lib by tweaking the link order. The resulting map files are very files are very similar.

    Please find attached the new map file for reference: 1777.NxtGenDSP_5_1.txt

    The first immediate difference is now between MathUtilities.obj where the (.text) section has sizes difference of 0x1120 vs 0x1160 betwwen CCS3.3 vs CCS5.1

    On doing an objdiff between the two files, the following information is available:

    Processing ..\utils\MathUtils3_3.xml ...
    Processing ..\utils\MathUtils5_1.xml ...
    Comparing files ...

    ======================================================================
    Comparing File Headers : file_header
    ======================================================================
             Differences: F:\Dushyant\Work\TruePosition\Work\LatestCode\Transfer\LMU
    _14.1_Integration\Lmuvob\DSP\Build\Debug\MathUtilities.obj       F:\Dushyant\Wor
    k\TruePosition\Work\LatestCode\Transfer\Phase 2\Lmuvob\DSP\Build\Debug\MathUtili
    ties.obj
           section_count:                  0x8                        0x9
    ======================================================================
    Comparing Sections : section = .text
    ======================================================================
             Differences: F:\Dushyant\Work\TruePosition\Work\LatestCode\Transfer\LMU
    _14.1_Integration\Lmuvob\DSP\Build\Debug\MathUtilities.obj       F:\Dushyant\Wor
    k\TruePosition\Work\LatestCode\Transfer\Phase 2\Lmuvob\DSP\Build\Debug\MathUtili
    ties.obj
           raw_data_size:               0x1120                     0x1160
             reloc_count:                 0x5d                       0x59

    Files are different

    Could you suggest why the number of sections could be increasing in the object from the new toolset?

    -Dushyant

  • I observe that the difference is again due to -g option. In CCS 3.3, specific to this file the Generate debug info is set to "No Debug". However when I changed a similar setting in CCS 5.1 (symdebug::none) for this file, it also updated the option for all the files which have optimization level set to 2 or 3. (Example: In an earlier post the difference was identified in file UmtsMapSearchFunctions which has optimization level set to 2) 

    Looking at the above behavior, I guess the question now is can we not set individual file specific properties in CCS 5.1?

    -Dushyant

  • Dushyant Sahni said:
    tweaking the link order

    If you rely on the link order, you should seriously considering using the linker option --priority as well as --reread_libs; otherwise, you might get the functions from the library you did not intend to get it from.

  • Dushyant Sahni said:
    can we not set individual file specific properties in CCS 5.1?

    I believe you can, but I'm not familiar with how to do it in that version of CCS.  Try right-clicking on the file name in the project window.

  • That's what I was trying. But for some strange reason if there are files with optimization level set to some value (in my case 2 or 3), if you change the debug info for any one file, its reflected on all of them.

  • The option --reread_libs is already checked in the project. Despite this, its the way files get linked in CCS3.3 vs. CCS 5.1 is different. I had to refer the following post

    http://e2e.ti.com/support/dsp/tms320c6000_high_performance_dsps/f/112/t/11498.aspx

    to get new toolset to use fastrts64x.lib.

  • I need to stress that --reread_libs is not sufficient in all cases.  You also need to use use --priority.