106 lines
2.8 KiB
C
106 lines
2.8 KiB
C
|
|
#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
|
|||
|
|
|
|||
|
|
|
|||
|
|
/*************************************************************************/
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|