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.

How to rebuild a platform with new memory map using XDC

Guru* 95265 points

For example, xdctools_3_23_04_60\packages\ti\platforms\evm6678\Platform.xdc define the DSP memory map, customer wants to customize with their own. They replace this file and typed:

- xdc clean

- xdc

However when they build the test project with this modified platform, the memory map changed is not reflected in the auto-generated linker.cmd file. So, would like to understand what is missing?

Regards, Eric

 

 

  • Eric,
    what kind of modification have they made? The only memory that can be modified in that file is external memory. They also need to be sure that there are no error messages in the build output, after they type 'xdc' on the command line.

    Are they CCS users?

  • Sasha,

    Thanks! The customer tried to divide LL2 into several regions and place the code, not external memory. So your comment explains the observation.

    Now, how can they rebuild the platform using XDC with modified LL2? They don't use CCS to build the project.

    Regards, Eric

     

  • Eric,
    they will have to split the memory in config.bld. Depending on the TI products that they are using, they are either creating config.bld on their own, or some of the underlying TI products is specifying config.bld for them. Either way, they'll have to find that file and add an entry for ti.platforms.evm6678, similar to this one:
    Build.platformTable["ti.platforms.evm6678"] = {
        customMemoryMap: [
            [
                "L2SRAM_CODE", {
                    name: "L2SRAM_CODE",
                    base: 0x800000,
                    len:    0x040000,
                    space: "code",
                }
            ],
            [
                "L2SRAM_DATA", {
                    name: "L2SRAM_DATA",
                    base: 0x840000,
                    len:    0x040000,
                    space: "code", 
               },
            ],
            [
               "L1PSRAM", {
                   name:       "L1PSRAM",
                   base:       0x00E00000,
                   len:        0x00008000,
                   space:      "code"
               },
            ],
            [
               "L1DSRAM", {
                  name:       "L1DSRAM",
                  base:       0x00F00000,
                  len:        0x00008000,
                  space:      "data"
               }
           
    ],
            [
                "MSMCSRAM", {
                    name:       "MSMCSRAM",
                    base:       0x0C000000,
                    len:        0x00400000,
                    space:      "code/data"
                }
            ],
           
    [
                "DDR3", {
                    name: "DDR3",
                    base: 0x80000000,
                    len: 0x20000000
                }
            ]

        ],
        codeMemory: "L2SRAM_CODE",
        dataMemory: "L2SRAM_DATA",
        stackMemory: "L2SRAM_DATA"
    };

    So, they will have to specify the complete memory layout.
    Alternatively, they could still use CCS to create a custom platform with the Platform Wizard and then use that platform in their non-CCS build.