69 lines
1.1 KiB
C
69 lines
1.1 KiB
C
#ifndef OS_MEM_H__
|
|
#define OS_MEM_H__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
#include "stm32f4xx.h"
|
|
#include "stddef.h"
|
|
|
|
|
|
#ifndef NULL
|
|
#define NULL 0
|
|
#endif
|
|
|
|
|
|
|
|
|
|
//内存管理控制器
|
|
struct _m_mallco_dev
|
|
{
|
|
u8 *membase; //内存池
|
|
u16 *memmap; //内存管理状态表
|
|
u8 memrdy; //内存管理是否就绪
|
|
};
|
|
|
|
|
|
void mymemset(void *s,u8 c,u32 count); //设置内存
|
|
void mymemcpy(void *des,void *src,u32 n);//复制内存
|
|
|
|
int mem_perused(void); //获得内存使用率
|
|
int exmem_perused(void); //获得内存使用率
|
|
int ccm_perused(void) ;
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
//用户调用函数
|
|
|
|
//内存管理初始化
|
|
void mymem_init (void);
|
|
|
|
void myfree(void *ptr); //内存释放
|
|
void *mymalloc(size_t size); //内存分配
|
|
void *myrealloc(void *ptr,u32 size);//重新分配内存
|
|
//分配内存并清零
|
|
void *mycalloc (u32 size);
|
|
//分配内部内存
|
|
void *mymalloc_fast(u32 size) ;
|
|
|
|
void *mymalloc_exm(u32 size) ;
|
|
|
|
//释放CCM内存
|
|
void myfree_ccm(void *ptr) ;
|
|
//分配CCM内存
|
|
void *mymalloc_ccm(u32 size) ;
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|