Hi
I am trying to create project with green hills multi ID form RM57 board. while doing so i did not have any issues once i am going through the default settings. In default setting it creates multiple LD files to map the memory and with Halcogen created project is containing .CMD file will gives us right memory mapping thing.
when i am going through the my own setting for project for the same RM57 board and using halcogen .CMD file for the memory mapping, i am creating .LD file and trying to compile the project but fails to do so. i am getting "[elxr] (error #173) section org0000001c starting at 0x1c didn't fit in configured memory". Please help me to understand what i doing wrong. Below are setting
/*----------------------------------------------------------------------------*/
/* sys_link.cmd */
/* */
/*
* Copyright (C) 2009-2016 Texas Instruments Incorporated - 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.
*
*/
/* */
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
MEMORY CONFIGURATIONS
------------------------------------------------------------------------------*/
MEMORY {
dram_rsvd1 : ORIGIN = 0x08000000, LENGTH = 0K
STACKS : ORIGIN = 0x08000000, LENGTH = 0x00001500
dram_memory : ORIGIN = 0x08001600, LENGTH = 0x0007EB00
dram_rsvd2 : ORIGIN = ., LENGTH = 0K
VECTOR : ORIGIN = 0x00200000, LENGTH = 0x40
flash_rsvd1 : ORIGIN = 0x00200040, LENGTH = 0K
flash_memory : ORIGIN = ., LENGTH = (0x000FFFC0)
flash_rsvd2 : ORIGIN = ., LENGTH = 0K
}
DEFAULTS {
heap_reserve = 1k
stack_reserve = 1k
}
/*----------------------------------------------------------------------------
Program layout for starting in ROM, copying data to RAM,
and continuing to execute out of ROM.
------------------------------------------------------------------------------*/
SECTIONS
{
/*----------------------------------------------------------------------------
ROM SECTIONS
------------------------------------------------------------------------------*/
.intvecs : > VECTOR
.text : > flash_memory
.syscall : > .
.intercall : > .
.interfunc : > .
.rodata : > .
.sdata2 : > .
.secinfo : > .
.fixaddr : > .
.fixtype : > .
.CROM.sdata CROM(.sdata) : > .
.CROM.data CROM(.data) : > .
/*----------------------------------------------------------------------------
RAM SECTIONS
------------------------------------------------------------------------------*/
.sdabase : > dram_memory
.sbss : > .
.sdata : > .
.data : > .
.bss : > .
.ghcovfz CLEAR : > .
.ghcovcz CLEAR : > .
.ghcovdz CLEAR : > .
.heap ALIGN(16) PAD( heap_reserve +
// Add space for call-graph profiling if used:
(isdefined(__ghs_indgcount)?(2000+(sizeof(.text)/2)):0) +
// Add estimated space for call-count profiling if used:
(isdefined(__ghs_indmcount)?10000:0) )
: > .
/*----------------------------------------------------------------------------
These special symbols mark the bounds of RAM and ROM memory.
They are used by the MULTI debugger.
------------------------------------------------------------------------------*/
__ghs_romstart = MEMADDR(flash_rsvd1);
__ghs_romend = MEMENDADDR(flash_rsvd2);
__ghs_ramstart = MEMADDR(dram_rsvd1);
__ghs_ramend = MEMENDADDR(dram_rsvd2);
/*----------------------------------------------------------------------------
These special symbols mark the bounds of RAM and ROM images of boot code.
They are used by the GHS startup code (_start and __ghs_ind_crt0).
------------------------------------------------------------------------------*/
__ghs_rombootcodestart = ADDR(.text);
__ghs_rombootcodeend = ENDADDR(.fixtype);
__ghs_rambootcodestart = 0;
__ghs_rambootcodeend = 0;
}
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
RAM SECTIONS
------------------------------------------------------------------------------*/
.sdabase : > dram_memory
.sbss : > .
.sdata : > .
.data : > .
.bss : > .
.ghcovfz CLEAR : > .
.ghcovcz CLEAR : > .
.ghcovdz CLEAR : > .
.heap ALIGN(16) PAD( heap_reserve +
// Add space for call-graph profiling if used:
(isdefined(__ghs_indgcount)?(2000+(sizeof(.text)/2)):0) +
// Add estimated space for call-count profiling if used:
(isdefined(__ghs_indmcount)?10000:0) )
: > .
/*----------------------------------------------------------------------------
These special symbols mark the bounds of RAM and ROM memory.
They are used by the MULTI debugger.
------------------------------------------------------------------------------*/
__ghs_romstart = MEMADDR(flash_rsvd1);
__ghs_romend = MEMENDADDR(flash_rsvd2);
__ghs_ramstart = MEMADDR(dram_rsvd1);
__ghs_ramend = MEMENDADDR(dram_rsvd2);
/*----------------------------------------------------------------------------
These special symbols mark the bounds of RAM and ROM images of boot code.
They are used by the GHS startup code (_start and __ghs_ind_crt0).
------------------------------------------------------------------------------*/
__ghs_rombootcodestart = ADDR(.text);
__ghs_rombootcodeend = ENDADDR(.fixtype);
__ghs_rambootcodestart = 0;
__ghs_rambootcodeend = 0;
}
/*----------------------------------------------------------------------------*/