The Use of L1DSRAM
Hi all,
I have a proleme about the use of L1DSRAM.I find that not all the L1DSRAM
can be used by our algrithom.
Only about 50k of L1DSRAM can be used.When I increase the use of L1DSRAM,for
example ,if I set the heapsize to be 62 KByte ,my application corrupted.
I wonder whether my configuration of tcf file is incorrect or some other
configuration is wrong.
The following is part of my tcf file:
#############################################################################################################
var device_regs = {
l2Mode: "64k"
};
var params = {
clockRate: 567,
catalogName: "ti.catalog.c6000",
deviceName: "DM6446",
regs: device_regs,
mem: mem_ext
};
/*
* Customize generic platform with parameters specified above.
*/
utils.loadPlatform("ti.platforms.generic", params);
/*
===========================================================================
* Enable heaps and tasks
*
===========================================================================
*/
bios.enableMemoryHeaps(prog);
bios.enableTskManager(prog);
prog.module("GBL").C64PLUSCONFIGURE = true;
prog.module("GBL").C64PLUSL1DCFG = "16k"; // changed from default of
32k
/* increase the size of the L1DSRAM by 16K because L1 Cache size has been
* reduced by 16K
*/
bios.L1DSRAM.len += 0x4000;
/*
===========================================================================
* Create heaps in memory segments that are to have heap
*
===========================================================================
*/
bios.DDR.createHeap = true;
bios.DDR.heapSize = 0x20000; // 512K
bios.DDRALGHEAP.createHeap = true;
bios.DDRALGHEAP.heapSize = bios.DDRALGHEAP.len;
bios.L1DSRAM.createHeap = true;
bios.L1DSRAM.enableHeapLabel = true;
bios.L1DSRAM["heapLabel"] = prog.extern("L1DHEAP");
bios.L1DSRAM.heapSize = 0xF800; // The change is
here!!!!!!!
/*
===========================================================================
* GBL
*
===========================================================================
*/
/* set MAR register to cache external memory 0x80000000-0x8FFFFFFF */
prog.module("GBL").C64PLUSMAR128to159 = 0x0000ffff;
prog.module("GBL").ENABLEALLTRC = false;
prog.module("GBL").PROCID = 0;
/* user init function calls Link's HAL initialization */
prog.module("GBL").CALLUSERINITFXN = 1;
prog.module("GBL").USERINITFXN = prog.extern("HAL_init");
/*
===========================================================================
* Enable cpu load measurement TODO: this should be in OSAL!!!
*
===========================================================================
*/
var cpuLoad = prog.module("IDL").create("Global_cpuLoad");
cpuLoad.fxn = prog.extern("LOAD_idlefxn");
cpuLoad.calibration = true;
/*
===========================================================================
* MEM : startup and SWI stack size
*
===========================================================================
*/
prog.module("MEM").STACKSIZE = 0x1000;
/*
===========================================================================
* Global Settings
*
===========================================================================
*/
prog.module("MEM").ARGSSIZE = 256;
/*
===========================================================================
* Enable MSGQ and POOL Managers
*
===========================================================================
*/
bios.MSGQ.ENABLEMSGQ = true;
bios.POOL.ENABLEPOOL = true;
/*
===========================================================================
* Set all code and data sections to use DDR
*
===========================================================================
*/
bios.setMemCodeSections (prog, bios.DDR);
bios.setMemDataNoHeapSections (prog, bios.DDR);
bios.setMemDataHeapSections (prog, bios.DDR);
/*
===========================================================================
* MEM : Global
*
===========================================================================
*/
prog.module("MEM").BIOSOBJSEG = bios.DDR;
prog.module("MEM").MALLOCSEG = bios.DDR;
/*
===========================================================================
* add by Sleepy Boy
* change the physical position of system stack, .far .switch
*
===========================================================================
*/
prog.module("MEM").STACKSEG = bios.L1DSRAM;
prog.module("MEM").BSSSEG = bios.L1DSRAM;
prog.module("MEM").ARGSSEG = bios.DDR;
prog.module("MEM").SWITCHSEG = bios.DDR;
prog.module("MEM").CINITSEG = bios.DDR;
prog.module("MEM").PINITSEG = bios.DDR;
prog.module("MEM").CONSTSEG = bios.DDR;
prog.module("MEM").DATASEG = bios.L1DSRAM;
prog.module("MEM").CIOSEG = bios.L1DSRAM;
prog.module("MEM").GBLINITSEG = bios.DDR;
prog.module("MEM").TRCDATASEG = bios.DDR;
prog.module("MEM").SYSDATASEG = bios.L1DSRAM;
prog.module("MEM").OBJSEG = bios.L1DSRAM;
/*
===========================================================================
* TSK : Global
*
===========================================================================
*/
prog.module("TSK").STACKSEG = bios.DDR;
/*
===========================================================================
* Generate configuration files...
*
===========================================================================
*/
if (config.hasReportedError == false) {
prog.gen();
}
#############################################################################################################
Best Regards,
Sleepy Boy.
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source