思澈科技软件开发工具包  2.20
Memory Pool Manager

Memory Pool Manager. More...

Data Structures

struct  mem_pool_info_t
 
enum  mem_pool_id_t {
  MEM_POOL_L1_NON_RET = 0,
  MEM_POOL_L1_RET = 1,
  MEM_POOL_CACHE_L1_NON_RET = 2,
  MEM_POOL_CACHE_L1_RET = 3,
  MEM_POOL_L2_NON_RET = 4,
  MEM_POOL_L2_RET = 5,
  MEM_POOL_L2_CACHE_NON_RET = 6,
  MEM_POOL_L2_CACHE_RET = 7,
  MEM_POOL_NUM
}
 
void * mem_pool_alloc (mem_pool_id_t pool_id, size_t size)
 
void * mem_pool_realloc (void *p, size_t new_size)
 
void mem_pool_free (void *p)
 
void * mem_pool_calloc (mem_pool_id_t pool_id, size_t count, size_t size)
 
bool mem_pool_get_info (mem_pool_id_t pool_id, mem_pool_info_t *info)
 
#define MEM_POOL_L1_NON_RET_SIZE   0
 
#define MEM_POOL_L2_NON_RET_SIZE   0
 
#define MEM_POOL_L2_RET_SIZE   0
 
#define MEM_POOL_L2_CACHE_NON_RET_SIZE   0
 
#define MEM_POOL_L2_CACHE_RET_SIZE   0
 
#define ITCM_NON_RET_CODE_SEC(section_name)   SECTION(STRINGIFY(.itcm_non_ret_text_##section_name))
 
#define ITCM_NON_RET_RODATA_SEC(section_name)   SECTION(STRINGIFY(.itcm_non_ret_rodata_##section_name))
 
#define ITCM_NON_RET_BSS_SECT_BEGIN(section_name)   SECTION_ZIDATA_BEGIN(.itcm_non_ret_bss_##section_name)
 
#define ITCM_NON_RET_BSS_SECT_END   SECTION_ZIDATA_END
 
#define ITCM_NON_RET_BSS_SECT(section_name)   SECTION(STRINGIFY(.bss.itcm_non_ret_bss_##section_name))
 
#define ITCM_NON_RET_DATA_SECT(section_name)   SECTION(STRINGIFY(.itcm_non_ret_data_##section_name))
 
#define RETM_CODE_SECT(section_name, func)   SECTION(STRINGIFY(.retm_text_##section_name)) func
 
#define RETM_RODATA_SECT(section_name)   SECTION(STRINGIFY(.retm_rodata_##section_name))
 
#define RETM_BSS_SECT_BEGIN(section_name)   SECTION_ZIDATA_BEGIN(.bss.retm_bss_##section_name)
 
#define RETM_BSS_SECT_END   SECTION_ZIDATA_END
 
#define RETM_BSS_SECT(section_name)   SECTION(STRINGIFY(.bss.retm_bss_##section_name))
 
#define RETM_DATA_SECT(section_name)   SECTION(STRINGIFY(.retm_data_##section_name))
 
#define L1_NON_RET_CODE_SECT(section_name)   SECTION(STRINGIFY(.l1_non_ret_text_##section_name))
 
#define L1_NON_RET_RODATA_SECT(section_name)   SECTION(STRINGIFY(.l1_non_ret_rodata_##section_name))
 
#define L1_NON_RET_BSS_SECT_BEGIN(section_name)   SECTION_ZIDATA_BEGIN(.l1_non_ret_bss_##section_name)
 
#define L1_NON_RET_BSS_SECT_END   SECTION_ZIDATA_END
 
#define L1_NON_RET_BSS_SECT(section_name, var)   var SECTION(STRINGIFY(.bss.l1_non_ret_bss_##section_name))
 
#define L1_NON_RET_DATA_SECT(section_name)   SECTION(STRINGIFY(.l1_non_ret_data_##section_name))
 
#define L1_RET_CODE_SECT(section_name, func)   SECTION(STRINGIFY(.l1_ret_text_##section_name)) func
 
#define L1_RET_RODATA_SECT(section_name)   SECTION(STRINGIFY(.l1_ret_rodata_##section_name))
 
#define L1_RET_BSS_SECT_BEGIN(section_name)   SECTION_ZIDATA_BEGIN(.l1_ret_bss_##section_name)
 
#define L1_RET_BSS_SECT_END   SECTION_ZIDATA_END
 
#define L1_RET_BSS_SECT(section_name, var)   var SECTION(STRINGIFY(.bss.l1_ret_bss_##section_name))
 
#define L1_RET_DATA_SECT(section_name)   SECTION(STRINGIFY(.l1_ret_data_##section_name))
 
