<?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>S32 Design StudioのトピックRe: custom section in the linker file</title>
    <link>https://community.nxp.com/t5/S32-Design-Studio/custom-section-in-the-linker-file/m-p/1777877#M11601</link>
    <description>&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;thank you reply;&lt;/P&gt;&lt;P&gt;now ,i can place the struct in the 0x40000000;&lt;/P&gt;&lt;P&gt;but ,if i write the struct ,the cpu0 will stop.&lt;/P&gt;&lt;P&gt;SRAM_BASE_ADDR = DEFINED(__sram_base_addr__) ? __sram_base_addr__ : 0x40001000;&lt;BR /&gt;SRAM_SIZE = DEFINED(__sram_size__) ? __sram_size__ : 252K;&lt;/P&gt;&lt;P&gt;before change the linker file ,the&amp;nbsp;SRAM_SIZE is 256K,&lt;/P&gt;&lt;P&gt;after add a new section ,i change the&amp;nbsp;SRAM_SIZE to 252K,because i hope the cpu0 do not&amp;nbsp;&lt;/P&gt;&lt;P&gt;Initialise my SRAM(0x40000000~0x40001000).&lt;/P&gt;&lt;P&gt;it seem if the SRAM(0x40000000~0x40001000) have not&amp;nbsp;Initialise ,then the cpu0 will&amp;nbsp;&lt;/P&gt;&lt;P&gt;disable write these &lt;SPAN&gt;address&amp;nbsp;&lt;/SPAN&gt;(0x40000000~0x40001000)&lt;/P&gt;&lt;P&gt;oceansea&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 20 Dec 2023 10:02:19 GMT</pubDate>
    <dc:creator>oceansea</dc:creator>
    <dc:date>2023-12-20T10:02:19Z</dc:date>
    <item>
      <title>custom section in the linker file</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/custom-section-in-the-linker-file/m-p/1773865#M11536</link>
      <description>&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;now i use S32DS for Power 2.1 IDE ,creat a MPC5748G project .&lt;/P&gt;&lt;P&gt;due to want place some data in a absolute addr ,so i modify the linker file&lt;/P&gt;&lt;P&gt;i add a new section :&lt;/P&gt;&lt;DIV&gt;/* Define bootFunc SRAM */&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;BOOTFUNCSRAM_BASE_ADDR = DEFINED(__bootfuncsram_base_addr__) ? __bootfuncsram_base_addr__ : 0x40000000;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;BOOTFUNCSRAM_SIZE = DEFINED(__bootfuncsram_size__) ? __bootfuncsram_size__ : 4K;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;m_bootFunc_data : org = BOOTFUNCSRAM_BASE_ADDR,len = BOOTFUNCSRAM_SIZE&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;.BootFuncBlock (NOLOAD): &lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;{&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;KEEP(*(.BOOTFUNCDATA)) &lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#FF0000"&gt;} &amp;gt; m_bootFunc_data&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;but ,when i use this section in .c file&amp;nbsp; &amp;nbsp;defined&amp;nbsp; a&amp;nbsp; struct&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;BootDriverFunction&amp;nbsp; &amp;nbsp; &amp;nbsp;g_BootDriverFunction __attribute__((section (".BOOTFUNCDATA"))) ;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;and compile the project ,it show some err:&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;the target (g_BootDriverFunction) of a R_PPC_VLE_SDA21 relocation is in the wrong output section (.BootFuncBlock)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;can you help me?&lt;/P&gt;&lt;P&gt;thankyou!&lt;/P&gt;&lt;P&gt;oceansea&lt;/P&gt;&lt;DIV&gt;/*&lt;/DIV&gt;&lt;DIV&gt;** ###################################################################&lt;/DIV&gt;&lt;DIV&gt;**&amp;nbsp; &amp;nbsp; &amp;nbsp;Processor:&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPC5748G with 256 KB SRAM&lt;/DIV&gt;&lt;DIV&gt;**&amp;nbsp; &amp;nbsp; &amp;nbsp;Compiler:&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GNU C Compiler&lt;/DIV&gt;&lt;DIV&gt;**&lt;/DIV&gt;&lt;DIV&gt;**&amp;nbsp; &amp;nbsp; &amp;nbsp;Abstract:&lt;/DIV&gt;&lt;DIV&gt;**&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Linker file for the GNU C Compiler&lt;/DIV&gt;&lt;DIV&gt;**&lt;/DIV&gt;&lt;DIV&gt;**&amp;nbsp; &amp;nbsp; &amp;nbsp;Copyright 2017-2019 NXP&lt;/DIV&gt;&lt;DIV&gt;**&amp;nbsp; &amp;nbsp; &amp;nbsp;All rights reserved.&lt;/DIV&gt;&lt;DIV&gt;**&lt;/DIV&gt;&lt;DIV&gt;**&amp;nbsp; &amp;nbsp; &amp;nbsp;THIS SOFTWARE IS PROVIDED BY NXP "AS IS" AND ANY EXPRESSED OR&lt;/DIV&gt;&lt;DIV&gt;**&amp;nbsp; &amp;nbsp; &amp;nbsp;IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES&lt;/DIV&gt;&lt;DIV&gt;**&amp;nbsp; &amp;nbsp; &amp;nbsp;OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.&lt;/DIV&gt;&lt;DIV&gt;**&amp;nbsp; &amp;nbsp; &amp;nbsp;IN NO EVENT SHALL NXP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,&lt;/DIV&gt;&lt;DIV&gt;**&amp;nbsp; &amp;nbsp; &amp;nbsp;INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES&lt;/DIV&gt;&lt;DIV&gt;**&amp;nbsp; &amp;nbsp; &amp;nbsp;(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR&lt;/DIV&gt;&lt;DIV&gt;**&amp;nbsp; &amp;nbsp; &amp;nbsp;SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)&lt;/DIV&gt;&lt;DIV&gt;**&amp;nbsp; &amp;nbsp; &amp;nbsp;HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,&lt;/DIV&gt;&lt;DIV&gt;**&amp;nbsp; &amp;nbsp; &amp;nbsp;STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING&lt;/DIV&gt;&lt;DIV&gt;**&amp;nbsp; &amp;nbsp; &amp;nbsp;IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF&lt;/DIV&gt;&lt;DIV&gt;**&amp;nbsp; &amp;nbsp; &amp;nbsp;THE POSSIBILITY OF SUCH DAMAGE.&lt;/DIV&gt;&lt;DIV&gt;**&lt;/DIV&gt;&lt;DIV&gt;**&amp;nbsp; &amp;nbsp; &amp;nbsp;http:&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;A href="http://www.nxp.com" target="_blank"&gt;www.nxp.com&lt;/A&gt;&lt;/DIV&gt;&lt;DIV&gt;**&lt;/DIV&gt;&lt;DIV&gt;** ###################################################################&lt;/DIV&gt;&lt;DIV&gt;*/&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* Entry Point */&lt;/DIV&gt;&lt;DIV&gt;ENTRY(_start)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* define heap and stack size */&lt;/DIV&gt;&lt;DIV&gt;__HEAP_SIZE = DEFINED(__heap_size__) ? __heap_size__ : 0x00000000;&lt;/DIV&gt;&lt;DIV&gt;__STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x00001000;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* Define FLASH */&lt;/DIV&gt;&lt;DIV&gt;FLASH_BASE_ADDR = DEFINED(__flash_base_addr__) ? __flash_base_addr__ : 0x01000000;&lt;/DIV&gt;&lt;DIV&gt;FLASH_SIZE =&amp;nbsp; DEFINED(__flash_size__) ? __flash_size__ : 1856K;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* Define SRAM */&lt;/DIV&gt;&lt;DIV&gt;SRAM_BASE_ADDR = DEFINED(__sram_base_addr__) ? __sram_base_addr__ : 0x40001000;&lt;/DIV&gt;&lt;DIV&gt;SRAM_SIZE = DEFINED(__sram_size__) ? __sram_size__ : 252K;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* Define bootFunc SRAM */&lt;/DIV&gt;&lt;DIV&gt;BOOTFUNCSRAM_BASE_ADDR = DEFINED(__bootfuncsram_base_addr__) ? __bootfuncsram_base_addr__ : 0x40000000;&lt;/DIV&gt;&lt;DIV&gt;BOOTFUNCSRAM_SIZE = DEFINED(__bootfuncsram_size__) ? __bootfuncsram_size__ : 4K;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* Define RAppID boot data address */&lt;/DIV&gt;&lt;DIV&gt;RAPPID_BOOT_APP_DELAY_ADDR = 0x00FA0008;&lt;/DIV&gt;&lt;DIV&gt;RAPPID_BOOT_APP_KEY_ADDR&amp;nbsp; &amp;nbsp;= 0x00FA000C;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;MEMORY&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; flash_rchw : org = 0x00FA0000, len = 0x4&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; cpu0_reset_vec : org = 0x00FA0000+0x10, len = 0x4&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; cpu1_reset_vec : org = 0x00FA0000+0x14, len = 0x4&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; cpu2_reset_vec : org = 0x00FA0000+0x04, len = 0x4&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; rappid_boot_data : org = 0x00FA0000+0x08, len = 0x8&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; m_text : org = FLASH_BASE_ADDR, len = FLASH_SIZE&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; m_data : org = SRAM_BASE_ADDR, len = SRAM_SIZE&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;m_bootFunc_data : org = BOOTFUNCSRAM_BASE_ADDR,len = BOOTFUNCSRAM_SIZE&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;SECTIONS&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .rchw :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; KEEP(*(.rchw))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; flash_rchw&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .cpu0_reset_vector :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; KEEP(*(.cpu0_reset_vector))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; cpu0_reset_vec&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .cpu1_reset_vector :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; KEEP(*(.cpu1_reset_vector))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; cpu1_reset_vec&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .cpu2_reset_vector :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; KEEP(*(.cpu2_reset_vector))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; cpu2_reset_vec&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* RAppID App Delay */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .RAppID_AppDelay RAPPID_BOOT_APP_DELAY_ADDR :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; KEEP(*(.RAppID_AppDelay))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; rappid_boot_data&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* RAppID App Key Address */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .RAppID_AppKeyAddr RAPPID_BOOT_APP_KEY_ADDR :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; KEEP(*(.RAppID_AppKeyAddr))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; rappid_boot_data&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* Note: if you move the 'startup' section shall modify the RCHW2_2 value for the corresponding core in the flashrchw.c file. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .startup : ALIGN(0x400)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __start = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *(.startup)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_text&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .core_exceptions_table : ALIGN(4096)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __IVPR_VALUE = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *(.core_exceptions_table)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_text&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .intc_vector_table : ALIGN(4096)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __VECTOR_TABLE = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __interrupts_start__ = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; KEEP(*(.intc_vector_table)) /* Startup code */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __interrupts_end__ = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_text&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; __RAM_VECTOR_TABLE_SIZE = 0xC00;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; __VECTOR_TABLE_COPY_END = __VECTOR_TABLE + __RAM_VECTOR_TABLE_SIZE;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .text :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *(.text.startup)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *(.text)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *(.text.*)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; KEEP(*(.init))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; KEEP(*(.fini))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(16);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_text&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .sdata2 :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __sdata2_start__ = .; /* Create a global symbol at sdata2 start. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *(.sdata2)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *(.sdata2.*)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __sdata2_end__ = .; /* Define a global symbol at sdata2 end. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_text&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .got2 :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *(.got2*)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_text&lt;/DIV&gt;&lt;DIV&gt;/* migration to version v1.2&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;define section PREINIT_ARRAY */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;.preinit_array :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; PROVIDE_HIDDEN (__preinit_array_start = .);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; KEEP (*(.preinit_array))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; PROVIDE_HIDDEN (__preinit_array_end = .);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; } &amp;gt; m_text&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* end section PREINIT_ARRAY */&lt;/DIV&gt;&lt;DIV&gt;/*&amp;nbsp; migration to version v1.2&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; define section INIT_ARRAY*/&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; .init_array :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; PROVIDE_HIDDEN (__init_array_start = .);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; KEEP (*(SORT(.init_array.*)))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; KEEP (*(.init_array ))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; PROVIDE_HIDDEN (__init_array_end = .);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; } &amp;gt; m_text&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* end section INIT_ARRAY */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* migration to version v1.2&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;define section DTORS */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; .dtors :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; KEEP (*crtbegin.o(.dtors))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; KEEP (*crtbegin?.o(.dtors))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; KEEP (*(SORT(.dtors.*)))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; KEEP (*(.dtors))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; } &amp;gt; m_text&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* end section DTORS */&lt;/DIV&gt;&lt;DIV&gt;/* migration to version v1.2&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;define section CTORS */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; .ctors :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* gcc uses crtbegin.o to find the start of&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;the constructors, so we make sure it is&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;first.&amp;nbsp; Because this is a wildcard, it&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;doesn't matter if the user does not&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;actually link against crtbegin.o; the&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;linker won't look for a file to match a&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;wildcard.&amp;nbsp; The wildcard also means that it&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;doesn't matter which directory crtbegin.o&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;is in.&amp;nbsp; */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; KEEP (*crtbegin.o(.ctors))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; KEEP (*crtbegin?.o(.ctors))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* We don't want to include the .ctor section from&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;the crtend.o file until after the sorted ctors.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;The .ctor section from the crtend file contains the&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;end of ctors marker and it must be last */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; KEEP (*(SORT(.ctors.*)))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; KEEP (*(.ctors))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; } &amp;gt; m_text&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* end section CTORS */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* migration to version v1.2&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;define section FINI_ARRAY */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; .fini_array :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; PROVIDE_HIDDEN (__fini_array_start = .);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; KEEP (*(SORT(.fini_array.*)))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; KEEP (*(.fini_array ))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; PROVIDE_HIDDEN (__fini_array_end = .);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; } &amp;gt; m_text&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* end&amp;nbsp; section FINI_ARRAY */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .rodata :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *(.rodata)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *(.rodata.*)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_text&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .eh_frame_hdr : { *(.eh_frame_hdr) } &amp;gt; m_text&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .eh_frame : { KEEP (*(.eh_frame)) } &amp;gt; m_text&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* Sections used by startup for data initialization. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .init_table :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __COPY_TABLE = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; KEEP(*(.init_table))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_text&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .zero_table :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __ZERO_TABLE = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; KEEP(*(.zero_table))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_text&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; /* RAppID App Key */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .RAppID_AppKey :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __RAPPID_APP_KEY_ADDR = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; KEEP(*(.RAppID_AppKey))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_text&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; __TEXT_END = .; /* Define a global symbol at end of code. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .interrupts_ram : ALIGN(4096)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __VECTOR_RAM = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *(.m_interrupts_ram)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . += __RAM_VECTOR_TABLE_SIZE;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_data&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; __CUSTOM_ROM = __TEXT_END; /* Symbol is used by startup for custom initialization. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .customSectionBlock : AT (__CUSTOM_ROM)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __CUSTOM_RAM = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __customSectionStart = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __customSection_start__ = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; KEEP(*(.customSection)) /* Keep section even if not referenced. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __customSection_end__ = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __customSectionEnd = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_data&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; __CUSTOM_END = __CUSTOM_ROM + (__customSection_end__ - __customSection_start__);&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; __DATA_ROM = __CUSTOM_END; /* Symbol is used by startup for data initialization. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .data : AT (__DATA_ROM)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __DATA_RAM = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __data_start__ = .; /* Create a global symbol at data start. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *(.data)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *(.data.*)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __data_end__ = .; /* Define a global symbol at data end. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_data&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; __DATA_END = __DATA_ROM + (__data_end__ - __data_start__);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; __SDATA_ROM = __DATA_END; /* Symbol is used by startup for sdata initialization. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .sdata : AT (__SDATA_ROM)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __SDATA_RAM = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __sdata_start__ = .; /* Create a global symbol at sdata start. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *(.sdata)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *(.sdata.*)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __sdata_end__ = .; /* Define a global symbol at sdata end. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_data&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; __SDATA_END = __SDATA_ROM + (__sdata_end__ - __sdata_start__);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .sbss (NOLOAD) :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __SBSS_START = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __sbss_start__ = .; /* Create a global symbol at sbss start. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; KEEP(*(.sbss))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; KEEP(*(.sbss.*))&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __sbss_end__ = .; /* Define a global symbol at sbss end. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __SBSS_END = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_data&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .bss (NOLOAD) :&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __BSS_START = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __bss_start__ = .; /* Create a global symbol at bss start. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *(.bss)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *(.bss.*)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *(COMMON)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __bss_end__ = .; /* Define a global symbol at bss end. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __BSS_END = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_data&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .BootFuncBlock (NOLOAD):&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; KEEP(*(.BOOTFUNCDATA))&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_bootFunc_data&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; __CODE_ROM = __SDATA_END; /* Symbol is used by code initialization. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .code : AT (__CODE_ROM)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __CODE_RAM = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __code_start__ = .; /* Create a global symbol at code start. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __code_ram_start__ = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; KEEP(*(.code_ram)) /* Custom section for storing code in RAM */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __code_ram_end__ = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __code_end__ = .; /* Define a global symbol at code end. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_data&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; __CODE_END = __CODE_ROM + (__code_end__ - __code_start__);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; .stack (NOLOAD) : ALIGN(16)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __HEAP = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PROVIDE (_end = .);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PROVIDE (end = .);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . += __HEAP_SIZE;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __HEAP_END = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _stack_end = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . += __STACK_SIZE;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . = ALIGN(4);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _stack_addr = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; __SP_INIT = .;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; } &amp;gt; m_data&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/*-------- LABELS USED IN CODE -------------------------------*/&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;/* Labels Used for Initialising SRAM ECC */&lt;/DIV&gt;&lt;DIV&gt;__SRAM_SIZE = SRAM_SIZE;&lt;/DIV&gt;&lt;DIV&gt;__SRAM_BASE_ADDR = SRAM_BASE_ADDR;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;__BSS_SIZE&amp;nbsp; &amp;nbsp; = __BSS_END - __BSS_START;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Dec 2023 10:38:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/custom-section-in-the-linker-file/m-p/1773865#M11536</guid>
      <dc:creator>oceansea</dc:creator>
      <dc:date>2023-12-13T10:38:01Z</dc:date>
    </item>
    <item>
      <title>Re: custom section in the linker file</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/custom-section-in-the-linker-file/m-p/1776435#M11578</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;you may find helpful this thread -&amp;nbsp;&lt;A href="https://community.nxp.com/t5/S32-SDK/Initilization-error-for-Z7a-core/m-p/1322720" target="_blank"&gt;https://community.nxp.com/t5/S32-SDK/Initilization-error-for-Z7a-core/m-p/1322720&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I tested your linker script file with empty project and on my side was testing function properly placed on address&amp;nbsp;0x40000000&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jiri_kral_0-1702909490684.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/254869i00E83FCE9C0FCEC4/image-size/large?v=v2&amp;amp;px=999" role="button" title="jiri_kral_0-1702909490684.png" alt="jiri_kral_0-1702909490684.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 18 Dec 2023 14:25:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/custom-section-in-the-linker-file/m-p/1776435#M11578</guid>
      <dc:creator>jiri_kral</dc:creator>
      <dc:date>2023-12-18T14:25:55Z</dc:date>
    </item>
    <item>
      <title>Re: custom section in the linker file</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/custom-section-in-the-linker-file/m-p/1777877#M11601</link>
      <description>&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;thank you reply;&lt;/P&gt;&lt;P&gt;now ,i can place the struct in the 0x40000000;&lt;/P&gt;&lt;P&gt;but ,if i write the struct ,the cpu0 will stop.&lt;/P&gt;&lt;P&gt;SRAM_BASE_ADDR = DEFINED(__sram_base_addr__) ? __sram_base_addr__ : 0x40001000;&lt;BR /&gt;SRAM_SIZE = DEFINED(__sram_size__) ? __sram_size__ : 252K;&lt;/P&gt;&lt;P&gt;before change the linker file ,the&amp;nbsp;SRAM_SIZE is 256K,&lt;/P&gt;&lt;P&gt;after add a new section ,i change the&amp;nbsp;SRAM_SIZE to 252K,because i hope the cpu0 do not&amp;nbsp;&lt;/P&gt;&lt;P&gt;Initialise my SRAM(0x40000000~0x40001000).&lt;/P&gt;&lt;P&gt;it seem if the SRAM(0x40000000~0x40001000) have not&amp;nbsp;Initialise ,then the cpu0 will&amp;nbsp;&lt;/P&gt;&lt;P&gt;disable write these &lt;SPAN&gt;address&amp;nbsp;&lt;/SPAN&gt;(0x40000000~0x40001000)&lt;/P&gt;&lt;P&gt;oceansea&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 20 Dec 2023 10:02:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/custom-section-in-the-linker-file/m-p/1777877#M11601</guid>
      <dc:creator>oceansea</dc:creator>
      <dc:date>2023-12-20T10:02:19Z</dc:date>
    </item>
  </channel>
</rss>

