diff options
author | Mike Beattie <mike@ethernal.org> | 2012-03-23 08:20:37 +1300 |
---|---|---|
committer | Mike Beattie <mike@ethernal.org> | 2012-03-23 08:20:37 +1300 |
commit | 96f4db32924d826f2e5db7901e45cb550cd829b1 (patch) | |
tree | cc6611707e8f13f97971b86afda5c1551d187db5 | |
parent | 9ca1936c12437041ea8b3f96c1557aa1ed66930f (diff) |
Add MemoryFree library
Signed-off-by: Mike Beattie <mike@ethernal.org>
-rw-r--r-- | MemoryFree/MemoryFree.c | 26 | ||||
-rw-r--r-- | MemoryFree/MemoryFree.h | 17 |
2 files changed, 43 insertions, 0 deletions
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
+
|