#define L2_NON_RET_BSS_SECT_BEGIN(section_name)   SECTION_ZIDATA_BEGIN(.l2_non_ret_bss_##section_name)
 
#define L2_NON_RET_BSS_SECT_END   SECTION_ZIDATA_END
 
#define L2_NON_RET_BSS_SECT(section_name, var)   var SECTION(STRINGIFY(.bss.l2_non_ret_bss_##section_name))
 
#define L2_NON_RET_DATA_SECT(section_name)   SECTION(STRINGIFY(.l2_non_ret_data_##section_name))
 
#define L2_RET_BSS_SECT_BEGIN(section_name)   SECTION_ZIDATA_BEGIN(.l2_ret_bss_##section_name)
 
#define L2_RET_BSS_SECT_END   SECTION_ZIDATA_END
 
#define L2_RET_BSS_SECT(section_name)   SECTION(STRINGIFY(.bss.l2_ret_bss_##section_name))
 
#define L2_RET_DATA_SECT(section_name)   SECTION(STRINGIFY(.l2_ret_data_##section_name))
 
#define L2_CACHE_NON_RET_BSS_SECT_BEGIN(section_name)   SECTION_ZIDATA_BEGIN(.l2_cache_non_ret_bss_##section_name)
 
#define L2_CACHE_NON_RET_BSS_SECT_END   SECTION_ZIDATA_END
 
#define L2_CACHE_NON_RET_BSS_SECT(section_name)   SECTION(STRINGIFY(.bss.l2_cache_non_ret_bss_##section_name))
 
#define L2_CACHE_NON_RET_DATA_SECT(section_name)   SECTION(STRINGIFY(.l2_cache_non_ret_data_##section_name))
 
#define L2_CACHE_RET_BSS_SECT_BEGIN(section_name)   SECTION_ZIDATA_BEGIN(.l2_cache_ret_bss_##section_name)
 
#define L2_CACHE_RET_BSS_SECT_END   SECTION_ZIDATA_END
 
#define L2_CACHE_RET_BSS_SECT(section_name)   SECTION(STRINGIFY(.bss.l2_cache_ret_bss_##section_name))
 
#define L2_CACHE_RET_DATA_SECT(section_name)   SECTION(STRINGIFY(.l2_cache_ret_data_##section_name))
 

Detailed Description

Memory Pool Manager.

Macro Definition Documentation

◆ ITCM_NON_RET_BSS_SECT_BEGIN

#define ITCM_NON_RET_BSS_SECT_BEGIN (   section_name)    SECTION_ZIDATA_BEGIN(.itcm_non_ret_bss_##section_name)

ITCM non-retained bss section begin

◆ ITCM_NON_RET_BSS_SECT_END

#define ITCM_NON_RET_BSS_SECT_END   SECTION_ZIDATA_END

ITCM non-retained bss section end

◆ ITCM_NON_RET_CODE_SEC

#define ITCM_NON_RET_CODE_SEC (   section_name)    SECTION(STRINGIFY(.itcm_non_ret_text_##section_name))

ITCM non-retained code section

◆ ITCM_NON_RET_DATA_SECT

#define ITCM_NON_RET_DATA_SECT (   section_name)    SECTION(STRINGIFY(.itcm_non_ret_data_##section_name))

ITCM non-retained rwdata section

◆ ITCM_NON_RET_RODATA_SEC

#define ITCM_NON_RET_RODATA_SEC (   section_name)    SECTION(STRINGIFY(.itcm_non_ret_rodata_##section_name))

ITCM non-retained rodata section

◆ L1_NON_RET_BSS_SECT_BEGIN

#define L1_NON_RET_BSS_SECT_BEGIN (   section_name)    SECTION_ZIDATA_BEGIN(.l1_non_ret_bss_##section_name)

L1 non-retained bss section begin

◆ L1_NON_RET_BSS_SECT_END

#define L1_NON_RET_BSS_SECT_END   SECTION_ZIDATA_END

L1 non-retained bss section end

◆ L1_NON_RET_CODE_SECT

#define L1_NON_RET_CODE_SECT (   section_name)    SECTION(STRINGIFY(.l1_non_ret_text_##section_name))

L1 non-retained code section

◆ L1_NON_RET_DATA_SECT

#define L1_NON_RET_DATA_SECT (   section_name)    SECTION(STRINGIFY(.l1_non_ret_data_##section_name))

L1 non-retained rwdata section

◆ L1_NON_RET_RODATA_SECT

#define L1_NON_RET_RODATA_SECT (   section_name)    SECTION(STRINGIFY(.l1_non_ret_rodata_##section_name))

L1 non-retained rodata section

◆ L1_RET_BSS_SECT_BEGIN

#define L1_RET_BSS_SECT_BEGIN (   section_name)    SECTION_ZIDATA_BEGIN(.l1_ret_bss_##section_name)

