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.

CCS/TMS320F28377D: "configPkg/linker.cmd", line 47: error #10264: PIEVECT memory range overlaps existing memory range PIE_VECT

Part Number: TMS320F28377D

Tool/software: Code Composer Studio

While trying to get the linker to output the mapping of auto-generated symbols to something human readable, it appears that CCS has gotten into a state where I get the following errors:

<Linking>
"configPkg/linker.cmd", line 47: error #10264: PIEVECT memory range overlaps existing memory range PIE_VECT
"configPkg/linker.cmd", line 48: error #10264: L03DPSARAM memory range overlaps existing memory range LS01SARAM
"configPkg/linker.cmd", line 53: error #10263: FLASH memory range has already been specified
"configPkg/linker.cmd", line 54: error #10263: BEGIN memory range has already been specified
error #10010: errors encountered during linking; "excon.out" not built

I have been unable to get it out of this state.  I have tried the following:

- rebuilding the project

- deleting the build directory

- running CCS clean

- deleting the .metadata directory in the workspace

- uninstalling CCS, deleting the c:\ti\ccsv6 directory, and installting CCS 6.2.0.00050

Unfortunately, the error persists.

 

There are MEMORY sections in configPkg/linker.cmd which are causing this error.  I have looked on another PC which does not have this problem and there are no MEMORY sections in configPkg/linker.cmd.  So this appears to be the problem, but since configPkg/linker.cmd is auto-generated, I do not know how to get the MEMORY sections to stop auto-generating.

Any ideas on how to fix this? 

Best Regards,

Joseph

  • Joseph,

    The memory sections are typically defined in a linker command file that is in the root of the project. The generated configPkg/linker.cmd file will the reference these sections.

    How did you go about renaming the sections? Did you rename them in the main linker command file and then also try to rename them in the generated linker.cmd? That can work but will break as soon as the .cfg file is touched and the linker.cmd file gets regenerated.

    The names of the sections are defined in the platforms. For example at the top of my generated linker.cmd file there is a comment that says:
    /*
    * Do not modify this file; it is automatically generated from the template
    * linkcmd.xdt in the ti.platforms.concertoC28 package and will be overwritten.
    */

    That platform is defined inside the SYS/BIOS or TI-RTOS you are using. Thus reinstalling CCS will not change it as that file does not come with CCS. For me that file linkcmd.xdt is located at C:\ti\tirtos_c2000_2_16_01_14\products\bios_6_45_02_31\packages\ti\platforms\concertoC28
    However I would not try to edit that file as it is really a script and pulls information from other places.

    I would roll back the changes you made to the linker command file. CCS keeps a local history of files. Right click on the main linker command file. Select Compare With -> Local History. You can click through the versions of the file and find the last version with the original section names.

    I am not sure how you ended up with sections in the configPkg/linker.cmd. I don't believe that should happen if the .cfg is set to have a master cmd file. If you touch the .cfg file and trigger a regeneration of the file do the sections go away?

    Regards,
    John
  • Hi John,

    Thanks for following up.  A co-worker helped me debug this by comparing the console log on a working PC to the broken PC.  It turns out somehow Project Properties > General > RTSC > Platform was changed and changing it back fixed it.  This was not a setting that I modified, so it seems like somehow one of the below project setting changes below caused it to change.

    JohnS said:

    How did you go about renaming the sections? Did you rename them in the main linker command file and then also try to rename them in the generated linker.cmd? That can work but will break as soon as the .cfg file is touched and the linker.cmd file gets regenerated.

    I have not renamed the sections.  This occurred without any changes to source code.  There were two project settings that were changed, then changed back.

    1. I tried adding the following additional linker flags: -Wl,-Map=filename.map.  That did not work, so I removed them.
    2. I do not recall the other project setting; these are the likely candidates:
      1. Project Properties > Build > C2000 Compiler > Advanced Options > Assember Options > Generate first-level assembly include file list checked
      2. Project Properties > Build > C2000 Compiler > Advanced Options > Supplemental Information > Output cross reference listing to .crl file checked
      3. Project Properties > Build > C2000 Linker > Advanced Options > Diagnostics > Don't demangle symbol names in diagnostics checked
      4. Project Properties > Build > C2000 Linker > Advanced Options > Diagnostics > Verbose diagnostics checked

    JohnS said:

    I would roll back the changes you made to the linker command file. CCS keeps a local history of files. Right click on the main linker command file. Select Compare With -> Local History. You can click through the versions of the file and find the last version with the original section names.

    Unfortunately, the Local History was lost probably during the deletion of the workspace .metadata.

    JohnS said:

    I am not sure how you ended up with sections in the configPkg/linker.cmd. I don't believe that should happen if the .cfg is set to have a master cmd file. If you touch the .cfg file and trigger a regeneration of the file do the sections go away?

    JohnS said:

    I didn't get a chance to try touch, but deleting the build directory (including the linker.cmd) then regeneration of the file still had the sections.