Просмотр исходного кода

esp_wifi: Add API to get available internal heap size.

xiehang 5 лет назад
Родитель
Сommit
58d37de620

+ 10 - 0
components/esp_common/include/esp_system.h

@@ -117,6 +117,16 @@ esp_reset_reason_t esp_reset_reason(void);
   */
 uint32_t esp_get_free_heap_size(void);
 
+/**
+  * @brief  Get the size of available internal heap.
+  *
+  * Note that the returned value may be larger than the maximum contiguous block
+  * which can be allocated.
+  *
+  * @return Available internal heap size, in bytes.
+  */
+uint32_t esp_get_free_internal_heap_size(void);
+
 /**
   * @brief Get the minimum heap that has ever been available
   *

+ 5 - 0
components/esp_common/src/system_api.c

@@ -51,6 +51,11 @@ uint32_t esp_get_free_heap_size( void )
     return heap_caps_get_free_size( MALLOC_CAP_DEFAULT );
 }
 
+uint32_t esp_get_free_internal_heap_size( void )
+{
+    return heap_caps_get_free_size( MALLOC_CAP_8BIT | MALLOC_CAP_DMA | MALLOC_CAP_INTERNAL );
+}
+
 uint32_t esp_get_minimum_free_heap_size( void )
 {
     return heap_caps_get_minimum_free_size( MALLOC_CAP_DEFAULT );

+ 1 - 1
components/esp_wifi/esp32/esp_adapter.c

@@ -562,7 +562,7 @@ wifi_osi_funcs_t g_wifi_osi_funcs = {
     ._malloc = malloc,
     ._free = free,
     ._event_post = esp_event_post_wrapper,
-    ._get_free_heap_size = esp_get_free_heap_size,
+    ._get_free_heap_size = esp_get_free_internal_heap_size,
     ._rand = esp_random,
     ._dport_access_stall_other_cpu_start_wrap = s_esp_dport_access_stall_other_cpu_start,
     ._dport_access_stall_other_cpu_end_wrap = s_esp_dport_access_stall_other_cpu_end,

+ 1 - 1
components/esp_wifi/esp32s2beta/esp_adapter.c

@@ -552,7 +552,7 @@ wifi_osi_funcs_t g_wifi_osi_funcs = {
     ._malloc = malloc,
     ._free = free,
     ._event_post = esp_event_post_wrapper,
-    ._get_free_heap_size = esp_get_free_heap_size,
+    ._get_free_heap_size = esp_get_free_internal_heap_size,
     ._rand = esp_random,
     ._dport_access_stall_other_cpu_start_wrap = esp_empty_wrapper,
     ._dport_access_stall_other_cpu_end_wrap = esp_empty_wrapper,