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.

Problems with importing an existing custom platform project

Hi to everyone,

We are working on TMS320C6670 DSP. The custom platform project was created in the CCS 5.5 that has next files:

.cproject

.project

config.bld

package.bld

package.xdc

Platform.xdc

Platform.xs

As I know this is all the necessary files to build a binary platform from it. So when I do File->Import->Existing project to the Workspace it attached and building just fine. Bu the problem is that the project cannot become Active in the CCS 6 environment, also Clear project feature doesn't work. So after hitting the "Clean Project" nothing happens. There is no such problem in the CCS 5.5. Any idea how to fix this?

Best Regards,

Pavlo!

  • Hi Pavlo,
    Moved this thread over CCS forum for faster response. Thank you.
  • Pavlo Sergiienko said:
    Bu the problem is that the project cannot become Active in the CCS 6 environment, also Clear project feature doesn't work. So after hitting the "Clean Project" nothing happens.

    It might be best to start by comparing the build output in the CCS build console for the two builds - the one with CCS 5.5 and the one with CCSv6. Exactly what is happening when you do a Rebuild in CCSv6?

  • Output of ccs v5.5 on build:

    **** Build of configuration Default for project mk_platform ****
    
    "C:\\TI\\xdctools_3_25_04_88\\xdc" -k all 
    making package.mak (because of package.bld) ...
    generating interfaces for package tescom.platforms.c6670 (because package/package.xdc.inc is older than package.xdc) ...
        translating Platform
    all files complete.
    
    **** Build Finished ****

    Output of ccs v5.5 on clean:

    **** Clean-only build of configuration Default for project mk_platform ****
    
    "C:\\TI\\xdctools_3_25_04_88\\xdc" -k clean 
    
    **** Build Finished ****

    Output ov ccsv6.1 on build:

    **** Build of configuration Default for project mk_platform ****
    
    "C:\\TI\\xdctools_3_25_04_88\\xdc" -k all 
    making package.mak (because of package.bld) ...
    generating interfaces for package tescom.platforms.c6670 (because package/package.xdc.inc is older than package.xdc) ...
        translating Platform
    all files complete.
    
    **** Build Finished ****
    

    With ccs v6.1 nothing is shown in CDT build console on "build clean".

  • I've noticed another thread about XDCtools and SDSCM00051627.

    Just in case, I was setting XDCROOT environment variable by hand in the OS. Here is a screenshot of build variables for the project:

  • I think the folks in the TI-RTOS forum may have more expert advise to help with this so I will move this thread to that forum.

  • Hi Pavlo, rrlagic,

    I am not sure why you would need to build the custom platform project again. As far as I understand, custom platform can be created through Platform Wizard. Once created, it can be used in any of the projects. Even when you move to a new CCS. You do not need to create or build the project again.

    If you have a platform that is already created in CCS 5.5 and would like to use it in a project that is built in CCS 6.0, you just need add the platform to the packages path and select the platform in the application's platform settings.

    For example:

    I have my platform packages in the path C:\Users\...\myRepository\packages. I added this to the Other Repositories by clicking Add button. Once added to the packages, you can click on the Platform drop down to select your custom platform which should be automatically populated by CCS which looks through the package path for all platforms available.

    Vikram

  • Hello Vikram,
    We want to build platform because platform guts contain a lot of generated code. We use revision control system and we want to keep only sources under revision control. Whatever could be generated, should be generated. I used platform building project as a dependency for my main project. Right now we still experimenting with platform settings, so it would be convenient to have a possibility to rebuild platform each time it changes and propagate those changes in a team.
    Some time ago, two years ago to be precise, I was guided by someone (Sasha Slipnevich?) how to fix the process and I had a success with older tools. Unfortunately that time I did not documented my steps, so now we are starting from a scratch.
    Sure, we know to add platform output to "Other repositories".
  • I created a custom platform project from scratch (something that we don't recommend) and it works for me on CCS 6.1. Can you check if the clean option is enabled in your project settings? May be importing the project changed something .cproject and .project files.

  • Hello,

    Thank you for keep watching. Mine setting about the same. What is interesting, that I cannot make the project active. In the Project explorer panel every other project while selected becomes bold with [Active - Debug] label after its name, but platform project - does not.

    Would you mind to share your steps to create the project? And why you don't recommend to use platform building project?

    Thanks

  • The [Active - Debug] does not work for me too. Note this is a C Project not a RTSC project like the other projects you have. Maybe this feature changed in the newest CCS. I am not sure but you can ask about it on the CCS forums.

    To create the custom platform project in CCS 6.1 from scratch:

    1) Create a C Project:  File > New > Project ... > C/C++ > C Project. Click Next, Enter Project Name and Select Makefile Project > Empty Project. Toolchain as --Other Toolchain --. Click Finish.

    2) Right Click on created project and Add Files ... Add your Platfrom.xdc, Platform.xs, package.xs, package.xdc and config.bld.

    3) Right Click on project and select Properties. Setup Build command as shown below:

    4) Lastly set-up XDCROOT under C/C++ Build > Build Variables and XDCPATH under C/C++ Build > Environment as you did before.

    We don't recommend it because it has complicated steps as you see above and is only for advanced power user but not for general audience.

    Vikram

  • Thanks a lot,

    Perhaps importing was one of root problems. When I recreated such a project with these instructions, platform gets built & cleaned, it also can be selected as a platform for other projects.

    Could you please clarify a bit step 4)?
    Under C/C++ Build>Build variables I have clicked Add... and selected XDCROOT, which in turn was defined as operating system environment variable by hand. Is that right?
    However, I did not get the second half of "XDCPATH under C/C++ Build > Environment". Please instruct more.
    And just in case, earlier I saw some .zip file was created in the platform folder on build, but this does not happen right now.

    I believe the process we step through is right for me, would take a challenge :-)
  • Now thinking about it more, I feel it is not a good idea to define XDCPATH in Environment (adding to environment will cause issues with other projects sometimes). Instead it is better to have it in build variables next to XDCROOT.

    You will also have make a small tweak to the Build Command as follows:

    ${XDCROOT}/xdc --xdcpath="${XDCPATH}"

    Vikram
  • Hello Vikram,

    Thank you for keep watching the thread. I have tried what you suggest. However, I see ${XDCPATH} variable is empty in my setup. Perhaps you remember my post https://e2e.ti.com/support/embedded/tirtos/f/355/p/425883/1521404#1521404,

    ${XDCROOT}/xdc --xdcpath=${XDCPATH}

    Then console output reads as:

    09:08:19 **** Clean-only build of configuration Default for project mk_plt ****
    "C:\\TI\\xdctools_3_25_04_88\\xdc" --xdcpath= clean 
    using out-of-date package.mak to clean ...
    
    09:08:22 Build Finished (took 2s.150ms)

    Note, there is "NOTHING" after equal char in xdcpath option. Just as matter of experiment I put build command as

    ${XDCROOT}/xdc --xdcpath=${XDCROOT}

    Then I see the option got some value:

    09:11:19 **** Clean-only build of configuration Default for project mk_plt ****
    "C:\\TI\\xdctools_3_25_04_88\\xdc" --xdcpath=C:/TI/xdctools_3_25_04_88 clean 
    
    09:11:20 Build Finished (took 490ms)

    Perhaps, something is wrong with my CCS setup. Could please clarify a little, what is correct way to setup ${XDCROOT} (I used OS env variable) and ${XDCPATH} (I did nothing).

    Thanks in advance.

  • In the Build variables, what is the value, the XDCPATH variable has been set to?

    Since you are using XDCtools v3.25.04.88, you can skip setup of XDCPATH and revert back to using the build command:

    ${XDCPATH}/xdc

    But if you move to the newer releases of XDCtools, setting up XDCPATH is required. This is because the target/platform packages have been moved out of the XDCtools product into SYS/BIOS product.  These packages are needed for you to build you custom platform packages. But again, it's needed when you move to a newer XDCtools version.

    Vikram

  • Hello,

    We do not stick to any particular version so far. My feeling is that tools are still in premature condition, so before we release our design, we don't mind to upgrade to the latest version of any tool available.

    With XDCtools I have found that *_core was missing platforms, and before I learned what is a reason behind that, just assigned to latest non-core version, not because of any other preference.

    As I have shown on the screenshot in the post https://e2e.ti.com/support/embedded/tirtos/f/355/p/425883/1521404#1521404, variable XDCPATH is empty, it is marked as <ECLIPSE DYNAMIC VARIABLE>, but has no real value. Could you please clarify:

    1. How do we set XDCPATH properly?
    2. Is that correct, that XDCROOT is to be set as environment variable in the operating system? I hoped it could be done somehow through project settings.

    Thanks in advance.

  • 1. The targets are moved to SYS/BIOS product from SYS/BIOS v6.40 and XDCtools v3.30. So set the XDCPATH=<sys_bios_installation_dir>/packages where <sys_bios_installation_dir> should be substituted with the actual SYS/BIOS installation path.

    2. No, XDCROOT is not required to be set as an environment variable. In fact, we don't recommend setting it as an environment variable because of the issues it may cause when multiple XDCtools versions are installed.

    Vikram
  • Hello,

    Thank you for keep watching the thread.

    I do completely agree, that having system wide environment variable makes it impossible to use multiple versions of tools installed, and that was a concern when I asked about it.

    Perhaps, I have misinterpreted instruction to set XDC_ROOT. Rather than set it as operating system environment variable, I have to set it as environment variable in project properties->C/C++ Build->Environment. Is that right?

    As to XDCPATH, I found a reference in the build variables window, which suggest to set CCS->Perferences->RTSC. When I selected desired BIOS version, seems that variable arrived correctly, though I see deficiency in such approach as that setting becomes installation wide, not per project. Should I rather define XDCPATH manually as build or environment variable per project?

    Anyway, this way I had compiled platform with bios_6_41_03_51 and xdctools_3_31_00_24_core. I have to define XDCTOOLS_JAVA_HOME, but that was rather straightforward with hint in build console.

    Though the issue seems to be resolved, I'd like to make sure we are doing that in right way.

  • Hello,

    I am not an expert on CCS features. You may need to post your CCS related questions in the CCS forums. 

    But have a look at the screen-shot below. It shows how I define local XDCROOT and XDCPATH for the custom platform project.

    I am using CCS on Linux so the paths are UNIX style. This dialog should be similar in CCS on Windows.

    Hope this helps.

    Vikram

  • Hello Vikram,

    Thank you for feedback. I've got your point, we will use same way.