Dsk6713_ddk.tci
上传用户:dahaojd
上传日期:2008-01-29
资源大小:14357k
文件大小:5k
源码类别:

DSP编程

开发平台:

C/C++

  1. /*
  2.  *  ======== Dsk6713_ddk.tci ========
  3.  *  This script simply sets up the board-specific parameters that are needed
  4.  *  for the assorted DDK examples.
  5.  */
  6. /*
  7.  *  Create an empty object and call it with the getProgObjs method to
  8.  *  create global variables for every Module and Instance object.
  9.  *  For example, instead of
  10.  *  prog.module("LOG").instance("LOG_system").buflen = <some value>;
  11.  *  we can simply say
  12.  *  tibios.LOG_system.buflen = <value>;
  13.  */
  14. tibios = {};
  15. utils.getProgObjs(prog, tibios);
  16. /*
  17.  *  enable assorted BIOS features
  18.  */
  19. bios.enableMemoryHeaps(prog)
  20. bios.enableRealTimeAnalysis(prog);
  21. bios.enableRtdx(prog);
  22. bios.enableTskManager(prog);
  23. /*
  24.  *  initialize LOG objects for user trace and system log
  25.  */
  26. var trace = tibios.LOG.create("trace");
  27. trace.bufLen = 1024;
  28. trace.logType = "circular";
  29. tibios.LOG_system.bufLen = 1024;
  30. tibios.LOG_system.logType = "circular";
  31. /*
  32.  *  Memory segments, their sizes, heaps, and heap sizes
  33.  *  (SDRAM is external program memory, IRAM is internal memory)
  34.  *  We split the 64K of internal RAM as 16K for code/data and 48K for cache.
  35.  *  In internal and external data memory, we create heaps with names 
  36.  *  INTERNALHEAP and EXTERNALHEAP, respectively, and platform-independent
  37.  *  portions of the application refer to these heaps by their names
  38.  *  rather than the names of memory segments they are created in
  39.  *  (as not all platforms have IRAM, SDRAM segments).
  40.  */
  41. /* Enable heap creation */
  42. bios.enableMemoryHeaps(prog);
  43. tibios.GBL.C621XCONFIGUREL2 = true;  /* Enable L2 configuration */
  44. tibios.GBL.C621XCCFGL2MODE = "3-way cache";
  45. /* define comments of the data memory segments (Temporary fix for SDSsq28652) */
  46. tibios.IRAM.comment ="This object defines space for the DSP's on-chip memory";
  47. tibios.SDRAM.comment ="This object defines space for the DSP's off-chip memory";
  48. /* shorten the length of the IRAM section to allow 3-way cache */
  49. tibios.IRAM.base            = 0x00000;
  50. tibios.IRAM.len             = 0x04000;               /* 16K */
  51. tibios.IRAM.space           = "code/data";
  52. /* allocate heap named "EXTERNALHEAP" of size 0x02000 in internal memory */
  53. tibios.IRAM.createHeap      = true;
  54. tibios.IRAM.heapSize        = 0x01800;  /* 8K   */
  55. tibios.IRAM.enableHeapLabel = true;
  56. tibios.IRAM.heapLabel       = prog.extern( "INTERNALHEAP" );
  57. /* allocate heap named "EXTERNALHEAP" of size 0x08000 in external memory */
  58. tibios.SDRAM.createHeap      = true;
  59. tibios.SDRAM.heapSize        = 0x08000;  /* 32K   */
  60. tibios.SDRAM.enableHeapLabel = true;
  61. tibios.SDRAM.heapLabel       = prog.extern( "EXTERNALHEAP" );
  62. /*
  63.  *  Set the size of the application stack. Must be large
  64.  *  enough to accomodate worst-case of nested priorities, if any.
  65.  */
  66. tibios.MEM.STACKSIZE = 0x0400;
  67. /*
  68.  *  Set the default segment for the stack allocated by TSK_create().
  69.  */
  70. tibios.TSK.STACKSEG = tibios.SDRAM;
  71. /*
  72.  *  Overriding default section placement
  73.  *  assign listed sections to specified memory segments 
  74.  */ 
  75. /* General */
  76. tibios.MEM.BIOSOBJSEG  = tibios.SDRAM;    /* Segment for DSP/BIOS Objects */
  77. tibios.MEM.MALLOCSEG   = tibios.SDRAM;    /* Segment for malloc()/free() */
  78. /* BIOS data */
  79. tibios.MEM.ARGSSEG     = tibios.SDRAM;    /* Argument Buffer Section (.args) */
  80. tibios.MEM.STACKSEG    = tibios.IRAM;     /* Stack Section (.stack) */
  81. tibios.MEM.GBLINITSEG  = tibios.SDRAM;    /* DSP/BIOS Init Tables (.gblinit) */
  82. tibios.MEM.TRCDATASEG  = tibios.SDRAM;    /* TRC Initial Value (.trcdata) */
  83. tibios.MEM.SYSDATASEG  = tibios.SDRAM;    /* DSP/BIOS Kernel State (.sysdata) */
  84. tibios.MEM.OBJSEG      = tibios.SDRAM;    /* DSP/BIOS Conf Sections (.*obj) */
  85. /* BIOS code */
  86. tibios.MEM.BIOSSEG     = tibios.SDRAM;    /* BIOS Code Section (.bios) */
  87. tibios.MEM.SYSINITSEG  = tibios.SDRAM;    /* Startup Code Section (.sysinit) */
  88. tibios.MEM.HWISEG      = tibios.SDRAM;    /* Function stub memory (.hwi) */
  89. tibios.MEM.HWIVECSEG   = tibios.SDRAM;    /* Interrupt Service Table */
  90.   /* Memory (.hwi_vec) */
  91. tibios.MEM.RTDXTEXTSEG   = tibios.SDRAM;  /* RTDX Text Segment (.rtdx_text) */
  92.   /*  Place RTDX in internal memory */
  93. /* Compiler Sections */
  94. tibios.MEM.TEXTSEG     = tibios.SDRAM;    /* Text Section (.text) */
  95. tibios.MEM.SWITCHSEG   = tibios.SDRAM;    /* Switch Jump Tables (.switch) */
  96. tibios.MEM.CINITSEG    = tibios.SDRAM;    /* Data Initialization */
  97.   /* Section (.cinit) */
  98. tibios.MEM.PINITSEG    = tibios.SDRAM;    /* C Function Initialization */
  99.   /* (.pinit) */
  100. tibios.MEM.CONSTSEG    = tibios.SDRAM;    /* Constant Section (.const) */
  101. tibios.MEM.DATASEG     = tibios.SDRAM;    /* Data section (.data) */
  102. tibios.MEM.CIOSEG      = tibios.SDRAM;    /* Data section (.cio) */
  103. /*
  104.  *  .bss and .far segments should be in internal memory to avoid cache
  105.  *  consistency problems with EDMA-ed data (it is by default,
  106.  *  so this is more of a reminder)
  107.  */
  108. tibios.MEM.BSSSEG = tibios.IRAM;          /* C variables section (.bss) */
  109. tibios.MEM.FARSEG = tibios.IRAM;          /* C Variables Section (.far) */
  110. /*
  111.  *  Move Object memory segments to external memory 
  112.  *  to minimize internal memory usage
  113.  */
  114. var objectModules = prog.modules();
  115. for (i = 0; i < objectModules.length; i++) {
  116.     if (objectModules[i].OBJMEMSEG == tibios.IRAM) {
  117.         objectModules[i].OBJMEMSEG = tibios.SDRAM;
  118.     }
  119. }
  120. /*
  121.  *  Move SYS Trace Buffer to external memory 
  122.  *  to minimize internal memory usage
  123.  */
  124. tibios.SYS.TRACESEG   = tibios.SDRAM;