diff --git a/MemoryFree.cpp b/MemoryFree.cpp index bf57184..e7f0f0b 100644 --- a/MemoryFree.cpp +++ b/MemoryFree.cpp @@ -4,6 +4,8 @@ #include #endif +#include + extern unsigned int __heap_start; extern void *__brkval; @@ -39,13 +41,13 @@ int freeListSize() int freeMemory() { int free_memory; - if ((int)__brkval == 0) + if ((intptr_t)__brkval == 0) { - free_memory = ((int)&free_memory) - ((int)&__heap_start); + free_memory = ((intptr_t)&free_memory) - ((intptr_t)&__heap_start); } else { - free_memory = ((int)&free_memory) - ((int)__brkval); + free_memory = ((intptr_t)&free_memory) - ((intptr_t)__brkval); free_memory += freeListSize(); } return free_memory; diff --git a/README.md b/README.md index 527f486..a48b462 100644 --- a/README.md +++ b/README.md @@ -3,3 +3,4 @@ This is the excellent MemoryFree library from http://www.arduino.cc/playground/C I am hosting it here so there is a quick and easy way to pull it down. (20 Mar 2015) Repository updated with code from http://playground.arduino.cc/code/AvailableMemory +(17 Jan 2021) Replaced 'int' type with 'intptr_t' type in pointer arithmetic for compiling without -fpermisive