diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/arch/msp430fr5994lp/Makefile.inc | 2 | ||||
-rw-r--r-- | src/lib/mpmalloc.cc | 28 |
2 files changed, 29 insertions, 1 deletions
diff --git a/src/arch/msp430fr5994lp/Makefile.inc b/src/arch/msp430fr5994lp/Makefile.inc index d82abc4..2dd0ff4 100644 --- a/src/arch/msp430fr5994lp/Makefile.inc +++ b/src/arch/msp430fr5994lp/Makefile.inc @@ -10,7 +10,7 @@ COMMON_FLAGS += -mcpu=${CPU} -mmcu=${MCU} -DMULTIPASS_ARCH_msp430fr5994lp COMMON_FLAGS += -DMULTIPASS_ARCH_HAS_I2C ifneq (${msp430_large}, ) - COMMON_FLAGS += -mcode-region=either -mlarge + COMMON_FLAGS += -mcode-region=either -mlarge -DADDR_20BIT endif # LTO seems to be broken. diff --git a/src/lib/mpmalloc.cc b/src/lib/mpmalloc.cc new file mode 100644 index 0000000..db4a87a --- /dev/null +++ b/src/lib/mpmalloc.cc @@ -0,0 +1,28 @@ +#include <stdlib.h> +#include "driver/stdout.h" +#include "lib/mpmalloc.h" + +void* mpcalloc(size_t nmemb, size_t size) { + void* ret = calloc(nmemb, size); +#ifdef ADDR_20BIT + kout << "calloc:" << dec << (uint32_t)nmemb << "x" << (uint32_t)size << "@" << ret << endl; +#else + kout << "calloc:" << dec << nmemb << "x" << size << "@" << ret << endl; +#endif + return ret; +} + +void* mpmalloc(size_t size) { + void* ret = malloc(size); +#ifdef ADDR_20BIT + kout << "malloc:" << dec << (uint32_t)size << "@" << ret << endl; +#else + kout << "malloc:" << dec << size << "@" << ret << endl; +#endif + return ret; +} + +void mpfree(void* addr) { + kout << "free:" << addr << endl; + free(addr); +} |