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.
In c6678,SYS/BIOS ,in .cfg file , set a heap,name is HEAP_CACHE, when i build the project ,appear the following warning:
warning #10247-D: creating output section "HEAP_CACHE" without a SECTIONS
how can i solve this question?
the following is the cfg file of my project :
/*
* Copyright (c) 2012, Texas Instruments Incorporated
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of Texas Instruments Incorporated nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* */
var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
var Timestamp = xdc.useModule('xdc.runtime.Timestamp');
var Memory = xdc.useModule('xdc.runtime.Memory');
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
/*
* Get the list of names that the build device supports.
* I.e. ["CORE0", "CORE1", "CORE2" ... ]
*/
var nameList = MultiProc.getDeviceProcNames();
/*
* Since this is a single-image example, we don't (at build-time) which
* processor we're building for. We therefore supply 'null'
* as the local procName and allow IPC to set the local procId at runtime.
*/
MultiProc.setConfig(null, nameList);
/*
* The SysStd System provider is a good one to use for debugging
* but does not have the best performance. Use xdc.runtime.SysMin
* for better performance.
*/
var System = xdc.useModule('xdc.runtime.System');
var SysStd = xdc.useModule('xdc.runtime.SysStd');
System.SupportProxy = SysStd;
/* Modules explicitly used in the application */
var MessageQ = xdc.useModule('ti.sdo.ipc.MessageQ');
var Ipc = xdc.useModule('ti.sdo.ipc.Ipc');
var HeapBufMP = xdc.useModule('ti.sdo.ipc.heaps.HeapBufMP');
var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
/* BIOS/XDC modules */
var BIOS = xdc.useModule('ti.sysbios.BIOS');
BIOS.heapSize = 134217728;
var Task = xdc.useModule('ti.sysbios.knl.Task');
var tsk0 = Task.create('&tsk0_func');
tsk0.instance.name = "tsk0";
/* Synchronize all processors (this will be done in Ipc_start) */
Ipc.procSync = Ipc.ProcSync_ALL;
/* Shared Memory base address and length */
var SHAREDMEM = 0x0C000000;
var SHAREDMEMSIZE = 0x00200000;
/*
* Need to define the shared region. The IPC modules use this
* to make portable pointers. All processors need to add this
* call with their base address of the shared memory region.
* If the processor cannot access the memory, do not add it.
*/
var SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion');
SharedRegion.setEntryMeta(0,
{ base: SHAREDMEM,
len: SHAREDMEMSIZE,
ownerProcId: 0,
isValid: true,
name: "DDR2 RAM",
});
/*
* @(#) ti.sdo.ipc.examples.multicore.evm667x; 1, 0, 0, 0,1; 5-22-2012 16:36:06; /db/vtree/library/trees/ipc/ipc-h32/src/ xlibrary
*/
Program.stack = 10208;
BIOS.heapSection = "HEAP_CACHE";
my project has two cmd files,one is used for RAM,the other is used for ROM.
the following cmd file is used for ROM,
/* * * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ * * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the * distribution. * * Neither the name of Texas Instruments Incorporated nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ /****************************************************************************** * Linker.cmd - COMMAND FILE FOR LINKING VIDEO INFRASTRUCTURE DEMO APP * ON C6678 /***************************************************************************** * All symbols in the command file are specified in their COFF format (which * has an extra _ compared to C). The following (forward looking) aliases * allow linking for EABI (which doesn't add the leading _ in C). The aliases * are defined for both EABI and COFF so the same command file can be used * for either. One of the pair simply doesn't get used. * * Symbols defined in the same context don't need aliases at all. This * means symbols defined in ASM can be used in ASM without aliases; likewise * symbols defined in C can be used in C without aliases. ****************************************************************************/ ggvmmbuf = _ggvmmbuf; _lcf_cppi_drv_start = __lcf_cppi_drv_start; _lcf_cppi_drv_end = __lcf_cppi_drv_end; _lcf_qmss_drv_start = __lcf_qmss_drv_start; _lcf_qmss_drv_end = __lcf_qmss_drv_end; /*_lcf_pktlib_local_start = __lcf_pktlib_local_start; */ /*_lcf_pktlib_local_end = __lcf_pktlib_local_end; */ /*_lcf_pktlib_global_start = __lcf_pktlib_global_start; */ /*_lcf_pktlib_global_end = __lcf_pktlib_global_end; */ /***************************************************************************** * END of EABI/COFF aliases *****************************************************************************/ /******************************END OF FILE INCLUSION*************************/ /* Default flags */ -c /* ROM autoinitialization module */ -a /* LINK USING C CONVENTIONS */ -x /* SPECIFY THE SYSTEM MEMORY MAP */ MEMORY { /************************************************************************** * C6678 MEMORY MAP * * Local L2: 0x0080_0000 * 0x0087_FFFF (512K) * * MSMC SRAM: 0x0C00_0000 * 0x0C3F_FFFF (4M) * * DDR: 0x8000_0000 * 0x9FFF_FFFF (512M) * * ***************************************************************************/ /************ Local L2: 0x00800000-0x0087FFFF *************/ PAGE 0: /*LL2 : origin = 0x800000, length = 0x6B000*/ /* Remeber this is defined in the provided custom C6678 platform */ /* DATA_SCRATCH : origin = 0x86B000, length = 0x00620 /* Remember to change ggmemmap.h */ /*MSG_FIFOS : origin = 0x86B620, length = 0x00010 /* Remember to change ggmemmap.h */ /*DATA_GMP0 : origin = 0x86B630, length = 0x00320 /* Remember to change ggmemmap.h */ /*DATA_HALHEAP : origin = 0x86B950, length = 0x011C0 /* Remember to change ggmemmap.h & ggswcfg.h; */ /*GMAC_NEU_BUFFERS : origin = 0x86CB10, length = 0x00500 /* Remember to change ggmemmap.h */ /*NEU_SCRATCH : origin = 0x86D010, length = 0x00800 /* Remember to change ggmemmap.h */ /*DATA_CH1 : origin = 0x86D810, length = 0x00CC0 /* Remember to change ggmemmap.h */ /*DATA_CH2 : origin = 0x86E4D0, length = 0x00CC0 /* Remember to change ggmemmap.h */ /*LL2_HOLE : origin = 0x86F190, length = 0x00E70 /*LL2_CACHE : origin = 0x870000, length = 0x10000 /* 64 kb cache */ /************ MSMC SRAM: 0xC000000-0xC3FFFFF *************/ PAGE 0: /*DIAG_APP : origin = 0xC000000, length = 0x000100*/ /*MSMC : origin = 0xC000000, length = 0x400000*/ /* Remeber this is defined in the provided custom C6678 platform */ PAGE 2: DIAG_APP_VCT : origin = 0xC000000, length = 0x000100 /* Alias of DIAG_APP to populate diagAppMem data */ /************ External DDR: 0x80000000-0x9FFFFFFF *************/ PAGE 0: /*DDR3 : origin = 0x80000000,length = 0x20000000*/ /* Remeber this is defined in the provided custom C6678 platform */ HEAP_CACHE : origin = 0xa0000000,length = 0x8000000 /*128M*/ SHARED_VPS_MEM(RWX) : origin = 0xa8000000,length = 0x400000 /*4M*/ SHARED_PPS_MEM(RWX) : origin = 0xa8400000,length = 0x800000 /*8M*/ SHARED_SPS_MEM(RWX) : origin = 0xa8c00000,length = 0x400000 /*4M*/ SHARED_SLICEHEADER_MEM(RWX) : origin = 0xa9000000,length = 0x400000 /*4M*/ SHARED_GB_MEM(RWX) : origin = 0xa9400000,length = 0x800000 /*8M*/ SHARED_PARSER_MEM(RWX) : origin = 0xa9c00000,length = 0x800000 /*8M*/ SHARED_DECODE_MEM(RWX) : origin = 0xaa400000,length = 0x800000 /*8M*/ SHARED_FILTER_MEM(RWX) : origin = 0xaac00000,length = 0x800000 /*8M*/ DDR2 : origin = 0xb0000000,length = 0x20000000 /*512M*/ DDR : origin = 0xd0000000,length = 0x20000000 /*512M*/ } /* SPECIFY THE SECTIONS ALLOCATION INTO MEMORY */ SECTIONS { /* Sections in Local L2 */ /* .gg_nonshared_bufs > LL2 PAGE 0 .testCodecIntMem > LL2 PAGE 0 .far_siuinst: fill = 0x00 > LL2 PAGE 0 .boot_config > LL2 PAGE 0 type = NOINIT fill = 0xABCDABCD */ .const_vmmcomp > MSMC { _ggvmmbuf = .; /* Not used unless compression is used -- placeholder */ } PAGE 0 .const > MSMC { *(.const) } PAGE 0 .switch > MSMC PAGE 0 .text >> MSMC PAGE 0 .cinit > MSMC { __core_cinit = .; } PAGE 0 .cppi > DDR3 START(__lcf_cppi_drv_start) END(__lcf_cppi_drv_end) PAGE 0 type = NOINIT .qmss > DDR3 START(__lcf_qmss_drv_start) END(__lcf_qmss_drv_end) PAGE 0 type = NOINIT /* Fill the GLOB_INIT with fixed random value. Should match to DSIU_NW_GLOB_INIT_STATE_MAGIC1 */ /* .dsiuNwGlobInit > DDR PAGE 0 fill = 0x167eb0e7 */ .sysmen > HEAP_CACHE PAGE 0 .shared_vps_mem > SHARED_VPS_MEM PAGE 0 .shared_pps_mem > SHARED_PPS_MEM PAGE 0 .shared_sps_mem > SHARED_SPS_MEM PAGE 0 .shared_sliceheader_mem > SHARED_SLICEHEADER_MEM PAGE 0 .shared_gb_mem > SHARED_GB_MEM PAGE 0 .shared_parser_mem > SHARED_PARSER_MEM PAGE 0 .shared_decode_mem > SHARED_DECODE_MEM PAGE 0 .shared_filter_mem > SHARED_FILTER_MEM PAGE 0 .data_input > DDR2 PAGE 0 .data_output > DDR PAGE 0 } /* nothing past this point */
this cmd file is used for RAM.
/* * Do not modify this file; it is automatically generated from the template * linkcmd.xdt in the ti.targets.elf package and will be overwritten. */ /* * put '"'s around paths because, without this, the linker * considers '-' as minus operator, not a file name character. */ -l"D:\workspace\IPC_test1\Debug\configPkg\package\cfg\message_multicore_pe66.oe66" -l"C:\ti\ipc_1_24_03_32\packages\ti\sdo\ipc\lib\instrumented_e66\ipc\ipc.lib" -l"C:\ti\bios_6_33_06_50\packages\ti\sysbios\lib\instrumented_e66\sysbios\sysbios.lib" -l"C:\ti\xdctools_3_23_04_60\packages\ti\targets\rts6000\lib\ti.targets.rts6000.ae66" -l"C:\ti\xdctools_3_23_04_60\packages\ti\targets\rts6000\lib\boot.ae66" --retain="*(xdc.meta)" --args 0x0 -heap 0x0 -stack 0x27e0 MEMORY { LL2 (RWX) : org = 0x800000, len = 0x80000 MSMC (RWX) : org = 0xc000000, len = 0x400000 DDR3 : org = 0x80000000, len = 0x20000000 } /* * Linker command file contributions from all loaded packages: */ /* Content from xdc.services.global (null): */ /* Content from xdc (null): */ /* Content from xdc.corevers (null): */ /* Content from xdc.shelf (null): */ /* Content from xdc.services.spec (null): */ /* Content from xdc.services.intern.xsr (null): */ /* Content from xdc.services.intern.gen (null): */ /* Content from xdc.services.intern.cmd (null): */ /* Content from xdc.bld (null): */ /* Content from ti.targets (null): */ /* Content from ti.targets.elf (null): */ /* Content from xdc.rov (null): */ /* Content from xdc.runtime (null): */ /* Content from ti.targets.rts6000 (null): */ /* Content from ti.sysbios.interfaces (null): */ /* Content from ti.sysbios.family (null): */ /* Content from xdc.runtime.knl (null): */ /* Content from ti.sdo.ipc.family (null): */ /* Content from ti.sdo.ipc.interfaces (null): */ /* Content from ti.sysbios (null): */ /* Content from ti.sysbios.hal (null): */ /* Content from ti.sysbios.knl (null): */ /* Content from ti.sysbios.gates (null): */ /* Content from ti.sdo.utils (null): */ /* Content from ti.sysbios.heaps (null): */ /* Content from ti.sysbios.syncs (null): */ /* Content from xdc.services.getset (null): */ /* Content from ti.sysbios.xdcruntime (null): */ /* Content from ti.sysbios.family.c66 (null): */ /* Content from ti.sysbios.family.c64p (null): */ /* Content from ti.sysbios.family.c62 (null): */ /* Content from ti.sysbios.timers.timer64 (null): */ /* Content from ti.sysbios.family.c64p.tci6488 (null): */ /* Content from ti.sysbios.utils (null): */ /* Content from ti.catalog.c6000 (null): */ /* Content from ti.catalog (null): */ /* Content from ti.catalog.peripherals.hdvicp2 (null): */ /* Content from xdc.platform (null): */ /* Content from xdc.cfg (null): */ /* Content from ti.sdo.ipc.examples.platforms.evm6678.core0 (null): */ /* Content from ti.sdo.ipc.heaps (null): */ /* Content from ti.sdo.ipc (ti/sdo/ipc/linkcmd.xdt): */ SECTIONS { ti.sdo.ipc.SharedRegion_0: { . += 0x200000;} run > 0xc000000, type = NOLOAD } /* Content from ti.sdo.ipc.family.c647x (null): */ /* Content from ti.sdo.ipc.notifyDrivers (null): */ /* Content from ti.sdo.ipc.transports (null): */ /* Content from ti.sdo.ipc.nsremote (null): */ /* Content from ti.sdo.ipc.gates (null): */ /* Content from configPkg (null): */ /* * symbolic aliases for static instance objects */ xdc_runtime_Startup__EXECFXN__C = 1; xdc_runtime_Startup__RESETFXN__C = 1; TSK_idle = ti_sysbios_knl_Task_Object__table__V + 68; SECTIONS { .ti.decompress: load > MSMC GROUP: load > LL2 { .bss: .neardata: .rodata: } .pinit: load >> LL2 .init_array: load > LL2 .const: load >> LL2 .data: load >> LL2 .far: load >> LL2 .fardata: load >> LL2 .stack: load > LL2 .args: load > LL2 align = 0x4, fill = 0 {_argsize = 0x0; } .cio: load >> LL2 .ti.handler_table: load > LL2 .vecs: load >> MSMC xdc.meta: load >> LL2, type = COPY }
hui zhu57 said:In c6678,SYS/BIOS ,in .cfg file , set a heap,name is HEAP_CACHE, when i build the project ,appear the following warning:
warning #10247-D: creating output section "HEAP_CACHE" without a SECTIONS
If this is a custom section you have set up in your .cfg file, then you can allocate it to a memory region in a custom linker command file, and add the linker .cmd file to the project. Please see this page for more information: http://rtsc.eclipse.org/docs-tip/Memory_Management#User_Defined_Linker_Command_Files