add __impl_malloc and __impl_free

This commit is contained in:
lyon 2021-11-15 22:10:17 +08:00
parent 4d5f1040c3
commit 2aeeeac05c
3 changed files with 17 additions and 9 deletions

View File

@ -20,6 +20,13 @@ PIKA_WEAK void __platformFree(void* ptr) {
free(ptr);
}
PIKA_WEAK void* __impl_pikaMalloc(size_t size) {
return __platformMalloc(size);
}
PIKA_WEAK void __impl_pikaFree(void* ptrm, size_t size) {
__platformFree(ptrm);
}
PIKA_WEAK void __platformPrintf(char* fmt, ...) {
va_list args;
va_start(args, fmt);

View File

@ -1,7 +1,7 @@
#ifndef __PIKA_PALTFORM__H
#define __PIKA_PALTFORM__H
#include <stdlib.h>
#include <stdint.h>
#include <stdlib.h>
#if defined(__CC_ARM) || defined(__CLANG_ARM) /* ARM Compiler */
#define PIKA_WEAK __attribute__((weak))
@ -17,9 +17,12 @@ void __platformFree(void* ptr);
void __platformEnableIrqHandle(void);
void __platformDisableIrqHandle(void);
void* __impl_pikaMalloc(size_t size);
void __impl_pikaFree(void* ptrm, size_t size);
char* __platformLoadPikaAsm(void);
int32_t __platformSavePikaAsm(char *PikaAsm);
uint8_t __platformAsmIsToFlash(char *pyMultiLine);
int32_t __platformSavePikaAsm(char* PikaAsm);
uint8_t __platformAsmIsToFlash(char* pyMultiLine);
int32_t __platformSavePikaAsmEOF(void);
#endif

View File

@ -13,8 +13,8 @@ uint8_t pika_bitmap[pika_pool_size / pika_aline / 8] = {0};
uint8_t pika_pool_mem[pika_pool_size] = {0};
PikaMemInfo pikaMemInfo = {0};
Pool pikaPool = {.aline = pika_aline,
.bitmap = &pika_bitmap,
.mem = &pika_pool_mem,
.bitmap = pika_bitmap,
.mem = pika_pool_mem,
.size = pika_pool_size};
void* pikaMalloc(uint32_t size) {
@ -23,7 +23,7 @@ void* pikaMalloc(uint32_t size) {
pikaMemInfo.heapUsedMax = pikaMemInfo.heapUsed;
}
__platformDisableIrqHandle();
void* mem = __platformMalloc(size);
void* mem = __impl_pikaMalloc(size);
__platformEnableIrqHandle();
if (NULL == mem) {
__platformPrintf(
@ -36,7 +36,7 @@ void* pikaMalloc(uint32_t size) {
void pikaFree(void* mem, uint32_t size) {
__platformDisableIrqHandle();
__platformFree(mem);
__impl_pikaFree(mem, size);
__platformEnableIrqHandle();
pikaMemInfo.heapUsed -= size;
}
@ -114,8 +114,6 @@ void pool_printBlocks(Pool* pool, uint32_t size_min, uint32_t size_max) {
}
__platformPrintf("\r\n");
}
exit:
__platformPrintf("\r\n");
}
void* pool_malloc(Pool* pool, uint32_t size) {