From 96f4db32924d826f2e5db7901e45cb550cd829b1 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Fri, 23 Mar 2012 08:20:37 +1300 Subject: Add MemoryFree library Signed-off-by: Mike Beattie --- MemoryFree/MemoryFree.c | 26 ++++++++++++++++++++++++++ MemoryFree/MemoryFree.h | 17 +++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 MemoryFree/MemoryFree.c create mode 100644 MemoryFree/MemoryFree.h diff --git a/MemoryFree/MemoryFree.c b/MemoryFree/MemoryFree.c new file mode 100644 index 0000000..8f7e91e --- /dev/null +++ b/MemoryFree/MemoryFree.c @@ -0,0 +1,26 @@ +/* + * MemoryFree.c + * returns the number of free RAM bytes + */ + +#include "Arduino.h" +#include "MemoryFree.h" + +extern unsigned int __data_start; +extern unsigned int __data_end; +extern unsigned int __bss_start; +extern unsigned int __bss_end; +extern unsigned int __heap_start; +extern void *__brkval; + + +int freeMemory() { + int free_memory; + + if((int)__brkval == 0) + free_memory = ((int)&free_memory) - ((int)&__bss_end); + else + free_memory = ((int)&free_memory) - ((int)__brkval); + + return free_memory; +} diff --git a/MemoryFree/MemoryFree.h b/MemoryFree/MemoryFree.h new file mode 100644 index 0000000..ca79231 --- /dev/null +++ b/MemoryFree/MemoryFree.h @@ -0,0 +1,17 @@ +// memoryFree header + +#ifndef MEMORY_FREE_H +#define MEMORY_FREE_H + +#ifdef __cplusplus +extern "C" { +#endif + +int freeMemory(); + +#ifdef __cplusplus +} +#endif + +#endif + -- cgit v1.2.3