71 lines
1.8 KiB
C
71 lines
1.8 KiB
C
|
#ifndef __MALLOC_H
|
|||
|
#define __MALLOC_H
|
|||
|
|
|||
|
#include "stm32h7xx.h"
|
|||
|
|
|||
|
#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>
|
|||
|
|
|||
|
#define SRAMBANK 2 //<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 32 //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>СΪ32<33>ֽ<EFBFBD>
|
|||
|
#define MEM1_MAX_SIZE 40*1024 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> 40K
|
|||
|
#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>ⲿSRAM<41><4D><EFBFBD><EFBFBD>
|
|||
|
#define MEM2_BLOCK_SIZE 32 //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>СΪ32<33>ֽ<EFBFBD>
|
|||
|
#define MEM2_MAX_SIZE 960 *1024 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>960K
|
|||
|
#define MEM2_ALLOC_TABLE_SIZE MEM2_MAX_SIZE/MEM2_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 ) ( uint8_t ); //<2F><>ʼ<EFBFBD><CABC>
|
|||
|
uint8_t ( * perused ) ( uint8_t ); //<2F>ڴ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>
|
|||
|
uint8_t * membase [ SRAMBANK ]; //<2F>ڴ<EFBFBD><DAB4><EFBFBD> <20><><EFBFBD><EFBFBD>SRAMBANK<4E><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
|||
|
uint16_t * memmap [ SRAMBANK ]; //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
|
|||
|
uint8_t 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,uint8_t c,uint32_t count); //<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
|||
|
void mymemcpy(void *des,void *src,uint32_t n); //<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
|||
|
void my_mem_init(uint8_t memx); //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>/<2F>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
uint32_t my_mem_malloc(uint8_t memx,uint32_t size); //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>(<28>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
uint8_t my_mem_free(uint8_t memx,uint32_t offset); //<2F>ڴ<EFBFBD><DAB4>ͷ<EFBFBD>(<28>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
uint8_t my_mem_perused(uint8_t 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(uint8_t memx,void *ptr); //<2F>ڴ<EFBFBD><DAB4>ͷ<EFBFBD>(<28>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>)
|
|||
|
void *mymalloc(uint8_t memx,uint32_t size); //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>(<28>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>)
|
|||
|
void *myrealloc(uint8_t memx,void *ptr,uint32_t size); //<2F><><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>ڴ<EFBFBD>(<28>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#endif
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|