L1 retained bss section begin

◆ L1_RET_BSS_SECT_END

#define L1_RET_BSS_SECT_END   SECTION_ZIDATA_END

L1 retained bss section end

◆ L1_RET_CODE_SECT

#define L1_RET_CODE_SECT (   section_name,
  func 
)    SECTION(STRINGIFY(.l1_ret_text_##section_name)) func

L1 retained code section

◆ L1_RET_DATA_SECT

#define L1_RET_DATA_SECT (   section_name)    SECTION(STRINGIFY(.l1_ret_data_##section_name))

L1 retained rwdata section

◆ L1_RET_RODATA_SECT

#define L1_RET_RODATA_SECT (   section_name)    SECTION(STRINGIFY(.l1_ret_rodata_##section_name))

L1 retained rodata section

◆ L2_CACHE_NON_RET_BSS_SECT_BEGIN

#define L2_CACHE_NON_RET_BSS_SECT_BEGIN (   section_name)    SECTION_ZIDATA_BEGIN(.l2_cache_non_ret_bss_##section_name)

L2 cachable non-retained bss section begin

◆ L2_CACHE_NON_RET_BSS_SECT_END

#define L2_CACHE_NON_RET_BSS_SECT_END   SECTION_ZIDATA_END

L2 cachable non-retained bss section

◆ L2_CACHE_NON_RET_DATA_SECT

#define L2_CACHE_NON_RET_DATA_SECT (   section_name)    SECTION(STRINGIFY(.l2_cache_non_ret_data_##section_name))

L2 cachable non-retained rwdata section

◆ L2_CACHE_RET_BSS_SECT_BEGIN

#define L2_CACHE_RET_BSS_SECT_BEGIN (   section_name)    SECTION_ZIDATA_BEGIN(.l2_cache_ret_bss_##section_name)

L2 cachable retained bss section begin

◆ L2_CACHE_RET_BSS_SECT_END

#define L2_CACHE_RET_BSS_SECT_END   SECTION_ZIDATA_END

L2 cachable retained bss section end

◆ L2_CACHE_RET_DATA_SECT

#define L2_CACHE_RET_DATA_SECT (   section_name)    SECTION(STRINGIFY(.l2_cache_ret_data_##section_name))

L2 cachable retained rwdata section

◆ L2_NON_RET_BSS_SECT_BEGIN

#define L2_NON_RET_BSS_SECT_BEGIN (   section_name)    SECTION_ZIDATA_BEGIN(.l2_non_ret_bss_##section_name)

L2 non-retained bss section begin

◆ L2_NON_RET_BSS_SECT_END

#define L2_NON_RET_BSS_SECT_END   SECTION_ZIDATA_END

L2 non-retained bss section end

◆ L2_NON_RET_DATA_SECT

#define L2_NON_RET_DATA_SECT (   section_name)    SECTION(STRINGIFY(.l2_non_ret_data_##section_name))

L2 non-retained rwdata section

◆ L2_RET_BSS_SECT_BEGIN

#define L2_RET_BSS_SECT_BEGIN (   section_name)    SECTION_ZIDATA_BEGIN(.l2_ret_bss_##section_name)

L2 retained bss section begin

◆ L2_RET_BSS_SECT_END

#define L2_RET_BSS_SECT_END   SECTION_ZIDATA_END

L2 retained bss section end

◆ L2_RET_DATA_SECT

#define L2_RET_DATA_SECT (   section_name)    SECTION(STRINGIFY(.l2_ret_data_##section_name))

L2 retained rwdata section

◆ RETM_BSS_SECT_BEGIN

#define RETM_BSS_SECT_BEGIN (   section_name)    SECTION_ZIDATA_BEGIN(.bss.retm_bss_##section_name)

retention memory bss section begin

◆ RETM_BSS_SECT_END

#define RETM_BSS_SECT_END   SECTION_ZIDATA_END

retention memory bss section end

◆ RETM_CODE_SECT

#define RETM_CODE_SECT (   section_name,
  func 
)    SECTION(STRINGIFY(.retm_text_##section_name)) func

code section in retention memory

◆ RETM_DATA_SECT

#define RETM_DATA_SECT (   section_name)    SECTION(STRINGIFY(.retm_data_##section_name))

rwdata section in retention memory

◆ RETM_RODATA_SECT

#define RETM_RODATA_SECT (   section_name)    SECTION(STRINGIFY(.retm_rodata_##section_name))

rodata section in retention memory

Enumeration Type Documentation

◆ mem_pool_id_t

memory pool id

Fallback policy: L1_NON_RET -> L1_RET L2_CACHE_RET -> L2_RET -> L1_RET L2_CACHE_NON_RET -> L2_NON_RET -> L1_NON_RET