37 lines
689 B
C
Raw Normal View History

2021-09-08 21:25:52 +08:00
#include "dataMemory.h"
#include <stdint.h>
#include <stdlib.h>
PikaMemInfo pikaMemInfo = {0};
2021-09-10 17:49:56 +08:00
void* pikaMalloc(uint32_t size) {
pikaMemInfo.heapUsed += size;
if (pikaMemInfo.heapUsedMax < pikaMemInfo.heapUsed) {
pikaMemInfo.heapUsedMax = pikaMemInfo.heapUsed;
}
void* mem = malloc(size);
if (NULL == mem) {
printf("[error]: No heap space!\r\n");
while (1) {
2021-09-08 21:25:52 +08:00
}
2021-09-10 17:49:56 +08:00
}
return mem;
2021-09-08 21:25:52 +08:00
}
2021-09-10 17:49:56 +08:00
void pikaFree(void* mem, uint32_t size) {
free(mem);
pikaMemInfo.heapUsed -= size;
2021-09-08 21:25:52 +08:00
}
2021-09-10 17:49:56 +08:00
uint16_t pikaMemNow(void) {
return pikaMemInfo.heapUsed;
2021-09-08 21:25:52 +08:00
}
2021-09-10 17:49:56 +08:00
uint16_t pikaMemMax(void) {
return pikaMemInfo.heapUsedMax;
2021-09-08 21:25:52 +08:00
}
2021-09-10 17:49:56 +08:00
void pikaMemMaxReset(void) {
pikaMemInfo.heapUsedMax = 0;
2021-09-08 21:25:52 +08:00
}