From ed65605edc5c1376947a34723b9c750400b5a028 Mon Sep 17 00:00:00 2001 From: Damien Date: Sun, 13 Oct 2013 00:42:20 +0100 Subject: Inital commit of stm32f4xx framework. --- stm/malloc0.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 stm/malloc0.c (limited to 'stm/malloc0.c') diff --git a/stm/malloc0.c b/stm/malloc0.c new file mode 100644 index 000000000..55c1ae804 --- /dev/null +++ b/stm/malloc0.c @@ -0,0 +1,38 @@ +#include +#include "std.h" + +static uint32_t mem = 0; + +void *malloc(size_t n) { + if (mem == 0) { + mem = 0x20008000; // need to use big ram block so we can execute code from it; start up a bit in case that's where bss is...? + } + void *ptr = (void*)mem; + mem = (mem + n + 3) & (~3); + if (mem > 0x20000000 + 0x18000) { + void __fatal_error(const char*); + __fatal_error("out of memory"); + } + return ptr; +} + +void free(void *ptr) { +} + +void *calloc(size_t sz, size_t n) { + char *ptr = malloc(sz * n); + for (int i = 0; i < sz * n; i++) { + ptr[i] = 0; + } + return ptr; +} + +void *realloc(void *ptr, size_t n) { + return malloc(n); +} + +void __assert_func() { + printf("\nASSERT FAIL!"); + for (;;) { + } +} -- cgit v1.2.3