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.

trouble defining a new platform for the C674x

3056.TI_platform.zip

xdc compiles my platform definition but CCSv5.0 does not recognize it in RTSC view.  What am I doing wrong?

Attached are the files.  Note that the .xs file refers to an external memory map.  I want to keep the memory map external so I can use it for other processors in the 816X.

  • Neil,
    can you give some more details about the error message you are getting, if any? Where is your platform located and is that repository listed in the list of the repositories in the RTSC tab?

    The platform files you attached seem to be generated by the platform wizard, and then you added some changes. Was that the case? The platform package name used in config.bld "VBrick_DSP" does not match the package name in package.xdc "VBrick_on_TI816X". Also, I don't see the files Platform.xdc and MemSegmentDefinition.xs.
     

  • Sasha:

    Thanks for getting back to me.

    In the RTSC tab, I added the repository where my platform is located into CCS but it doesn't find my platform.

    I corrected the discrepancy that you mentioned and CCS/xdc still don't like my platform.

    I have included another zip file with MemSegmentDefinition.xs as well as the xdc output.  

    I don't have a Platform.xdc.   Is that my problem?  What should I put into it?

  • Sorry...here's the zip file...2022.MemSegment.zip

  • If you created your platform with the Platform Wizard, there had to be a file Platform.xdc somewhere. Did you create your platform from scratch or you used the Platform Wizard? In any case, when either you or the Platform Wizard builds a platform package, it is specified in Platform.xdc that it inherits from IPlatform. That's how the RTSC tab knows that your package is a platform package.

    If you used the Platform Wizard, can you run it again, build your platform and try using the generated platform without any changes? There is a demo that could help you there. If you didn't use the Platform Wizard, did you use some other platform as the initial content of your package? This page shows what's the content of various files in a platform package and what they do: http://rtsc.eclipse.org/docs-tip/Memory_Management.

    Besides missing Platform.xdc, your Platform.xs file contain content that is not commonly found in Platform.xs, but in config.bld. Platform.xs files usually contains function calls that I don't see in any of your files.

    Please let me know how you built your platform. We'll have to redo some of the build steps to generate a valid platform package.

  • Sasha:

          Fisrt off, thank you for your patience!

    I originally had defined a platform for the C674X that was generated from the RTSC tool.  The platform definition worked fine.  I have attached a version of the RTSC-tool generated files.  In my attempt to replace the memory map in Platform.xdc with the external memory map MemSegmentDefinition.xs, I then changed some of the RTSC-tool generated files, removed Platform.xdc, and removed the function calls from Platform.xs.

         I am not sure how MemSegmentDefinition.xs was created but it's used the other processors in the TI816x, an ARM A8 and 2 ARM M3's.  For the C67X, I want to use the same map contained in the same file as the other processors.  That way, there is only one memory map to maintain.

    Is there a way to modify the attached platform, or the platform files that I had previously sent, to include MemSegmentDefinition.xs?

    Neil

     

    0624.plaform_from_RTSC_tool.zip

  • There is a way to do it, but you'll have to repeat these steps for all platforms that should share the same memory map. In the file Platform.xs, in function getExeContext, you need to replace the current content of that function with:

    function getExeContext(prog)
    {
        this.$module.CPU.customMemoryMap = xdc.loadCapsule("MemSegmentDefinition.xs").getMemSegmentDefinition();
        return (this.$module.CPU.getExeContext(prog));
    }

    What this does is it replaces whatever memory was defined in Platform.xdc with the content from MemSegmentDefinition.xs. There could be other ways to achieve the same effect, which would be easier to understand, and you would have to add one more config.bld file to your builds. But, this one requires the least ammount of changes.

    I haven't tested this, so something else might need to be fixed, but that's the general direction to get what you are trying to accomplish. If you have some further problems, please let me know.

  • OK Sasha.  That worked.  Thanks a lot.