⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dm6446.tcf

📁 x264 encoder in TI ccs.
💻 TCF
字号:
/*
 * Setup platform-specific memory map:
 */
var mem_ext = [
{
    comment:    "DDRALGHEAP: off-chip memory for dynamic algmem allocation",
    name:       "DDRALGHEAP",
    base:       0x88000000,   // 128MB
    len:        0x07A00000,   // 122MB
    space:      "code/data"
},
{
    comment:    "DDR: off-chip memory for application code and data",
    name:       "DDR",
    base:       0x8FA00000,   // 250MB
    len:        0x00400000,   //   4MB
    space:      "code/data"
},
{
    comment:    "DSPLINK: off-chip memory reserved for DSPLINK code and data",
    name:       "DSPLINKMEM",
    base:       0x8FE00000,   // 254MB
    len:        0x00100000,   //   1MB
    space:      "code/data"
},
{
    comment:    "RESET_VECTOR: off-chip memory for the reset vector table",
    name:       "RESET_VECTOR",
    base:       0x8FF00000,
    len:        0x00000080,
    space:      "code/data"
},
];


/*
 *  Internal memory partitioning
 *
 *  On the left in the diagram below is the layout of internal memory
 *  available on DM6446 for data caching and as RAM; on the right is the
 *  diagram showing how this configuration file partitions the available
 *  64k+80k of memory. (The 32K for program cache is not affected by this
 *  configuration.) Please find more specifics on how the configuration is
 *  done further below.
 *
 *
 *  Physical internal memory on DM6446     Default partitioning in this .tcf
 *
 *              |//////////|                           |//////////|
 *  0x11800000  +----------+               0x11800000  +----------+
 *              | L2Cache  |                           |          |
 *              |  and/or  | 64k                       | L2 Cache | 64k
 *              |  IRAM    |                           |          |
 *              |          |                           |          |
 *  0x11810000  +----------+               0x11810000  +----------+
 *              |//////////|                           |//////////|
 *              :          :                           :          :
 *              |//////////|                           |//////////|
 *  0x11F04000  +----------+               0x11F04000  +----------+
 *              |          |                           |          |
 *              | L1DSRAM  | 48k                       | L1DSRAM  |
 *              |          |                           |          | 64k
 *  0x11F10000  +- - - - - +                           |          |
 *              |L1Cache or| 32k                       +- - - - - +
 *              |more L1DSR|               0x11F14000  | L1 cache | 16k
 *  0x11F18000  +----------+               0x11F18000  +----------+
 *              |//////////|                           |//////////|
 */


/*
 *  Specify the L2 CACHE memory setting. This value indicates how the physical
 *  internal memory of size 64K starting at 0x11800000 will be split between
 *  L2 cache and a general-purpose internal memory segment IRAM. The options
 *  are:
 *  l2Mode: "0k"  -- IRAM is 64K long, starts at 0x11800000; no L2 cache
 *  l2Mode: "32k" -- IRAM is 32K long, starts at 0x11800000; L2 cache is
 *                           32K long, starts at 0x11808000
 *  l2Mode: "64k" -- no IRAM; L2 cache is 64k long, starts at 0x11800000
 */
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);

/*  ===========================================================================
 *  Configure L1 cache and L1DSRAM segment
 *
 *  In addition to the 64K at address 0x11800000, the DM6446 device has another
 *  48K of physical memory at 0x11F04000 available as internal RAM,
 *  called the "L1DSRAM" segment in BIOS, and it has another adjacent 32K
 *  at 0x11F10000 that can either be used entirely for L1 cache,
 *  or split between L1 cache and more internal memory.
 *
 *  The 80K segment (48K + 32K) starts at 0x11F04000. When powered on, the
 *  device uses the upper 32K for L1 cache entirely, so BIOS by default defines
 *  the L1DSRAM segment to be 48K long and does not change the cache.
 *
 *  We can change the default behavior, by shrinking the L1 cache and adding
 *  the extra space to L1DSRAM. We can set the L1 cache to be 32K (the default)
 *  or 16K, 8K, 4K, or 0K. The corresponding L1DSRAM sizes then are 48K (the
 *  default), or 64K, 72K, 76K, or 80K.
 *
 *  The L1DSRAM segment always starts at 0x11F04000.
 *  ===========================================================================
 */
prog.module("GBL").C64PLUSCONFIGURE   = true;

prog.module("GBL").C64PLUSL1DCFG      = "32k";  // changed from default of 32k */
/*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*/
/*fang*/
bios.DDR.heapSize   = 0x2F0000; // 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         = 0x8000;


