106 lines
2.8 KiB
C
Raw Permalink Normal View History

2021-07-28 13:15:22 +08:00
#ifndef _MALLOC_H
#define _MALLOC_H
#include "sys.h"
//////////////////////////////////////////////////////////////////////////////////
/*************************************************************************/
//<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//STM32H7<48><37><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>-HAL<41><EFBFBD><E2BAAF><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/*************************************************************************/
//////////////////////////////////////////////////////////////////////////////////
#ifndef NULL
#define NULL 0
#endif
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
#define SRAMIN 0 //<2F>ڲ<EFBFBD><DAB2>ڴ<EFBFBD><DAB4><EFBFBD>
#define SRAMEX 1 //<2F>ⲿ<EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>(SDRAM)
#define SRAMDTCM 2 //DTCM<43>ڴ<EFBFBD><DAB4><EFBFBD>(<28>˲<EFBFBD><CBB2><EFBFBD>SRAM<41><4D><EFBFBD><EFBFBD>CPU<50><55><EFBFBD>Է<EFBFBD><D4B7><EFBFBD>!!!)
#define SRAMBANK 3 //<2F><><EFBFBD><EFBFBD>֧<EFBFBD>ֵ<EFBFBD>SRAM<41><4D><EFBFBD><EFBFBD>.
//mem1<6D>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>趨.mem1<6D><31>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>SRAM<41><4D><EFBFBD><EFBFBD>.
#define MEM1_BLOCK_SIZE 64 //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>СΪ64<36>ֽ<EFBFBD>
#define MEM1_MAX_SIZE 256*1024 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> 256K
#define MEM1_ALLOC_TABLE_SIZE MEM1_MAX_SIZE/MEM1_BLOCK_SIZE //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>С
//mem2<6D>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>趨.mem2<6D><32><EFBFBD>ڴ<EFBFBD><DAB4>ش<EFBFBD><D8B4><EFBFBD><EFBFBD>ⲿSDRAM<41><4D><EFBFBD><EFBFBD>
#define MEM2_BLOCK_SIZE 64 //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>СΪ64<36>ֽ<EFBFBD>
#define MEM2_MAX_SIZE 1 *1024 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>28912K
#define MEM2_ALLOC_TABLE_SIZE MEM2_MAX_SIZE/MEM2_BLOCK_SIZE //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>С
//mem3<6D>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>趨.mem3<6D><33><EFBFBD><EFBFBD>CCM,<2C><><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD>DTCM(<28>ر<EFBFBD>ע<EFBFBD><D7A2>,<2C>ⲿ<EFBFBD><E2B2BF>SRAM,<2C><>CPU<50><55><EFBFBD>Է<EFBFBD><D4B7><EFBFBD>!!)
#define MEM3_BLOCK_SIZE 64 //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>СΪ64<36>ֽ<EFBFBD>
#define MEM3_MAX_SIZE 60 *1024 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>60K
#define MEM3_ALLOC_TABLE_SIZE MEM3_MAX_SIZE/MEM3_BLOCK_SIZE //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>С
//<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct _m_mallco_dev
{
void (*init)(u8); //<2F><>ʼ<EFBFBD><CABC>
u16 (*perused)(u8); //<2F>ڴ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>
u8 *membase[SRAMBANK]; //<2F>ڴ<EFBFBD><DAB4><EFBFBD> <20><><EFBFBD><EFBFBD>SRAMBANK<4E><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
u32 *memmap[SRAMBANK]; //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
u8 memrdy[SRAMBANK]; //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
};
extern struct _m_mallco_dev mallco_dev; //<2F><>mallco.c<><63><EFBFBD><EFBFBD><E6B6A8>
void mymemset(void *s,u8 c,u32 count); //<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
void mymemcpy(void *des,void *src,u32 n);//<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
void my_mem_init(u8 memx); //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>/<2F>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>)
u32 my_mem_malloc(u8 memx,u32 size); //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>(<28>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>)
u8 my_mem_free(u8 memx,u32 offset); //<2F>ڴ<EFBFBD><DAB4>ͷ<EFBFBD>(<28>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>)
u16 my_mem_perused(u8 memx) ; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>(<28><>/<2F>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>)
////////////////////////////////////////////////////////////////////////////////
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>
void myfree(u8 memx,void *ptr); //<2F>ڴ<EFBFBD><DAB4>ͷ<EFBFBD>(<28>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>)
void *mymalloc(u8 memx,u32 size); //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>(<28>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>)
void *myrealloc(u8 memx,void *ptr,u32 size);//<2F><><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>ڴ<EFBFBD>(<28>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>)
#endif
/*************************************************************************/
//<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//STM32H7<48><37><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>-HAL<41><EFBFBD><E2BAAF><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/*************************************************************************/