STM32H750XB_RT-THREAD/25-FMC—扩展外部NAND/User/malloc/malloc.h

71 lines
1.8 KiB
C
Raw Permalink Normal View History

2025-07-21 06:34:29 +00:00
#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