menuconfig MODULE_HEAP bool "Heap Manager Module" default y if MODULE_HEAP config HEAP_NAME string "Module Name" default "heap" choice HEAP_CORRUPTION_DETECTION prompt "Heap corruption detection" default HEAP_POISONING_DISABLED help Enable heap poisoning features to detect heap corruption caused by out-of-bounds access to heap memory. See the "Heap Memory Debugging" page of the IDF documentation for a description of each level of heap corruption detection. config HEAP_POISONING_DISABLED bool "Basic (no poisoning)" config HEAP_POISONING_LIGHT bool "Light impact" config HEAP_POISONING_COMPREHENSIVE bool "Comprehensive" endchoice choice HEAP_TRACING_DEST bool "Heap tracing" default HEAP_TRACING_OFF help Enables the heap tracing API defined in esp_heap_trace.h. This function causes a moderate increase in IRAM code side and a minor increase in heap function (malloc/free/realloc) CPU overhead, even when the tracing feature is not used. So it's best to keep it disabled unless tracing is being used. config HEAP_TRACING_OFF bool "Disabled" config HEAP_TRACING_STANDALONE bool "Standalone" select HEAP_TRACING config HEAP_TRACING_TOHOST bool "Host-based" select HEAP_TRACING endchoice config HEAP_TRACING bool default n help Enables/disables heap tracing API. config HEAP_TRACE_HASH_MAP bool "Use hash map mechanism to access heap trace records" depends on HEAP_TRACING_STANDALONE default n help Enable this flag to use a hash map to increase performance in handling heap trace records. Heap trace standalone supports storing records as a list, or a list + hash map. Using only a list takes less memory, but calls to 'free' will get slower as the list grows. This is particularly affected when using HEAP_TRACE_ALL mode. By using a list + hash map, calls to 'free' remain fast, at the cost of additional memory to store the hash map. config HEAP_TRACE_HASH_MAP_IN_EXT_RAM bool "Place hash map in external RAM" depends on HEAP_TRACE_HASH_MAP default n help When enabled this configuration forces the hash map to be placed in external RAM. config HEAP_TRACE_HASH_MAP_SIZE int "The number of entries in the hash map" depends on HEAP_TRACE_HASH_MAP default 512 help Defines the number of entries in the heap trace hashmap. Each entry takes 8 bytes. The bigger this number is, the better the performance. Recommended range: 200 - 2000. config HEAP_USE_HOOKS bool "Use allocation and free hooks" help Enable the user to implement function hooks triggered for each successful allocation and free. config HEAP_TASK_TRACKING bool "Enable heap task tracking" help Enables tracking the task responsible for each heap allocation. This function depends on heap poisoning being enabled and adds four more bytes of overhead for each block allocated. config HEAP_ABORT_WHEN_ALLOCATION_FAILS bool "Abort if memory allocation fails" default n help When enabled, if a memory allocation operation fails it will cause a system abort. config HEAP_PLACE_FUNCTION_INTO_FLASH bool "Force the entire heap component to be placed in flash memory" default n help Enable this flag to save up RAM space by placing the heap component in the flash memory Note that it is only safe to enable this configuration if no functions from esp_heap_caps.h or esp_heap_trace.h are called from ISR. endif