<?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>topic PN7462 Memory Allocation Problem in Other NXP Products</title>
    <link>https://community.nxp.com/t5/Other-NXP-Products/PN7462-Memory-Allocation-Problem/m-p/1387940#M12807</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I'm using &lt;STRONG&gt;PN7462AU_ex_phExCcid&lt;/STRONG&gt; sample from '&lt;STRONG&gt;PN7462AU FW and SW Examples Full Version - v06.10.00&lt;/STRONG&gt;' with &lt;STRONG&gt;'OM27462CDKP: NFC Controller development kit&lt;/STRONG&gt;'.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm trying to add an array like this '&lt;STRONG&gt;uint8_t tempBuff&lt;/STRONG&gt;&lt;STRONG&gt;er[600]&lt;/STRONG&gt;' as a global variable in '&lt;STRONG&gt;phExCcid.c&lt;/STRONG&gt;' file.&lt;/P&gt;&lt;P&gt;Than just for testing purposes i change item of an array like this '&lt;STRONG&gt;tempBuffer[400] = 0x2&lt;/STRONG&gt;' in '&lt;STRONG&gt;int main(void)&lt;/STRONG&gt;' in&amp;nbsp; '&lt;STRONG&gt;phExCcid.c&lt;/STRONG&gt;' file.&lt;/P&gt;&lt;P&gt;OR&lt;/P&gt;&lt;P&gt;I tried to access that array from one of RTOS task.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;After these changes sometimes firmware ends up in "phFlashBoot_HardFault_Handler" sometimes it just freezes.&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="Adsız.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/165404i80223BF957EFCA15/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Adsız.png" alt="Adsız.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Adsız2.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/165405i837F36D0CB2A063A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Adsız2.png" alt="Adsız2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Adsız3.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/165407i85FEB7CC677DCE34/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Adsız3.png" alt="Adsız3.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;If I try to increase stack sizes of RTOS tasks i'm getting "&lt;SPAN&gt;vApplicationMallocFailedHook".&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I tried to change "Heap &amp;amp; Stack placement" and their sizes in MCU Linker-&amp;gt; Managed Linker Script settings but i didn't get any result.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I've been dealing with this problem for days without any result. I already read datasheet and documents given with the product. I think the change that needs to be made is quite simple, but I couldn't find it.&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-SPOILER&gt;&lt;P&gt;/*&lt;BR /&gt;* GENERATED FILE - DO NOT EDIT&lt;BR /&gt;* Copyright (c) 2008-2013 Code Red Technologies Ltd,&lt;BR /&gt;* Copyright 2015, 2018-2019 NXP&lt;BR /&gt;* (c) NXP Semiconductors 2013-2021&lt;BR /&gt;* Generated linker script file for PN7462AU-C3-00&lt;BR /&gt;* Created from linkscript.ldt by FMCreateLinkLibraries&lt;BR /&gt;* Using Freemarker v2.3.30&lt;BR /&gt;* MCUXpresso IDE v11.4.1 [Build 6260] [2021-09-15] on 16 Ara 2021 10:44:20&lt;BR /&gt;*/&lt;/P&gt;&lt;P&gt;INCLUDE "PN7462AU_ex_phExCcid_mcux_DebugPN7462AU_library.ld"&lt;BR /&gt;INCLUDE "PN7462AU_ex_phExCcid_mcux_DebugPN7462AU_memory.ld"&lt;/P&gt;&lt;P&gt;ENTRY(ResetISR)&lt;/P&gt;&lt;P&gt;SECTIONS&lt;BR /&gt;{&lt;BR /&gt;.text_Flash2 : ALIGN(4)&lt;BR /&gt;{&lt;BR /&gt;FILL(0xff)&lt;BR /&gt;*(.text_Flash2) /* for compatibility with previous releases */&lt;BR /&gt;*(.text_EEPROM) /* for compatibility with previous releases */&lt;BR /&gt;*(.text.$Flash2)&lt;BR /&gt;*(.text.$EEPROM)&lt;BR /&gt;*(.text_Flash2.*) /* for compatibility with previous releases */&lt;BR /&gt;*(.text_EEPROM.*) /* for compatibility with previous releases */&lt;BR /&gt;*(.text.$Flash2.*)&lt;BR /&gt;*(.text.$EEPROM.*)&lt;BR /&gt;*(.rodata.$Flash2)&lt;BR /&gt;*(.rodata.$EEPROM)&lt;BR /&gt;*(.rodata.$Flash2.*)&lt;BR /&gt;*(.rodata.$EEPROM.*) } &amp;gt; EEPROM&lt;/P&gt;&lt;P&gt;/* MAIN TEXT SECTION */&lt;BR /&gt;.text : ALIGN(4)&lt;BR /&gt;{&lt;BR /&gt;FILL(0xff)&lt;BR /&gt;__vectors_start__ = ABSOLUTE(.) ;&lt;BR /&gt;KEEP(*(.isr_vector))&lt;BR /&gt;/* Global Section Table */&lt;BR /&gt;. = ALIGN(4) ;&lt;BR /&gt;__section_table_start = .;&lt;BR /&gt;__data_section_table = .;&lt;BR /&gt;LONG(LOADADDR(.data));&lt;BR /&gt;LONG( ADDR(.data));&lt;BR /&gt;LONG( SIZEOF(.data));&lt;BR /&gt;__data_section_table_end = .;&lt;BR /&gt;__bss_section_table = .;&lt;BR /&gt;LONG( ADDR(.bss));&lt;BR /&gt;LONG( SIZEOF(.bss));&lt;BR /&gt;__bss_section_table_end = .;&lt;BR /&gt;__section_table_end = . ;&lt;BR /&gt;/* End of Global Section Table */&lt;/P&gt;&lt;P&gt;*(.after_vectors*)&lt;/P&gt;&lt;P&gt;} &amp;gt; Flash&lt;/P&gt;&lt;P&gt;.text : ALIGN(4)&lt;BR /&gt;{&lt;BR /&gt;*(.text*)&lt;BR /&gt;*(.rodata .rodata.* .constdata .constdata.*)&lt;BR /&gt;. = ALIGN(4);&lt;BR /&gt;} &amp;gt; Flash&lt;BR /&gt;/*&lt;BR /&gt;* for exception handling/unwind - some Newlib functions (in common&lt;BR /&gt;* with C++ and STDC++) use this.&lt;BR /&gt;*/&lt;BR /&gt;.ARM.extab : ALIGN(4)&lt;BR /&gt;{&lt;BR /&gt;*(.ARM.extab* .gnu.linkonce.armextab.*)&lt;BR /&gt;} &amp;gt; Flash&lt;/P&gt;&lt;P&gt;.ARM.exidx : ALIGN(4)&lt;BR /&gt;{&lt;BR /&gt;__exidx_start = .;&lt;BR /&gt;*(.ARM.exidx* .gnu.linkonce.armexidx.*)&lt;BR /&gt;__exidx_end = .;&lt;BR /&gt;} &amp;gt; Flash&lt;BR /&gt;&lt;BR /&gt;_etext = .;&lt;BR /&gt;&lt;BR /&gt;/* MAIN DATA SECTION */&lt;BR /&gt;.uninit_RESERVED (NOLOAD) : ALIGN(4)&lt;BR /&gt;{&lt;BR /&gt;_start_uninit_RESERVED = .;&lt;BR /&gt;KEEP(*(.bss.$RESERVED*))&lt;BR /&gt;. = ALIGN(4) ;&lt;BR /&gt;_end_uninit_RESERVED = .;&lt;BR /&gt;} &amp;gt; SRAM AT&amp;gt; SRAM&lt;/P&gt;&lt;P&gt;/* Main DATA section (SRAM) */&lt;BR /&gt;.data : ALIGN(4)&lt;BR /&gt;{&lt;BR /&gt;FILL(0xff)&lt;BR /&gt;_data = . ;&lt;BR /&gt;PROVIDE(__start_data_RAM = .) ;&lt;BR /&gt;PROVIDE(__start_data_SRAM = .) ;&lt;BR /&gt;*(vtable)&lt;BR /&gt;*(.ramfunc*)&lt;BR /&gt;KEEP(*(CodeQuickAccess))&lt;BR /&gt;KEEP(*(DataQuickAccess))&lt;BR /&gt;*(RamFunction)&lt;BR /&gt;*(.data*)&lt;BR /&gt;. = ALIGN(4) ;&lt;BR /&gt;_edata = . ;&lt;BR /&gt;PROVIDE(__end_data_RAM = .) ;&lt;BR /&gt;PROVIDE(__end_data_SRAM = .) ;&lt;BR /&gt;} &amp;gt; SRAM AT&amp;gt;Flash&lt;/P&gt;&lt;P&gt;/* MAIN BSS SECTION */&lt;BR /&gt;.bss : ALIGN(4)&lt;BR /&gt;{&lt;BR /&gt;_bss = .;&lt;BR /&gt;PROVIDE(__start_bss_RAM = .) ;&lt;BR /&gt;PROVIDE(__start_bss_SRAM = .) ;&lt;BR /&gt;*(.bss*)&lt;BR /&gt;*(COMMON)&lt;BR /&gt;. = ALIGN(4) ;&lt;BR /&gt;_ebss = .;&lt;BR /&gt;PROVIDE(__end_bss_RAM = .) ;&lt;BR /&gt;PROVIDE(__end_bss_SRAM = .) ;&lt;BR /&gt;PROVIDE(end = .);&lt;BR /&gt;} &amp;gt; SRAM AT&amp;gt; SRAM&lt;/P&gt;&lt;P&gt;/* DEFAULT NOINIT SECTION */&lt;BR /&gt;.noinit (NOLOAD): ALIGN(4)&lt;BR /&gt;{&lt;BR /&gt;_noinit = .;&lt;BR /&gt;PROVIDE(__start_noinit_RAM = .) ;&lt;BR /&gt;PROVIDE(__start_noinit_SRAM = .) ;&lt;BR /&gt;*(.noinit*)&lt;BR /&gt;. = ALIGN(4) ;&lt;BR /&gt;_end_noinit = .;&lt;BR /&gt;PROVIDE(__end_noinit_RAM = .) ;&lt;BR /&gt;PROVIDE(__end_noinit_SRAM = .) ;&lt;BR /&gt;} &amp;gt; SRAM AT&amp;gt; SRAM&lt;BR /&gt;PROVIDE(_pvHeapStart = DEFINED(__user_heap_base) ? __user_heap_base : .);&lt;BR /&gt;PROVIDE(_vStackTop = DEFINED(__user_stack_top) ? __user_stack_top : __top_SRAM - 1528);&lt;/P&gt;&lt;P&gt;/* Provide basic symbols giving location and size of main text&lt;BR /&gt;* block, including initial values of RW data sections. Note that&lt;BR /&gt;* these will need extending to give a complete picture with&lt;BR /&gt;* complex images (e.g multiple Flash banks).&lt;BR /&gt;*/&lt;BR /&gt;_image_start = LOADADDR(.text);&lt;BR /&gt;_image_end = LOADADDR(.data) + SIZEOF(.data);&lt;BR /&gt;_image_size = _image_end - _image_start;&lt;BR /&gt;}&lt;/P&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI-SPOILER&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 16 Dec 2021 08:02:56 GMT</pubDate>
    <dc:creator>EE_Ark</dc:creator>
    <dc:date>2021-12-16T08:02:56Z</dc:date>
    <item>
      <title>PN7462 Memory Allocation Problem</title>
      <link>https://community.nxp.com/t5/Other-NXP-Products/PN7462-Memory-Allocation-Problem/m-p/1387940#M12807</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I'm using &lt;STRONG&gt;PN7462AU_ex_phExCcid&lt;/STRONG&gt; sample from '&lt;STRONG&gt;PN7462AU FW and SW Examples Full Version - v06.10.00&lt;/STRONG&gt;' with &lt;STRONG&gt;'OM27462CDKP: NFC Controller development kit&lt;/STRONG&gt;'.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm trying to add an array like this '&lt;STRONG&gt;uint8_t tempBuff&lt;/STRONG&gt;&lt;STRONG&gt;er[600]&lt;/STRONG&gt;' as a global variable in '&lt;STRONG&gt;phExCcid.c&lt;/STRONG&gt;' file.&lt;/P&gt;&lt;P&gt;Than just for testing purposes i change item of an array like this '&lt;STRONG&gt;tempBuffer[400] = 0x2&lt;/STRONG&gt;' in '&lt;STRONG&gt;int main(void)&lt;/STRONG&gt;' in&amp;nbsp; '&lt;STRONG&gt;phExCcid.c&lt;/STRONG&gt;' file.&lt;/P&gt;&lt;P&gt;OR&lt;/P&gt;&lt;P&gt;I tried to access that array from one of RTOS task.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;After these changes sometimes firmware ends up in "phFlashBoot_HardFault_Handler" sometimes it just freezes.&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="Adsız.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/165404i80223BF957EFCA15/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Adsız.png" alt="Adsız.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Adsız2.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/165405i837F36D0CB2A063A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Adsız2.png" alt="Adsız2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Adsız3.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/165407i85FEB7CC677DCE34/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Adsız3.png" alt="Adsız3.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;If I try to increase stack sizes of RTOS tasks i'm getting "&lt;SPAN&gt;vApplicationMallocFailedHook".&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I tried to change "Heap &amp;amp; Stack placement" and their sizes in MCU Linker-&amp;gt; Managed Linker Script settings but i didn't get any result.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I've been dealing with this problem for days without any result. I already read datasheet and documents given with the product. I think the change that needs to be made is quite simple, but I couldn't find it.&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-SPOILER&gt;&lt;P&gt;/*&lt;BR /&gt;* GENERATED FILE - DO NOT EDIT&lt;BR /&gt;* Copyright (c) 2008-2013 Code Red Technologies Ltd,&lt;BR /&gt;* Copyright 2015, 2018-2019 NXP&lt;BR /&gt;* (c) NXP Semiconductors 2013-2021&lt;BR /&gt;* Generated linker script file for PN7462AU-C3-00&lt;BR /&gt;* Created from linkscript.ldt by FMCreateLinkLibraries&lt;BR /&gt;* Using Freemarker v2.3.30&lt;BR /&gt;* MCUXpresso IDE v11.4.1 [Build 6260] [2021-09-15] on 16 Ara 2021 10:44:20&lt;BR /&gt;*/&lt;/P&gt;&lt;P&gt;INCLUDE "PN7462AU_ex_phExCcid_mcux_DebugPN7462AU_library.ld"&lt;BR /&gt;INCLUDE "PN7462AU_ex_phExCcid_mcux_DebugPN7462AU_memory.ld"&lt;/P&gt;&lt;P&gt;ENTRY(ResetISR)&lt;/P&gt;&lt;P&gt;SECTIONS&lt;BR /&gt;{&lt;BR /&gt;.text_Flash2 : ALIGN(4)&lt;BR /&gt;{&lt;BR /&gt;FILL(0xff)&lt;BR /&gt;*(.text_Flash2) /* for compatibility with previous releases */&lt;BR /&gt;*(.text_EEPROM) /* for compatibility with previous releases */&lt;BR /&gt;*(.text.$Flash2)&lt;BR /&gt;*(.text.$EEPROM)&lt;BR /&gt;*(.text_Flash2.*) /* for compatibility with previous releases */&lt;BR /&gt;*(.text_EEPROM.*) /* for compatibility with previous releases */&lt;BR /&gt;*(.text.$Flash2.*)&lt;BR /&gt;*(.text.$EEPROM.*)&lt;BR /&gt;*(.rodata.$Flash2)&lt;BR /&gt;*(.rodata.$EEPROM)&lt;BR /&gt;*(.rodata.$Flash2.*)&lt;BR /&gt;*(.rodata.$EEPROM.*) } &amp;gt; EEPROM&lt;/P&gt;&lt;P&gt;/* MAIN TEXT SECTION */&lt;BR /&gt;.text : ALIGN(4)&lt;BR /&gt;{&lt;BR /&gt;FILL(0xff)&lt;BR /&gt;__vectors_start__ = ABSOLUTE(.) ;&lt;BR /&gt;KEEP(*(.isr_vector))&lt;BR /&gt;/* Global Section Table */&lt;BR /&gt;. = ALIGN(4) ;&lt;BR /&gt;__section_table_start = .;&lt;BR /&gt;__data_section_table = .;&lt;BR /&gt;LONG(LOADADDR(.data));&lt;BR /&gt;LONG( ADDR(.data));&lt;BR /&gt;LONG( SIZEOF(.data));&lt;BR /&gt;__data_section_table_end = .;&lt;BR /&gt;__bss_section_table = .;&lt;BR /&gt;LONG( ADDR(.bss));&lt;BR /&gt;LONG( SIZEOF(.bss));&lt;BR /&gt;__bss_section_table_end = .;&lt;BR /&gt;__section_table_end = . ;&lt;BR /&gt;/* End of Global Section Table */&lt;/P&gt;&lt;P&gt;*(.after_vectors*)&lt;/P&gt;&lt;P&gt;} &amp;gt; Flash&lt;/P&gt;&lt;P&gt;.text : ALIGN(4)&lt;BR /&gt;{&lt;BR /&gt;*(.text*)&lt;BR /&gt;*(.rodata .rodata.* .constdata .constdata.*)&lt;BR /&gt;. = ALIGN(4);&lt;BR /&gt;} &amp;gt; Flash&lt;BR /&gt;/*&lt;BR /&gt;* for exception handling/unwind - some Newlib functions (in common&lt;BR /&gt;* with C++ and STDC++) use this.&lt;BR /&gt;*/&lt;BR /&gt;.ARM.extab : ALIGN(4)&lt;BR /&gt;{&lt;BR /&gt;*(.ARM.extab* .gnu.linkonce.armextab.*)&lt;BR /&gt;} &amp;gt; Flash&lt;/P&gt;&lt;P&gt;.ARM.exidx : ALIGN(4)&lt;BR /&gt;{&lt;BR /&gt;__exidx_start = .;&lt;BR /&gt;*(.ARM.exidx* .gnu.linkonce.armexidx.*)&lt;BR /&gt;__exidx_end = .;&lt;BR /&gt;} &amp;gt; Flash&lt;BR /&gt;&lt;BR /&gt;_etext = .;&lt;BR /&gt;&lt;BR /&gt;/* MAIN DATA SECTION */&lt;BR /&gt;.uninit_RESERVED (NOLOAD) : ALIGN(4)&lt;BR /&gt;{&lt;BR /&gt;_start_uninit_RESERVED = .;&lt;BR /&gt;KEEP(*(.bss.$RESERVED*))&lt;BR /&gt;. = ALIGN(4) ;&lt;BR /&gt;_end_uninit_RESERVED = .;&lt;BR /&gt;} &amp;gt; SRAM AT&amp;gt; SRAM&lt;/P&gt;&lt;P&gt;/* Main DATA section (SRAM) */&lt;BR /&gt;.data : ALIGN(4)&lt;BR /&gt;{&lt;BR /&gt;FILL(0xff)&lt;BR /&gt;_data = . ;&lt;BR /&gt;PROVIDE(__start_data_RAM = .) ;&lt;BR /&gt;PROVIDE(__start_data_SRAM = .) ;&lt;BR /&gt;*(vtable)&lt;BR /&gt;*(.ramfunc*)&lt;BR /&gt;KEEP(*(CodeQuickAccess))&lt;BR /&gt;KEEP(*(DataQuickAccess))&lt;BR /&gt;*(RamFunction)&lt;BR /&gt;*(.data*)&lt;BR /&gt;. = ALIGN(4) ;&lt;BR /&gt;_edata = . ;&lt;BR /&gt;PROVIDE(__end_data_RAM = .) ;&lt;BR /&gt;PROVIDE(__end_data_SRAM = .) ;&lt;BR /&gt;} &amp;gt; SRAM AT&amp;gt;Flash&lt;/P&gt;&lt;P&gt;/* MAIN BSS SECTION */&lt;BR /&gt;.bss : ALIGN(4)&lt;BR /&gt;{&lt;BR /&gt;_bss = .;&lt;BR /&gt;PROVIDE(__start_bss_RAM = .) ;&lt;BR /&gt;PROVIDE(__start_bss_SRAM = .) ;&lt;BR /&gt;*(.bss*)&lt;BR /&gt;*(COMMON)&lt;BR /&gt;. = ALIGN(4) ;&lt;BR /&gt;_ebss = .;&lt;BR /&gt;PROVIDE(__end_bss_RAM = .) ;&lt;BR /&gt;PROVIDE(__end_bss_SRAM = .) ;&lt;BR /&gt;PROVIDE(end = .);&lt;BR /&gt;} &amp;gt; SRAM AT&amp;gt; SRAM&lt;/P&gt;&lt;P&gt;/* DEFAULT NOINIT SECTION */&lt;BR /&gt;.noinit (NOLOAD): ALIGN(4)&lt;BR /&gt;{&lt;BR /&gt;_noinit = .;&lt;BR /&gt;PROVIDE(__start_noinit_RAM = .) ;&lt;BR /&gt;PROVIDE(__start_noinit_SRAM = .) ;&lt;BR /&gt;*(.noinit*)&lt;BR /&gt;. = ALIGN(4) ;&lt;BR /&gt;_end_noinit = .;&lt;BR /&gt;PROVIDE(__end_noinit_RAM = .) ;&lt;BR /&gt;PROVIDE(__end_noinit_SRAM = .) ;&lt;BR /&gt;} &amp;gt; SRAM AT&amp;gt; SRAM&lt;BR /&gt;PROVIDE(_pvHeapStart = DEFINED(__user_heap_base) ? __user_heap_base : .);&lt;BR /&gt;PROVIDE(_vStackTop = DEFINED(__user_stack_top) ? __user_stack_top : __top_SRAM - 1528);&lt;/P&gt;&lt;P&gt;/* Provide basic symbols giving location and size of main text&lt;BR /&gt;* block, including initial values of RW data sections. Note that&lt;BR /&gt;* these will need extending to give a complete picture with&lt;BR /&gt;* complex images (e.g multiple Flash banks).&lt;BR /&gt;*/&lt;BR /&gt;_image_start = LOADADDR(.text);&lt;BR /&gt;_image_end = LOADADDR(.data) + SIZEOF(.data);&lt;BR /&gt;_image_size = _image_end - _image_start;&lt;BR /&gt;}&lt;/P&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI-SPOILER&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 16 Dec 2021 08:02:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Other-NXP-Products/PN7462-Memory-Allocation-Problem/m-p/1387940#M12807</guid>
      <dc:creator>EE_Ark</dc:creator>
      <dc:date>2021-12-16T08:02:56Z</dc:date>
    </item>
    <item>
      <title>Re: PN7462 Memory Allocation Problem</title>
      <link>https://community.nxp.com/t5/Other-NXP-Products/PN7462-Memory-Allocation-Problem/m-p/1391955#M12858</link>
      <description>&lt;P&gt;Hi&amp;nbsp; &amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/193309"&gt;@EE_Ark&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please be aware that for PN7462 , the user SRAM is limited to 12000 bytes and 256 bytes is used by NXP FW executed in ROM.&amp;nbsp; &amp;nbsp; Heap , stack and BSS and some reserved RAM need to be stored in this area. see below picture.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="danielchen_0-1640520838635.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/166230i767A6E9DF0F207DC/image-size/medium?v=v2&amp;amp;px=400" role="button" title="danielchen_0-1640520838635.png" alt="danielchen_0-1640520838635.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;if you&amp;nbsp;&lt;SPAN&gt;add an array like this '&lt;/SPAN&gt;&lt;STRONG&gt;uint8_t tempBuff&lt;/STRONG&gt;&lt;STRONG&gt;er[600]&lt;/STRONG&gt;&lt;SPAN&gt;' as a global variable in '&lt;/SPAN&gt;&lt;STRONG&gt;phExCcid.c&lt;/STRONG&gt;&lt;SPAN&gt;' file. this will add more 738 bytes (I tested on my side) in BSS.&amp;nbsp; it means the size of heap and stack will be reduced by 738 bytes.&amp;nbsp; why do you need so large array in this memory constrained device?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;If the size of heap and stack reduced by 738 bytes, there there will be a conflict issue of heap and stack. will result in system crash.&lt;/P&gt;
&lt;P&gt;You can try to build the release version,&amp;nbsp; it can work without issues if you add the large array.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To avoid the conflict, one option you can try is to reduce the stack size of&amp;nbsp; other tasks.&lt;/P&gt;
&lt;P&gt;For example , I reduced the clif task size by 100 bytes, there will be no errors on my side,&amp;nbsp; You need to do more test .&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;change the cli stack size in phExCcid_Cfg.h&lt;/SPAN&gt;&lt;BR clear="none" /&gt;&lt;BR clear="none" /&gt;&lt;SPAN&gt;line 62&lt;/SPAN&gt;&lt;BR clear="none" /&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&lt;BR clear="none" /&gt;&lt;SPAN&gt;#define PH_EXCCID_CFG_RTOS_CLIF_TASK_STACK_SIZE &amp;nbsp; &amp;nbsp;(440 + PH_EXCCID_CFG_RTOS_STACK_GUARD + PH_EXCCID_CFG_CLIF_LOG_STACK)&lt;/SPAN&gt;&lt;BR clear="none" /&gt;&lt;BR clear="none" /&gt;&lt;SPAN&gt;to&lt;/SPAN&gt;&lt;BR clear="none" /&gt;&lt;SPAN&gt;#define PH_EXCCID_CFG_RTOS_CLIF_TASK_STACK_SIZE &amp;nbsp; &amp;nbsp;(340 + PH_EXCCID_CFG_RTOS_STACK_GUARD + PH_EXCCID_CFG_CLIF_LOG_STACK)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I hope it helps&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards&lt;/P&gt;
&lt;P&gt;Daniel&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 26 Dec 2021 12:41:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Other-NXP-Products/PN7462-Memory-Allocation-Problem/m-p/1391955#M12858</guid>
      <dc:creator>danielchen</dc:creator>
      <dc:date>2021-12-26T12:41:35Z</dc:date>
    </item>
  </channel>
</rss>

