From e5a334b83a6c2399f11b920247625cbd2d6eef56 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 3 Dec 2014 05:19:42 -0800 Subject: [PATCH 1/2] Use SdFatUtil::FreeRam() for freeMemory() if there --- Marlin/Marlin_main.cpp | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 616b7a1906..08f874c41e 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -402,22 +402,27 @@ void serial_echopair_P(const char *s_P, double v) void serial_echopair_P(const char *s_P, unsigned long v) { serialprintPGM(s_P); SERIAL_ECHO(v); } -extern "C"{ - extern unsigned int __bss_end; - extern unsigned int __heap_start; - extern void *__brkval; +#ifdef SDSUPPORT + #include "SdFatUtil.h" + int freeMemory() { return SdFatUtil::FreeRam(); } +#else + extern "C" { + extern unsigned int __bss_end; + extern unsigned int __heap_start; + extern void *__brkval; - int freeMemory() { - int free_memory; + 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); + if ((int)__brkval == 0) + free_memory = ((int)&free_memory) - ((int)&__bss_end); + else + free_memory = ((int)&free_memory) - ((int)__brkval); - return free_memory; + return free_memory; + } } -} +#endif //!SDSUPPORT //adds an command to the main command buffer //thats really done in a non-safe way. From ae1a698263c9f0bb3870e77c2176334bbc494a99 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 3 Dec 2014 05:19:42 -0800 Subject: [PATCH 2/2] Use SdFatUtil::FreeRam() for freeMemory() if there --- Marlin/Marlin_main.cpp | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 616b7a1906..08f874c41e 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -402,22 +402,27 @@ void serial_echopair_P(const char *s_P, double v) void serial_echopair_P(const char *s_P, unsigned long v) { serialprintPGM(s_P); SERIAL_ECHO(v); } -extern "C"{ - extern unsigned int __bss_end; - extern unsigned int __heap_start; - extern void *__brkval; +#ifdef SDSUPPORT + #include "SdFatUtil.h" + int freeMemory() { return SdFatUtil::FreeRam(); } +#else + extern "C" { + extern unsigned int __bss_end; + extern unsigned int __heap_start; + extern void *__brkval; - int freeMemory() { - int free_memory; + 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); + if ((int)__brkval == 0) + free_memory = ((int)&free_memory) - ((int)&__bss_end); + else + free_memory = ((int)&free_memory) - ((int)__brkval); - return free_memory; + return free_memory; + } } -} +#endif //!SDSUPPORT //adds an command to the main command buffer //thats really done in a non-safe way.