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 define external ram for tms320c28335?

we are developping a bios project with tms320c28335 board under ccs4.1.2. I'm defining my own platform derived from ti.platforms.control28335.All things went ok,but we faced a compiled error: run placement fails for object ".ebss", size 0x8894b (page 0). Available ranges: L47SARAM size: 0x4000 unused: 0x0 max hole: 0x0.I know the reason is that .ebss size is too large to place,i need to place .ebss to external memory .i defined external memory zero 6 from 0x100000-0x1fffff,i placed .ebss to S6RAM.but still faced error:memory name 'S6RAM' is not defined by the platform 'ti.platforms.control28335:xhcplat'.how could i do?

S6RAM is the defined external memory in the config.bld.
externalMemoryMap[string]= [
        "S6RAM ",
        { name: "S6RAM ",
        base: 0x100000,
        len: 0xFFFFF,
        page: 0,
        space: "code/data"
        }
];

 

  • yong lin,

    Can you try the following?  I did the following in my config.bld and it works for me.

         externalMemoryMap: [
            ["S6RAM ",
                { name: "S6RAM ",
                  base: 0x100000,
                  len: 0xFFFFF,
                  page: 0,
                  space: "code/data"
                }
            ],
        ]

    I also had to do in my *.cfg:

        Program.sectMap[".econst"] = "S6RAM";

    Judah

  • thanks for your response.

    in the cfg file script i defined:

    Program.sectMap[".econst"] = "S6RAM";

    maybe it is platform reason.i aways got the error :"S6RAM" is not defined by the platform...

    what should i do?

    my config.bld is as follows:

    var memory = [];
    var exmemory = [];

    memory[0] = [
                "MSARAM",
                {
                    comment: "On-Chip RAM Memory",
                    name: "MSARAM",
                    base: 0x0,
                    len: 0x800,
                    page: 0,
                    space: "code/data"
                }];                      
               
    memory[1] = [
               "PIEVECT",
                {
                    comment: "On-Chip PIEVECT RAM Memory",
                    name: "PIEVECT",
                    base: 0xD00,
                    len: 0x100,
                    page: 1,
                    space: "data"
                }
                ];

    memory[2] = [
                            "L03SARAM",
                            { name: "L03SARAM",
                            base: 0x8000,
                            len: 0x4000,
                            page: 0,
                            space: "code/data"
                            }
    ];
    memory[3] = [
            "L47SARAM",
            { name: "L47SARAM",
            base: 0xC000,
            len: 0x4000,
            page: 0,
            space: "code/data"
            }
    ];

    memory[4] = ["FLASH",
    { name: "FLASH",
    base: 0x300000,
    len: 0x3ff80,
    page: 0,
    space: "code/data"
    }];
    memory[5] = ["CSM_RSVD",
    { name: "CSM_RSVD",
    base: 0x33ff80,
    len: 0x0076,
    page: 0,
    space:  "code/data"
    }];
    memory[6] = ["BEGIN_FLASH",
    { name: "BEGIN_FLASH",
    base: 0x33fff6,
    len: 0x0002,
    page: 0,
    space:  "code/data"
    }];

    memory[7] = ["PASSWORDS",
    { name: "PASSWORDS",
    base: 0x33fff8,
    len: 0x0008,
    page: 0,
    space: "code/data"
    }];

    memory[8] = ["OTP",
    { name: "OTP",
    base: 0x380400,
    len: 0x400,
    page: 0,
    space: "code/data"
    }];
    memory[9] = ["IQTABLES",
    { name: "IQTABLES",
    base: 0x3fe000,
    len: 0xb50,
    page: 0,
    space: "code/data"
    }];

    memory[10] = ["IQTABLES2",
    { name: "IQTABLES2",
    base: 0x3feb50,
    len: 0x8c,
    page: 0,
    space: "code/data"
    }];
    memory[11] = ["FPUTABLES",
    { name: "FPUTABLES",
    base: 0x3febdc,
    len: 0x6a0,
    page: 0,
    space: "code/data"
    }];

    memory[12] = ["BOOTROM",
    { name: "BOOTROM",
    base: 0x3ff27c,
    len: 0xd44,
    page: 0,
    space: "code/data"
    }];
    exmemory[0] = [
            "S6RAM",
            { name: "S6RAM",
            base: 0x100000,
            len: 0xFFFFF,
            page: 0,
            space: "code/data"
            }
    ];


    Build.platformTable['ti.platforms.control28335:xhcplat'] =
    //Build.platformTable['ti.platforms.generic:c28'] =
    {

    deviceName: "TMS320C28335",
    catalogName: "ti.catalog.c2800",
    clockRate: 100.00,
    customMemoryMap: memory,
    externalMemoryMap: exmemory,
    codeMemory: "FLASH",
    dataMemory: "L03SARAM",
    stackMemory:"L47SARAM",

    };
    var target  = xdc.module('ti.targets.C28_float');
    target.rootDir = 'D:/Program Files/Texas Instruments/ccsv4/tools/compiler/C2000 Code Generation Tools 5.2.10';
    target.platform ='ti.platforms.control28335:xhcplat';
    Build.targets = [target];

     

     


  • This is what I did.  All it does is add the S6RAM to the memory of the ti.platforms.control28335 platform:

    var tiTargets = xdc.loadPackage('ti.targets');

    tiTargets.C28_float.platform = "ti.platforms.control28335:xhcplat";

    Build.platformTable["ti.platforms.control28335:xhcplat"] = {
        externalMemoryMap: [
            ["S6RAM ",
                { name: "S6RAM ",
                  base: 0x100000,
                  len: 0xFFFFF,
                  page: 0,
                  space: "code/data"
                }
            ],
        ]
    };

    Judah

  •  i have changed the ccs4.1.2 to ccs5.1.0.i do as what you said,i solve all problem!thanks judahvang for your help!