We are trying to reduce the freertos heapsize in Renesas RX62N. Default heap size is 45K. We are using heap_2.c. When we reduce heap size to 2K, the code is getting stuck at vApplicationMallocFailedHook(). Can anyone help in solving this issue?
How much heap do you need? It seems more than 2K. Set the heap larger than you need, alocate all the objects you need, then call xPortGetFreeHeapSize() to see how much is left. You can then set configTOTAL_HEAP_SIZE to exactly what is needed.
If you use heap_2 (heap_4 is normal now) and nothing calls malloc then make sure you dont also allocate a C heap as it wont be used. The size of the C heap is normally set in a linker script.
Thankyou for the reply. We are using heap_2.c. We have read in some forums that we can set configTOTAL_HEAP_SIZE 0 since heap_2.c is not using heap memory. But if we set 0, vApplicationMallocFailedHook() is coming. Can we avoid this? We can give maximum 15K heap memory. We have 4 tasks. But then also this error was there.
You cannot set that constant to 0 if you are using heep_2, only if you are using heep_3. You have the source code for the heap implementations so you can see why very quickly. Please also read the memory management pages on the FreeRTOS.org site.
Regards.