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/TMS320C6678: CCS RTSC Project cannot find custom RTSC platform recursively?

Part Number: TMS320C6678
Other Parts Discussed in Thread: SYSBIOS

Tool/software: Code Composer Studio

Environment:

  • CCS 7.3
  • XDCtools 3.50
  • SYSBIOS 6.50

I created an custom RTSC platform based on the what's generated by CCS Wizard. The Package is named team.platforms.board0, then the Platform module is named team.platforms.board0.Platform.

The whole RTSC platform (which is also a package) is located inside my repository, whose root has the 'eclipse' directory and has been added into CCS as a RTSC Product.

In this case, CCS automatically adds an environmen variable for my RTSC repo path in my RTSC project. So it should find my custom platform in CCS project properties page(XDC tab). But I can only see the platforms from TI, like ti.platforms.evm6678, in the drop-down list.

If I manually type in my RTSC Platform package name(team.platforms.board0), my project compilation is going well.

If I manually add an extra path to the location of directory '${myRepoRoot}/team/platforms', then the CCS can display my custom platform inside the drop-down list along with those from TI.

So I guess it's because the CCS doesn't search platforms recursively for now. Am I correct? Any chances that CCS will search better in next release?

  • Can you show where CCS adds an environment variable for your platform repository? I haven't looked into that functionality for a while, but what I remember is that when you create a new platform you are doing it outside of any project. Therefore, your new platform and its repository are not automatically added to any of the projects. You have to do it manually, as you already found out. I don't think that we have any plans to automatically add platform repositories to each project in CCS.
    If you have only one such repository, you can always add it in Window->Preferences->Code Composer Studio->Products->RTSC. Once you add it, select the checkbox on the left and that repository will be added to each project created AFTER you add the repository.
  • Hi Sasha.

    I've already added my custom repo into CCS before this topic is posted, so that I can use my custom Module in my RTSC project smoothly.

    And my custom RTSC platform is also located inside my custom repo, which means that I theoretically don't have to add an extra path just for my platform. But in fact, I have to add an extra path of the package which has a Platform module for my custom RTSC Platform.

    The environment variable that I mentioned is a variable that is created in ${RTSCProduct}/eclipse/plugins/<product_name>/plugin.xml, if I recall correctly. And that variable will be displayed in one setting tab of XDCtools of a RTSC project's properties setting page. There also will be variables created for XDC, SYSBIOS, etc.. Those variables are actually passed to command xdc by argument '--xdcpath' I guess.

    Anyway, the problem only occurs when I am facing with product-select tab of CCS RTSC Project Properties Window. In the below, there is a drop-down list that I can select a RTSC Platform. That list is generated or updated by CCS itself. And the list does not have my custom platform, if I don't add an extra path for my RTSC Platform in that tab.
    I guess the core problem may be the package recusive searching. When CCS serachs for a RTSC Platform, if it finds a folder, it checks if this folder is a package which must have a Platform module. If it failed, then it move on to the next folder without digging in.

    Maybe I still cannot describe the situation precisely enough. I'll do my best.
  • Somewhere above you said that when you manually type in the platform name in the platform text box, the string that you type in is "team.platforms.board0". That would mean that the platform package name is "team.platforms.board0", but then the extra path you are adding to the package path is "${myRepoRoot}/team/platforms", which would mean that the platform package name is "board0".

    Take look in package.xdc of your platform package; that should tell you what the package name really is. If it's "board0", then it makes sense that your platform wouldn't be found is your product repo is ${myRepoRoot}. The search algorithm translates the full package name into a path, adds it to the repo path and see if that path exists (there are more details to it, but this is a simplified version). ${myRepoRoot}/board0 is not a valid path, so you don't see your platform in the list.

    Assuming I got this all correctly, and you platform package name is board0, there are two ways to solve it. Your product can have multiple repositories in plugin.xml, so you can have "${myRepoRoot};${myRepoRoot}/team/platforms". An alternative is to rename your platform package by editing package.xdc and use "team.platforms.board0".

    If your platform package name is already team.platforms.board0, then I am missing something. In that case please attach screenshots of your Window->Preferences->Code Composer Studio->Products->RTSC window, and of Product and Repositories tab in your project.
  • Hi, Sasha.

    I have checked the package.xdc and I am sure that my platform package is a name compatible with the RTSC convention, which in here is "team.platforms.board0". I'll post the screenshots in one of the next days.
  • Hi, Sasha.

    While I was taking screenshots, I found that CCS actually can search package recursively, in an ordinary directory. But the core problem is that the CCS cannot do recursive search inside the directory which is a Junction in Windows OS.

    Before continuing to check the screenshots below, we must know these things:

    • I was doing my development work inside the directory: e:\proj\SYSBIOS-Support-Kit
    • The path d:\devel\ti\rtsc-products is one of CCS searching path for RTSC Products.
    • I created a Directory Junction d:\devel\ti\rtsc-products\sysbioskit, which is linked to e:\proj\SYSBIOS-Support-Kit
    • CCS adds my custom RTSC Product from the Junction by default.

    My custom platform's package name and folder structure are displayed below:

    The XDCpath listed in the CCS RTSC Project properties:

    The $(BETACAT_SYSBIOSKIT_INSTALL_DIR) is the path of my custom RTSC product added into CCS.

    The pic below shows the situation that my custom platform is not found.

    The pic below shows the situation that my custom platform can be found when I manually add a path in the "Other Repositories". And that path is just where the platform package is located:

    The pic below shows that my custom platform can be found when I added the development working directory in "Other Repositories" setting.

    If I use Symbolic Link instead of Junction to link my working directory with the created directory entry inside CCS RTSC Product searching path, then everything is going well. So I didn't take the screenshot.

    Conclusion:

    • If my custom platform is not found, I can manually type in the package name inside "Platform" setting and compile work is going well.
    • If CCS import my custom RTSC Platform via a Directory Junction, it cannot find my custom platform.
    • If CCS import my custom RTSC Platform via an ordinary directory or symbolic directory, it can find my custom platform.

  • I don't think that we have ever tested the platform support against Directory Junctions, so it's not surprising that there are some issues. It will take me some time to test that, but I also have a couple of further questions to help me debug the problem.

    Does your product shows under "Products and Repositories"? I can't see the complete content of that pane, but I know that the list of products selected there matters when the platforms are searched for. A RTSC product normally shows up in that list so you can select it for you project.

    Which path is in BETACAT_SYSBIOSKIT_INSTALL_DIR variable? I know that xdcpath matters when the actual configuration step is running, and that's why your platform is found when you manually type it in in the Platform text box. However, I am not sure if xdcpath is used when searching for platforms to show in the drop-down list.

    Also, in the screenshot where you manually added the path to the directory where your platform is located, the path is E:/devel/ti/rtsc-products..., while at the top of your post you wrote that the path is D:/devel/ti/rtsc-products... Do you have your platform in two different directories or is it a typo?

    For now, I think your best workaround is to add E:/proj/SYSBIOS-Support-Kit/packages to "Products and Repositories" as you did in the last screenshot because it matches what happens when your RTSC product is selected under "Products and Repositories".
  • Hi Sasha.

    My custom product name is Betacat's SYSBIOS Kit, if I recall correctly. That name is just a string I write in the plugin.xml which is inside 'eclipse' directory.

    The path variable name BETACAT_SYSBIOSKIT_INSTALL_DIR is also a string written in a .xml file inside 'eclipse' directory. And only the name is written, no specific path value is provided. I think the actual path value is generated by CCS when the product is imported.

    The path 'D:/devel/ti/rtsc-products' is a typo and it should be 'E:/devel/ti/rtsc-products' as the pic shows. I am sorry for this.

    And yes, I have to workaround for this problem for now.
  • I still need to know if your product shows under Products and Repositores, but as a separate RTSC product, not under Other Repositories.

    I have attached a snapshot where I created a simple Demo product that shows in Products and Repositories, as an example of what I am asking about.

  • Hi Sasha.

    Of course, my custom product is displayed under Product and Repositories, just as other products like SYSBIOS.