<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>CodeWarrior Development ToolsのトピックRAM Overlap err，how to use  m_data (RW) ?</title>
    <link>https://community.nxp.com/t5/CodeWarrior-Development-Tools/RAM-Overlap-err-how-to-use-m-data-RW/m-p/1045479#M8247</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Real RAM size of my project&amp;nbsp; is&amp;nbsp; over 60k,so the errors happens as follows.&lt;/P&gt;&lt;P&gt;The MEMORY of S32K146&amp;nbsp; contains two blocks:&lt;SPAN&gt;SRAM_L and&amp;nbsp;SRAM_U, now&amp;nbsp;SRAM_U is used and&amp;nbsp; overload,but other block is not used.How can both of&amp;nbsp; RAMs&amp;nbsp; be used&amp;nbsp; at the&amp;nbsp; same time?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/108184i260A3B0125A2CAF0/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;MEMORY&lt;BR /&gt;{&lt;BR /&gt; /* Flash */&lt;BR /&gt; m_interrupts (RX) : ORIGIN = 0x00018000, LENGTH = 0x00000400&lt;BR /&gt; m_flash_config (RX) : ORIGIN = 0x00018400, LENGTH = 0x00000010&lt;BR /&gt; m_text (RX) : ORIGIN = 0x00018410, LENGTH = 0x000E7BF0&lt;/P&gt;&lt;P&gt;/* SRAM_L */&lt;BR /&gt; m_data (RW) : ORIGIN = 0x1FFF0000, LENGTH = 0x00010000&lt;/P&gt;&lt;P&gt;/* SRAM_U */&lt;BR /&gt; m_data_2 (RW) : ORIGIN = 0x20000000, LENGTH = 0x0000F000&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Attachment File Detail: S32K146_Flash.id&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/108190i9CE684677A1AABC4/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;/*&lt;BR /&gt;** ###################################################################&lt;BR /&gt;** Processor: S32K146 with 128 KB SRAM&lt;BR /&gt;** Compiler: GNU C Compiler&lt;BR /&gt;**&lt;BR /&gt;** Abstract:&lt;BR /&gt;** Linker file for the GNU C Compiler&lt;BR /&gt;**&lt;BR /&gt;** Copyright (c) 2015-2016 Freescale Semiconductor, Inc.&lt;BR /&gt;** Copyright 2017-2018 NXP&lt;BR /&gt;** All rights reserved.&lt;BR /&gt;**&lt;BR /&gt;** THIS SOFTWARE IS PROVIDED BY NXP "AS IS" AND ANY EXPRESSED OR&lt;BR /&gt;** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES&lt;BR /&gt;** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.&lt;BR /&gt;** IN NO EVENT SHALL NXP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,&lt;BR /&gt;** INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES&lt;BR /&gt;** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR&lt;BR /&gt;** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)&lt;BR /&gt;** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,&lt;BR /&gt;** STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING&lt;BR /&gt;** IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF&lt;BR /&gt;** THE POSSIBILITY OF SUCH DAMAGE.&lt;BR /&gt;**&lt;BR /&gt;** http: &lt;A href="https://community.nxp.com/www.nxp.com" target="test_blank"&gt;www.nxp.com&lt;/A&gt;&lt;BR /&gt;** mail: support@nxp.com&lt;BR /&gt;**&lt;BR /&gt;** ###################################################################&lt;BR /&gt;*/&lt;/P&gt;&lt;P&gt;/* Entry Point */&lt;BR /&gt;ENTRY(Reset_Handler)&lt;/P&gt;&lt;P&gt;HEAP_SIZE = DEFINED(__heap_size__) ? __heap_size__ : 0x00000400;&lt;BR /&gt;STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x00000800;&lt;/P&gt;&lt;P&gt;/* If symbol __flash_vector_table__=1 is defined at link time&lt;BR /&gt; * the interrupt vector will not be copied to RAM.&lt;BR /&gt; * Warning: Using the interrupt vector from Flash will not allow&lt;BR /&gt; * INT_SYS_InstallHandler because the section is Read Only.&lt;BR /&gt; */&lt;BR /&gt;M_VECTOR_RAM_SIZE = DEFINED(__flash_vector_table__) ? 0x0 : 0x0800;&lt;/P&gt;&lt;P&gt;/* Specify the memory areas */&lt;BR /&gt;MEMORY&lt;BR /&gt;{&lt;BR /&gt; /* Flash */&lt;BR /&gt; m_interrupts (RX) : ORIGIN = 0x00018000, LENGTH = 0x00000400&lt;BR /&gt; m_flash_config (RX) : ORIGIN = 0x00018400, LENGTH = 0x00000010&lt;BR /&gt; m_text (RX) : ORIGIN = 0x00018410, LENGTH = 0x000E7BF0&lt;/P&gt;&lt;P&gt;/* SRAM_L */&lt;BR /&gt; m_data (RW) : ORIGIN = 0x1FFF0000, LENGTH = 0x00010000&lt;/P&gt;&lt;P&gt;/* SRAM_U */&lt;BR /&gt; m_data_2 (RW) : ORIGIN = 0x20000000, LENGTH = 0x0000F000&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;/* Define output sections */&lt;BR /&gt;SECTIONS&lt;BR /&gt;{&lt;BR /&gt; /* The startup code goes first into internal flash */&lt;BR /&gt; .interrupts :&lt;BR /&gt; {&lt;BR /&gt; __VECTOR_TABLE = .;&lt;BR /&gt; __interrupts_start__ = .;&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; KEEP(*(.isr_vector)) /* Startup code */&lt;BR /&gt; __interrupts_end__ = .;&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; } &amp;gt; m_interrupts&lt;/P&gt;&lt;P&gt;.flash_config :&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; KEEP(*(.FlashConfig)) /* Flash Configuration Field (FCF) */&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; } &amp;gt; m_flash_config&lt;/P&gt;&lt;P&gt;/* The program code and other data goes into internal flash */&lt;BR /&gt; .text :&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; *(.text) /* .text sections (code) */&lt;BR /&gt; *(.text*) /* .text* sections (code) */&lt;BR /&gt; *(.rodata) /* .rodata sections (constants, strings, etc.) */&lt;BR /&gt; *(.rodata*) /* .rodata* sections (constants, strings, etc.) */&lt;BR /&gt; *(.init) /* section used in crti.o files */&lt;BR /&gt; *(.fini) /* section used in crti.o files */&lt;BR /&gt; *(.eh_frame) /* section used in crtbegin.o files */&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; } &amp;gt; m_text&lt;/P&gt;&lt;P&gt;/* Section used by the libgcc.a library for fvp4 */&lt;BR /&gt; .ARM :&lt;BR /&gt; {&lt;BR /&gt; __exidx_start = .;&lt;BR /&gt; *(.ARM.exidx*)&lt;BR /&gt; __exidx_end = .;&lt;BR /&gt; } &amp;gt; m_text&lt;/P&gt;&lt;P&gt;__etext = .; /* Define a global symbol at end of code. */&lt;BR /&gt; __DATA_ROM = .; /* Symbol is used by startup for data initialization. */&lt;/P&gt;&lt;P&gt;.interrupts_ram :&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; __VECTOR_RAM__ = .;&lt;BR /&gt; __RAM_START = .;&lt;BR /&gt; __interrupts_ram_start__ = .; /* Create a global symbol at data start. */&lt;BR /&gt; *(.m_interrupts_ram) /* This is a user defined section. */&lt;BR /&gt; . += M_VECTOR_RAM_SIZE;&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; __interrupts_ram_end__ = .; /* Define a global symbol at data end. */&lt;BR /&gt; } &amp;gt; m_data&lt;/P&gt;&lt;P&gt;__VECTOR_RAM = DEFINED(__flash_vector_table__) ? ORIGIN(m_interrupts) : __VECTOR_RAM__ ;&lt;BR /&gt; __RAM_VECTOR_TABLE_SIZE = DEFINED(__flash_vector_table__) ? 0x0 : (__interrupts_ram_end__ - __interrupts_ram_start__) ;&lt;/P&gt;&lt;P&gt;.data : AT(__DATA_ROM)&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; __DATA_RAM = .;&lt;BR /&gt; __data_start__ = .; /* Create a global symbol at data start. */&lt;BR /&gt; *(.data) /* .data sections */&lt;BR /&gt; *(.data*) /* .data* sections */&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; __data_end__ = .; /* Define a global symbol at data end. */&lt;BR /&gt; } &amp;gt; m_data&lt;/P&gt;&lt;P&gt;__DATA_END = __DATA_ROM + (__data_end__ - __data_start__);&lt;BR /&gt; __CODE_ROM = __DATA_END; /* Symbol is used by code initialization. */&lt;/P&gt;&lt;P&gt;.code : AT(__CODE_ROM)&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; __CODE_RAM = .;&lt;BR /&gt; __code_start__ = .; /* Create a global symbol at code start. */&lt;BR /&gt; __code_ram_start__ = .;&lt;BR /&gt; *(.code_ram) /* Custom section for storing code in RAM */&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; __code_end__ = .; /* Define a global symbol at code end. */&lt;BR /&gt; __code_ram_end__ = .;&lt;BR /&gt; } &amp;gt; m_data&lt;/P&gt;&lt;P&gt;__CODE_END = __CODE_ROM + (__code_end__ - __code_start__);&lt;BR /&gt; __CUSTOM_ROM = __CODE_END;&lt;/P&gt;&lt;P&gt;/* Custom Section Block that can be used to place data at absolute address. */&lt;BR /&gt; /* Use __attribute__((section (".customSection"))) to place data here. */&lt;BR /&gt; .customSectionBlock ORIGIN(m_data_2) : AT(__CUSTOM_ROM)&lt;BR /&gt; {&lt;BR /&gt; __customSection_start__ = .;&lt;BR /&gt; KEEP(*(.customSection)) /* Keep section even if not referenced. */&lt;BR /&gt; __customSection_end__ = .;&lt;BR /&gt; } &amp;gt; m_data_2&lt;BR /&gt; __CUSTOM_END = __CUSTOM_ROM + (__customSection_end__ - __customSection_start__);&lt;/P&gt;&lt;P&gt;/* Uninitialized data section. */&lt;BR /&gt; .bss :&lt;BR /&gt; {&lt;BR /&gt; /* This is used by the startup in order to initialize the .bss section. */&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; __BSS_START = .;&lt;BR /&gt; __bss_start__ = .;&lt;BR /&gt; *(.bss)&lt;BR /&gt; *(.bss*)&lt;BR /&gt; *(COMMON)&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; __bss_end__ = .;&lt;BR /&gt; __BSS_END = .;&lt;BR /&gt; } &amp;gt; m_data_2&lt;/P&gt;&lt;P&gt;/* Put heap section after the program data */&lt;BR /&gt; .heap :&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(8);&lt;BR /&gt; __end__ = .;&lt;BR /&gt; __heap_start__ = .;&lt;BR /&gt; PROVIDE(end = .);&lt;BR /&gt; PROVIDE(_end = .);&lt;BR /&gt; PROVIDE(__end = .);&lt;BR /&gt; __HeapBase = .;&lt;BR /&gt; . += HEAP_SIZE;&lt;BR /&gt; __HeapLimit = .;&lt;BR /&gt; __heap_limit = .;&lt;BR /&gt; __heap_end__ = .;&lt;BR /&gt; } &amp;gt; m_data_2&lt;/P&gt;&lt;P&gt;/* Initializes stack on the end of block */&lt;BR /&gt; __StackTop = ORIGIN(m_data_2) + LENGTH(m_data_2);&lt;BR /&gt; __StackLimit = __StackTop - STACK_SIZE;&lt;BR /&gt; PROVIDE(__stack = __StackTop);&lt;BR /&gt; __RAM_END = __StackTop;&lt;/P&gt;&lt;P&gt;.stack __StackLimit :&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(8);&lt;BR /&gt; __stack_start__ = .;&lt;BR /&gt; . += STACK_SIZE;&lt;BR /&gt; __stack_end__ = .;&lt;BR /&gt; } &amp;gt; m_data_2&lt;/P&gt;&lt;P&gt;.ARM.attributes 0 : { *(.ARM.attributes) }&lt;/P&gt;&lt;P&gt;ASSERT(__StackLimit &amp;gt;= __HeapLimit, "region m_data_2 overflowed with stack and heap")&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 17 Apr 2020 07:32:10 GMT</pubDate>
    <dc:creator>609510318</dc:creator>
    <dc:date>2020-04-17T07:32:10Z</dc:date>
    <item>
      <title>RAM Overlap err，how to use  m_data (RW) ?</title>
      <link>https://community.nxp.com/t5/CodeWarrior-Development-Tools/RAM-Overlap-err-how-to-use-m-data-RW/m-p/1045479#M8247</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Real RAM size of my project&amp;nbsp; is&amp;nbsp; over 60k,so the errors happens as follows.&lt;/P&gt;&lt;P&gt;The MEMORY of S32K146&amp;nbsp; contains two blocks:&lt;SPAN&gt;SRAM_L and&amp;nbsp;SRAM_U, now&amp;nbsp;SRAM_U is used and&amp;nbsp; overload,but other block is not used.How can both of&amp;nbsp; RAMs&amp;nbsp; be used&amp;nbsp; at the&amp;nbsp; same time?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/108184i260A3B0125A2CAF0/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;MEMORY&lt;BR /&gt;{&lt;BR /&gt; /* Flash */&lt;BR /&gt; m_interrupts (RX) : ORIGIN = 0x00018000, LENGTH = 0x00000400&lt;BR /&gt; m_flash_config (RX) : ORIGIN = 0x00018400, LENGTH = 0x00000010&lt;BR /&gt; m_text (RX) : ORIGIN = 0x00018410, LENGTH = 0x000E7BF0&lt;/P&gt;&lt;P&gt;/* SRAM_L */&lt;BR /&gt; m_data (RW) : ORIGIN = 0x1FFF0000, LENGTH = 0x00010000&lt;/P&gt;&lt;P&gt;/* SRAM_U */&lt;BR /&gt; m_data_2 (RW) : ORIGIN = 0x20000000, LENGTH = 0x0000F000&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Attachment File Detail: S32K146_Flash.id&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/108190i9CE684677A1AABC4/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;/*&lt;BR /&gt;** ###################################################################&lt;BR /&gt;** Processor: S32K146 with 128 KB SRAM&lt;BR /&gt;** Compiler: GNU C Compiler&lt;BR /&gt;**&lt;BR /&gt;** Abstract:&lt;BR /&gt;** Linker file for the GNU C Compiler&lt;BR /&gt;**&lt;BR /&gt;** Copyright (c) 2015-2016 Freescale Semiconductor, Inc.&lt;BR /&gt;** Copyright 2017-2018 NXP&lt;BR /&gt;** All rights reserved.&lt;BR /&gt;**&lt;BR /&gt;** THIS SOFTWARE IS PROVIDED BY NXP "AS IS" AND ANY EXPRESSED OR&lt;BR /&gt;** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES&lt;BR /&gt;** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.&lt;BR /&gt;** IN NO EVENT SHALL NXP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,&lt;BR /&gt;** INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES&lt;BR /&gt;** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR&lt;BR /&gt;** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)&lt;BR /&gt;** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,&lt;BR /&gt;** STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING&lt;BR /&gt;** IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF&lt;BR /&gt;** THE POSSIBILITY OF SUCH DAMAGE.&lt;BR /&gt;**&lt;BR /&gt;** http: &lt;A href="https://community.nxp.com/www.nxp.com" target="test_blank"&gt;www.nxp.com&lt;/A&gt;&lt;BR /&gt;** mail: support@nxp.com&lt;BR /&gt;**&lt;BR /&gt;** ###################################################################&lt;BR /&gt;*/&lt;/P&gt;&lt;P&gt;/* Entry Point */&lt;BR /&gt;ENTRY(Reset_Handler)&lt;/P&gt;&lt;P&gt;HEAP_SIZE = DEFINED(__heap_size__) ? __heap_size__ : 0x00000400;&lt;BR /&gt;STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x00000800;&lt;/P&gt;&lt;P&gt;/* If symbol __flash_vector_table__=1 is defined at link time&lt;BR /&gt; * the interrupt vector will not be copied to RAM.&lt;BR /&gt; * Warning: Using the interrupt vector from Flash will not allow&lt;BR /&gt; * INT_SYS_InstallHandler because the section is Read Only.&lt;BR /&gt; */&lt;BR /&gt;M_VECTOR_RAM_SIZE = DEFINED(__flash_vector_table__) ? 0x0 : 0x0800;&lt;/P&gt;&lt;P&gt;/* Specify the memory areas */&lt;BR /&gt;MEMORY&lt;BR /&gt;{&lt;BR /&gt; /* Flash */&lt;BR /&gt; m_interrupts (RX) : ORIGIN = 0x00018000, LENGTH = 0x00000400&lt;BR /&gt; m_flash_config (RX) : ORIGIN = 0x00018400, LENGTH = 0x00000010&lt;BR /&gt; m_text (RX) : ORIGIN = 0x00018410, LENGTH = 0x000E7BF0&lt;/P&gt;&lt;P&gt;/* SRAM_L */&lt;BR /&gt; m_data (RW) : ORIGIN = 0x1FFF0000, LENGTH = 0x00010000&lt;/P&gt;&lt;P&gt;/* SRAM_U */&lt;BR /&gt; m_data_2 (RW) : ORIGIN = 0x20000000, LENGTH = 0x0000F000&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;/* Define output sections */&lt;BR /&gt;SECTIONS&lt;BR /&gt;{&lt;BR /&gt; /* The startup code goes first into internal flash */&lt;BR /&gt; .interrupts :&lt;BR /&gt; {&lt;BR /&gt; __VECTOR_TABLE = .;&lt;BR /&gt; __interrupts_start__ = .;&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; KEEP(*(.isr_vector)) /* Startup code */&lt;BR /&gt; __interrupts_end__ = .;&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; } &amp;gt; m_interrupts&lt;/P&gt;&lt;P&gt;.flash_config :&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; KEEP(*(.FlashConfig)) /* Flash Configuration Field (FCF) */&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; } &amp;gt; m_flash_config&lt;/P&gt;&lt;P&gt;/* The program code and other data goes into internal flash */&lt;BR /&gt; .text :&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; *(.text) /* .text sections (code) */&lt;BR /&gt; *(.text*) /* .text* sections (code) */&lt;BR /&gt; *(.rodata) /* .rodata sections (constants, strings, etc.) */&lt;BR /&gt; *(.rodata*) /* .rodata* sections (constants, strings, etc.) */&lt;BR /&gt; *(.init) /* section used in crti.o files */&lt;BR /&gt; *(.fini) /* section used in crti.o files */&lt;BR /&gt; *(.eh_frame) /* section used in crtbegin.o files */&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; } &amp;gt; m_text&lt;/P&gt;&lt;P&gt;/* Section used by the libgcc.a library for fvp4 */&lt;BR /&gt; .ARM :&lt;BR /&gt; {&lt;BR /&gt; __exidx_start = .;&lt;BR /&gt; *(.ARM.exidx*)&lt;BR /&gt; __exidx_end = .;&lt;BR /&gt; } &amp;gt; m_text&lt;/P&gt;&lt;P&gt;__etext = .; /* Define a global symbol at end of code. */&lt;BR /&gt; __DATA_ROM = .; /* Symbol is used by startup for data initialization. */&lt;/P&gt;&lt;P&gt;.interrupts_ram :&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; __VECTOR_RAM__ = .;&lt;BR /&gt; __RAM_START = .;&lt;BR /&gt; __interrupts_ram_start__ = .; /* Create a global symbol at data start. */&lt;BR /&gt; *(.m_interrupts_ram) /* This is a user defined section. */&lt;BR /&gt; . += M_VECTOR_RAM_SIZE;&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; __interrupts_ram_end__ = .; /* Define a global symbol at data end. */&lt;BR /&gt; } &amp;gt; m_data&lt;/P&gt;&lt;P&gt;__VECTOR_RAM = DEFINED(__flash_vector_table__) ? ORIGIN(m_interrupts) : __VECTOR_RAM__ ;&lt;BR /&gt; __RAM_VECTOR_TABLE_SIZE = DEFINED(__flash_vector_table__) ? 0x0 : (__interrupts_ram_end__ - __interrupts_ram_start__) ;&lt;/P&gt;&lt;P&gt;.data : AT(__DATA_ROM)&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; __DATA_RAM = .;&lt;BR /&gt; __data_start__ = .; /* Create a global symbol at data start. */&lt;BR /&gt; *(.data) /* .data sections */&lt;BR /&gt; *(.data*) /* .data* sections */&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; __data_end__ = .; /* Define a global symbol at data end. */&lt;BR /&gt; } &amp;gt; m_data&lt;/P&gt;&lt;P&gt;__DATA_END = __DATA_ROM + (__data_end__ - __data_start__);&lt;BR /&gt; __CODE_ROM = __DATA_END; /* Symbol is used by code initialization. */&lt;/P&gt;&lt;P&gt;.code : AT(__CODE_ROM)&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; __CODE_RAM = .;&lt;BR /&gt; __code_start__ = .; /* Create a global symbol at code start. */&lt;BR /&gt; __code_ram_start__ = .;&lt;BR /&gt; *(.code_ram) /* Custom section for storing code in RAM */&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; __code_end__ = .; /* Define a global symbol at code end. */&lt;BR /&gt; __code_ram_end__ = .;&lt;BR /&gt; } &amp;gt; m_data&lt;/P&gt;&lt;P&gt;__CODE_END = __CODE_ROM + (__code_end__ - __code_start__);&lt;BR /&gt; __CUSTOM_ROM = __CODE_END;&lt;/P&gt;&lt;P&gt;/* Custom Section Block that can be used to place data at absolute address. */&lt;BR /&gt; /* Use __attribute__((section (".customSection"))) to place data here. */&lt;BR /&gt; .customSectionBlock ORIGIN(m_data_2) : AT(__CUSTOM_ROM)&lt;BR /&gt; {&lt;BR /&gt; __customSection_start__ = .;&lt;BR /&gt; KEEP(*(.customSection)) /* Keep section even if not referenced. */&lt;BR /&gt; __customSection_end__ = .;&lt;BR /&gt; } &amp;gt; m_data_2&lt;BR /&gt; __CUSTOM_END = __CUSTOM_ROM + (__customSection_end__ - __customSection_start__);&lt;/P&gt;&lt;P&gt;/* Uninitialized data section. */&lt;BR /&gt; .bss :&lt;BR /&gt; {&lt;BR /&gt; /* This is used by the startup in order to initialize the .bss section. */&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; __BSS_START = .;&lt;BR /&gt; __bss_start__ = .;&lt;BR /&gt; *(.bss)&lt;BR /&gt; *(.bss*)&lt;BR /&gt; *(COMMON)&lt;BR /&gt; . = ALIGN(4);&lt;BR /&gt; __bss_end__ = .;&lt;BR /&gt; __BSS_END = .;&lt;BR /&gt; } &amp;gt; m_data_2&lt;/P&gt;&lt;P&gt;/* Put heap section after the program data */&lt;BR /&gt; .heap :&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(8);&lt;BR /&gt; __end__ = .;&lt;BR /&gt; __heap_start__ = .;&lt;BR /&gt; PROVIDE(end = .);&lt;BR /&gt; PROVIDE(_end = .);&lt;BR /&gt; PROVIDE(__end = .);&lt;BR /&gt; __HeapBase = .;&lt;BR /&gt; . += HEAP_SIZE;&lt;BR /&gt; __HeapLimit = .;&lt;BR /&gt; __heap_limit = .;&lt;BR /&gt; __heap_end__ = .;&lt;BR /&gt; } &amp;gt; m_data_2&lt;/P&gt;&lt;P&gt;/* Initializes stack on the end of block */&lt;BR /&gt; __StackTop = ORIGIN(m_data_2) + LENGTH(m_data_2);&lt;BR /&gt; __StackLimit = __StackTop - STACK_SIZE;&lt;BR /&gt; PROVIDE(__stack = __StackTop);&lt;BR /&gt; __RAM_END = __StackTop;&lt;/P&gt;&lt;P&gt;.stack __StackLimit :&lt;BR /&gt; {&lt;BR /&gt; . = ALIGN(8);&lt;BR /&gt; __stack_start__ = .;&lt;BR /&gt; . += STACK_SIZE;&lt;BR /&gt; __stack_end__ = .;&lt;BR /&gt; } &amp;gt; m_data_2&lt;/P&gt;&lt;P&gt;.ARM.attributes 0 : { *(.ARM.attributes) }&lt;/P&gt;&lt;P&gt;ASSERT(__StackLimit &amp;gt;= __HeapLimit, "region m_data_2 overflowed with stack and heap")&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Apr 2020 07:32:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-Development-Tools/RAM-Overlap-err-how-to-use-m-data-RW/m-p/1045479#M8247</guid>
      <dc:creator>609510318</dc:creator>
      <dc:date>2020-04-17T07:32:10Z</dc:date>
    </item>
    <item>
      <title>Re: RAM Overlap err，how to use  m_data (RW) ?</title>
      <link>https://community.nxp.com/t5/CodeWarrior-Development-Tools/RAM-Overlap-err-how-to-use-m-data-RW/m-p/1045480#M8248</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What you could do is to modify the origin of the stack to m_data to place this in the SRAM_L.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;/* Initializes stack on the end of block */&lt;/SPAN&gt;
  __StackTop   &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;ORIGIN&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;m_data_2&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;LENGTH&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;m_data_2&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
  __StackLimit &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; __StackTop &lt;SPAN class="operator token"&gt;-&lt;/SPAN&gt; STACK_SIZE&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
  &lt;SPAN class="token function"&gt;PROVIDE&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;__stack &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; __StackTop&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
  __RAM_END &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; __StackTop&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Let me know if this helps you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Alexis Andalon&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Apr 2020 19:06:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-Development-Tools/RAM-Overlap-err-how-to-use-m-data-RW/m-p/1045480#M8248</guid>
      <dc:creator>Alexis_A</dc:creator>
      <dc:date>2020-04-22T19:06:15Z</dc:date>
    </item>
    <item>
      <title>Re: RAM Overlap err，how to use  m_data (RW) ?</title>
      <link>https://community.nxp.com/t5/CodeWarrior-Development-Tools/RAM-Overlap-err-how-to-use-m-data-RW/m-p/1045481#M8249</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It is useful&amp;nbsp; to use next method:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;__attribute__ ((section(".data")))&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Apr 2020 21:48:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-Development-Tools/RAM-Overlap-err-how-to-use-m-data-RW/m-p/1045481#M8249</guid>
      <dc:creator>609510318</dc:creator>
      <dc:date>2020-04-23T21:48:00Z</dc:date>
    </item>
  </channel>
</rss>