/*  ===========================================================================
 *  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
 *  ===========================================================================
 */

/*var CACHE_L1D = bios.MEM.creat ("CACHE_L1D");
bios.CACHE_L1D.base = 0x11f1000;
bios.CACHE_L1D.len = 0x4000;
/*bios.CACHE_L1D.len = 0x0;*/


/*bios.MEM.SWITCHSEG = prog.get("L1DSRAM");*/


/*bios.CACHE_L1D = true;*/
bios.setMemCodeSections (prog, bios.DDR);
bios.setMemDataNoHeapSections (prog, bios.DDR);
bios.setMemDataHeapSections (prog, bios.DDR);

bios.MEM.SWITCHSEG = prog.get("L1DSRAM");
/*bios.MEM.BSSSEG = prog.get("L1DSRAM");*/

/*bios.MEM.CINITSEG = prog.get("L1DSRAM");*/
bios.MEM.STACKSEG = prog.get("L1DSRAM");
bios.MEM.TRCDATASEG = prog.get("L1DSRAM");
/*  ===========================================================================
 *  MEM : Global
 *  ===========================================================================
 */


prog.module("MEM").BIOSOBJSEG = bios.DDR;

prog.module("MEM").MALLOCSEG  = bios.DDR;


/*  ===========================================================================
 *  TSK : Global
 *  ===========================================================================
 */

/*
prog.module("TSK").STACKSEG = bios.DDR;
*/

prog.module("TSK").STACKSEG = prog.get("L1DSRAM");

/*  ===========================================================================
 *  Generate configuration files...
 *  ===========================================================================
 */
if (config.hasReportedError == false) {
bios.IDL.instance("LNK_dataPump").order = 1;
bios.IDL.instance("RTA_dispatcher").order = 2;
bios.IDL.instance("IDL_cpuLoad").order = 3;
bios.IDL.instance("Global_cpuLoad").destroy();
bios.MSGQ.ENABLEMSGQ = 0;
bios.POOL.ENABLEPOOL = 0;
bios.MEM.BSSSEG = prog.get("L1DSRAM");
bios.GBL.CALLUSERINITFXN = 0;
bios.MEM.instance("DDRALGHEAP").createHeap = 0;
bios.MEM.instance("L1DSRAM").heapSize = 0x00002000;
bios.MEM.instance("DDR").heapSize = 0x000f0000;
bios.MEM.instance("DDR").heapSize = 0x00080000;
bios.MEM.instance("DDR").heapSize = 0x000a0000;
bios.MEM.NOMEMORYHEAPS = 0;
bios.MEM.instance("DDR").createHeap = 1;
bios.MEM.instance("DDR").heapSize = 0x000f0000;
bios.MEM.BIOSOBJSEG = prog.get("DDR");
bios.MEM.MALLOCSEG = prog.get("DDR");
bios.MEM.instance("DDR").heapSize = 0x000b0000;
bios.MEM.STACKSIZE = 0x2000;
bios.MEM.STACKSIZE = 0x4000;
bios.MEM.STACKSIZE = 0x1000;
bios.MEM.STACKSEG = prog.get("DDR");
bios.MEM.STACKSEG = prog.get("L1DSRAM");
bios.MEM.STACKSIZE = 0x2000;
bios.MEM.ARGSSEG = prog.get("L1DSRAM");
bios.MEM.CONSTSEG = prog.get("L1DSRAM");
bios.MEM.DATASEG = prog.get("L1DSRAM");
bios.MEM.PINITSEG = prog.get("L1DSRAM");
bios.MEM.CINITSEG = prog.get("L1DSRAM");
bios.MEM.CINITSEG = prog.get("DDR");
bios.MEM.PINITSEG = prog.get("DDR");
bios.MEM.CONSTSEG = prog.get("DDR");
bios.MEM.DATASEG = prog.get("DDR");
bios.MEM.instance("DDR").heapSize = 0x00200000;
bios.MEM.instance("DDR").heapSize = 0x00120000;
bios.MEM.instance("DDR").heapSize = 0x00100000;
bios.MEM.instance("DDR").heapSize = 0x000d0000;
bios.MEM.instance("DDRALGHEAP").createHeap = 1;
bios.MEM.instance("DDR").heapSize = 0x00000000;
bios.MEM.MALLOCSEG = prog.get("DDRALGHEAP");
bios.MEM.BIOSOBJSEG = prog.get("DDRALGHEAP");
// !GRAPHICAL_CONFIG_TOOL_SCRIPT_INSERT_POINT!

    prog.gen();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -