<?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 malloc() failure: LPC1788+FreRTOS+heap_3.c in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/malloc-failure-LPC1788-FreRTOS-heap-3-c/m-p/522423#M5059</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by jim.shentu on Wed May 18 21:35:23 MST 2016&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am experiencing failure with malloc() function. Details of the target system is given as below:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MCU: LPC1788FBD208&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;OS: FreeRTOS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SDRAM: MT48LC4M16A2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Original Evaluation Kit: UEZGUI-1788-70WVT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Sample Project: uEZ_v2.06_SourceForge&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am using the heap_3.c module. Function malloc() is dead at first time when it is called, requiring &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;76 bytes to be allocated. When I check the configuration of the heap size, it is far bigger than &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;the required size. Could you technical support guys help identify the problem? Thanks in advance. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-------------------------------------------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;heap_3 code&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-------------------------------------------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void *pvPortMalloc( size_t xWantedSize )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void *pvReturn;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;vTaskSuspendAll();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; pvReturn = malloc(xWantedSize );&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xTaskResumeAll();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#if( configUSE_MALLOC_FAILED_HOOK == 1 )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if( pvReturn == NULL )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;extern void vApplicationMallocFailedHook( void );&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;vApplicationMallocFailedHook();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;return pvReturn;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-------------------------------------------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Heap Size defined in FreeRTOSConfig.h&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-------------------------------------------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#ifndef configMINIMAL_STACK_SIZE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define configMINIMAL_STACK_SIZE( 128 )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#ifndef configTOTAL_HEAP_SIZE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define configTOTAL_HEAP_SIZE( ( size_t ) (( 32 * 1024 ) - 64)) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have tried to increase the heap size up to 48k and reduce the heap size to 20k. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The malloc dead lock keeps the same. There is no improvement.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 17:54:43 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T17:54:43Z</dc:date>
    <item>
      <title>malloc() failure: LPC1788+FreRTOS+heap_3.c</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/malloc-failure-LPC1788-FreRTOS-heap-3-c/m-p/522423#M5059</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by jim.shentu on Wed May 18 21:35:23 MST 2016&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am experiencing failure with malloc() function. Details of the target system is given as below:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MCU: LPC1788FBD208&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;OS: FreeRTOS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SDRAM: MT48LC4M16A2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Original Evaluation Kit: UEZGUI-1788-70WVT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Sample Project: uEZ_v2.06_SourceForge&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am using the heap_3.c module. Function malloc() is dead at first time when it is called, requiring &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;76 bytes to be allocated. When I check the configuration of the heap size, it is far bigger than &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;the required size. Could you technical support guys help identify the problem? Thanks in advance. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-------------------------------------------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;heap_3 code&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-------------------------------------------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void *pvPortMalloc( size_t xWantedSize )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void *pvReturn;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;vTaskSuspendAll();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; pvReturn = malloc(xWantedSize );&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xTaskResumeAll();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#if( configUSE_MALLOC_FAILED_HOOK == 1 )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if( pvReturn == NULL )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;extern void vApplicationMallocFailedHook( void );&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;vApplicationMallocFailedHook();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;return pvReturn;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-------------------------------------------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Heap Size defined in FreeRTOSConfig.h&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-------------------------------------------------------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#ifndef configMINIMAL_STACK_SIZE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define configMINIMAL_STACK_SIZE( 128 )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#ifndef configTOTAL_HEAP_SIZE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define configTOTAL_HEAP_SIZE( ( size_t ) (( 32 * 1024 ) - 64)) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have tried to increase the heap size up to 48k and reduce the heap size to 20k. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The malloc dead lock keeps the same. There is no improvement.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:54:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/malloc-failure-LPC1788-FreRTOS-heap-3-c/m-p/522423#M5059</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:54:43Z</dc:date>
    </item>
    <item>
      <title>Re: malloc() failure: LPC1788+FreRTOS+heap_3.c</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/malloc-failure-LPC1788-FreRTOS-heap-3-c/m-p/522424#M5060</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by vtw.433e on Thu May 19 01:39:46 MST 2016&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;You might get a faster response by asking FreeRTOS question on the FreeRTOS forum at &lt;A href="https://community.nxp.com/www.freertos.org" target="test_blank"&gt;www.freertos.org&lt;/A&gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:54:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/malloc-failure-LPC1788-FreRTOS-heap-3-c/m-p/522424#M5060</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:54:44Z</dc:date>
    </item>
    <item>
      <title>Re: malloc() failure: LPC1788+FreRTOS+heap_3.c</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/malloc-failure-LPC1788-FreRTOS-heap-3-c/m-p/522425#M5061</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Innoval2 on Sat May 21 00:25:29 MST 2016&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;heap_3 is a simple wrapper to make malloc() and free() thread safe, so TOTAL_HEAP_SIZE will not be used!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You have to set the heap size in the linker (d'not ask me how, I have never used heap_3, I prefer the FreeRTOS implementations like heap_4.c).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Martin&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:54:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/malloc-failure-LPC1788-FreRTOS-heap-3-c/m-p/522425#M5061</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:54:44Z</dc:date>
    </item>
    <item>
      <title>Re: malloc() failure: LPC1788+FreRTOS+heap_3.c</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/malloc-failure-LPC1788-FreRTOS-heap-3-c/m-p/522426#M5062</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;bump&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 19 Jun 2016 01:11:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/malloc-failure-LPC1788-FreRTOS-heap-3-c/m-p/522426#M5062</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-19T01:11:25Z</dc:date>
    </item>
  </channel>
</rss>

