mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
add __impl_malloc and __impl_free
This commit is contained in:
parent
4d5f1040c3
commit
2aeeeac05c
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user