55 lines
1.1 KiB
C
55 lines
1.1 KiB
C
#ifndef OS_MEM_H__
|
|
#define OS_MEM_H__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "stddef.h"
|
|
#include "stdint.h"
|
|
|
|
#ifndef NULL
|
|
#define NULL 0
|
|
#endif
|
|
|
|
// 内存管理控制器
|
|
struct _m_mallco_dev {
|
|
uint8_t *membase; // 内存池
|
|
uint16_t *memmap; // 内存管理状态表
|
|
uint8_t memrdy; // 内存管理是否就绪
|
|
};
|
|
|
|
void mymemset(void *s, uint8_t c, uint32_t count); // 设置内存
|
|
void mymemcpy(void *des, void *src, uint32_t 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, uint32_t size); // 重新分配内存
|
|
// 分配内存并清零
|
|
void *mycalloc(uint32_t size);
|
|
// 分配内部内存
|
|
void *mymalloc_fast(uint32_t size);
|
|
|
|
void *mymalloc_exm(uint32_t size);
|
|
|
|
// 释放CCM内存
|
|
void myfree_ccm(void *ptr);
|
|
// 分配CCM内存
|
|
void *mymalloc_ccm(uint32_t size);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|