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/TMS320F28335: Lost Debug "Flash Settings" when building on a different machine

Part Number: TMS320F28335
Other Parts Discussed in Thread: CCSTUDIO

Tool/software: Code Composer Studio

I am having an issue making my project portable with respect to the "Debug Flash Settings".

On my machine I have set the Flash settings "Erase Sector Selection" to include Sectors B to G. This leaves the other sectors (A,H) for the bootloader and configuration data.

When I setup a new development environment for another developer, the new setup is erasing all sectors for the same debug option.

The git repo includes the contents of the ".launches" directory.

I have followed the notes in "Debug Configurations" in http://software-dl.ti.com/ccs/esd/documents/ccs_portable-projects.html

However in the new environment, when I look in my "Production Application.launch" file I see my original settings with the correct flash configuration

<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_DEBUGGER_PROPERTIES./home/firmware/original/tms320f28335-master/targetConfigs/TMS320F28335.ccxml.Texas Instruments XDS100v2 USB Emulator/C28xx" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot; ?&gt;&#10;&lt;PropertyValues&gt;&#10;&#10;  &lt;property id=&quot;ConnectOnStartup&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;EnableInstalledBreakpoint&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;IgnoreSoftLaunchFailures&quot;&gt;&#10;    &lt;curValue&gt;0&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;FlashSectorA&quot;&gt;&#10;    &lt;curValue&gt;0&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;FlashSectorB&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;FlashSectorC&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;FlashSectorD&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;FlashSectorE&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;FlashSectorF&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;FlashSectorG&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;FlashSectorH&quot;&gt;&#10;    &lt;curValue&gt;0&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;&lt;/PropertyValues&gt;&#10;"/>

followed by a new line that does not contain any explicit flash settings
<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_DEBUGGER_PROPERTIES./home/firmware/new-environment/tms320f28335-master/targetConfigs/TMS320F28335.ccxml.Texas Instruments XDS100v2 USB Emulator/C28xx" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot; ?&gt;&#10;&lt;PropertyValues&gt;&#10;&#10;  &lt;property id=&quot;ConnectOnStartup&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;EnableInstalledBreakpoint&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;IgnoreSoftLaunchFailures&quot;&gt;&#10;    &lt;curValue&gt;0&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;&lt;/PropertyValues&gt;&#10;"/>

I have attempted to make the settings in targetConfigs/TMS320F28335.ccxml have the correct flash settings, but these do not seem to persist.

The absolute reference to the location of the ccxml file is surprising since I "Converted" to the linked resource of PROJECT_LOC/targetConfigs/TMS320F28335.ccxml.

It looks like when the Debug option is launched in the new environment:

1. it cannot find the ccxml file at the absolute path

2. It creates a new entry in the launch file for the known ccxml, and uses the default erase sector settings of A to H.

Is there a way to make these erase flash sector settings project portable?

Thanks

  • David,

    Where did you change the reference to the .ccxml to "${PROJECT_LOC}/targetConfigs/...ccxml". Was that in the project itself or in the Launch configuration dialog.

    By default in the launch configuration dialog the file should be referenced by a variable already. Unfortunately I believe this still gets written into the .launch file as an absolute path. I will need to check on this and get back to you.

    Regards,
    John
  • David,

    I spoke to the team regarding this and it is a limitation in the way it is implemented. I have filed CCSIDE-3565 to track making it so the variable is written to the .launch file.

    The reason it is the way it is stems from a change we did a while ago where we enabled a launch to store settings for multiple .ccxml files. i.e. users would want one set of settings when using one .ccxml and another for a different .ccxml. The full path to the file is used to determine if a new section should be added to the .launch. The names of the files could be the same but stored in different locations.

    Regards,
    John
  • Hi John,
    After the "Link file to project" and "Convert" step in software-dl.ti.com/.../ccs_portable-projects.html, I saw
    </natures>
    <linkedResources>
    <link>
    <name>TMS320F28335.ccxml</name>
    <type>1</type>
    <locationURI>PROJECT_LOC/targetConfigs/TMS320F28335.ccxml</locationURI>
    </link>
    </linkedResources>
    <filteredResources>
    in the file .project. No launch files were adjusted.

    Regards,
    David
  • Thanks John for following this issue up.

    It sounds like using a relative path here would not break that use case.
    I will try to kludge a launch file to use the relative path and see if it works.

    Regards,
    David
  • No change when manually changing launch file to use ${PROJECT_LOC} in ccxml references.
    A new entry is made for each ccxml reference in the launch file without the original flash settings.

    By the way I am using CCS 8.2.0.00007 on Linux.
  • Yes I can can't figure out a way to do this today without us changing the way CCS stores the reference to the ccxml file in the .launch. You could force everyone on the team to check out to the same path on their machines but that is pretty inflexible. Might for now just be easier to have a small set of instructions (maybe even a readme.txt) that are part of the project that tell individual team members the steps for updating their flash settings.

    John
  • Thanks John.

    Keeping the same path would be difficult since we use a mixture of linux and windows machines for development.

    At the moment, we a relying on a file describing the steps to follow but this is not human-proof.

    Now that it is clear that CCS currently cannot support this, your suggestions are valid ways around the problem.

    Another alternative...I have a post process python script that I think I will add a new feature.

    - Check the launch files and see if they contain references to the ccxml file and path.

    - If not, add new lines containing a copy of the a template lines (in ccxml),

    so we can remove the risk of losing calibration data in one of the flash sectors.

    Thanks again for investigating.

  • Cool idea with the python script.

    I am going to close off the thread.

    Regards,
    John