heap: add tlsf config specific to the host test

pull/6192/head
Felipe Neves 2020-10-20 11:53:57 -03:00 zatwierdzone przez Angus Gratton
rodzic 60f79705a3
commit 35ef4ffa99
4 zmienionych plików z 47 dodań i 4 usunięć

Wyświetl plik

@ -37,6 +37,7 @@
#include "multi_heap_config.h"
#include "multi_heap.h"
#include "multi_heap_internal.h"
#include "heap_tlsf_config.h"
#include "heap_tlsf.h"
/*

Wyświetl plik

@ -43,7 +43,6 @@
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
#include "sdkconfig.h"
#include "heap_tlsf_config.h"
#if defined(__cplusplus)

Wyświetl plik

@ -37,13 +37,23 @@
#pragma once
#ifdef ESP_PLATFORM
#include "soc/soc.h"
#if !CONFIG_SPIRAM
#define TLSF_MAX_POOL_SIZE (SOC_DIRAM_DRAM_HIGH - SOC_DIRAM_DRAM_LOW)
#else
#define TLSF_MAX_POOL_SIZE SOC_EXTRAM_DATA_SIZE
#endif
enum tlsf_config
{
/* log2 of number of linear subdivisions of block sizes. Larger
** values require more memory in the control structure. Values of
** 4 or 5 are typical.
*/
SL_INDEX_COUNT_LOG2 = 2,
SL_INDEX_COUNT_LOG2 = 3,
/* All allocation sizes and addresses are aligned to 4 bytes. */
ALIGN_SIZE_LOG2 = 2,
@ -63,10 +73,14 @@ enum tlsf_config
/* Tunning the first level, we can reduce TLSF pool overhead
* in exchange of manage a pool smaller than 4GB
*/
#ifndef CONFIG_SPIRAM
#if (TLSF_MAX_POOL_SIZE <= (256 * 1024))
FL_INDEX_MAX = 18, //Each pool can have up 256KB
#elif (TLSF_MAX_POOL_SIZE <= (512 * 1024))
FL_INDEX_MAX = 19, //Each pool can have up 512KB
#elif (TLSF_MAX_POOL_SIZE <= (16 * 1024 * 1024))
FL_INDEX_MAX = 24, //Each pool can have up 16MB
#else
FL_INDEX_MAX = 23, //Each pool can have up 8MB
#error "Higher TLSF pool sizes should be added for this new config"
#endif
SL_INDEX_COUNT = (1 << SL_INDEX_COUNT_LOG2),
@ -75,3 +89,30 @@ enum tlsf_config
SMALL_BLOCK_SIZE = (1 << FL_INDEX_SHIFT),
};
#else
enum tlsf_config
{
//Specific configuration for host test.
/* log2 of number of linear subdivisions of block sizes. Larger
** values require more memory in the control structure. Values of
** 4 or 5 are typical.
*/
SL_INDEX_COUNT_LOG2 = 5,
/* All allocation sizes and addresses are aligned to 4 bytes. */
ALIGN_SIZE_LOG2 = 2,
ALIGN_SIZE = (1 << ALIGN_SIZE_LOG2),
/* Tunning the first level, we can reduce TLSF pool overhead
* in exchange of manage a pool smaller than 4GB
*/
FL_INDEX_MAX = 30,
SL_INDEX_COUNT = (1 << SL_INDEX_COUNT_LOG2),
FL_INDEX_SHIFT = (SL_INDEX_COUNT_LOG2 + ALIGN_SIZE_LOG2),
FL_INDEX_COUNT = (FL_INDEX_MAX - FL_INDEX_SHIFT + 1),
SMALL_BLOCK_SIZE = (1 << FL_INDEX_SHIFT),
};
#endif

Wyświetl plik

@ -15,6 +15,8 @@
#ifdef ESP_PLATFORM
#include "sdkconfig.h"
#include "soc/soc.h"
#include "soc/soc_caps.h"
#endif
/* Configuration macros for multi-heap */