| @@ -33,22 +33,25 @@ | |||
| #define NOINLINE __attribute__((noinline,unused)) | |||
| #define UNUSEDOK __attribute__((unused)) | |||
| //------------------------------------------------------------------------------ | |||
| // this unused FreeRam() function can cause compatibility issues | |||
| // when __brkval isn't defined the way it expects | |||
| // | |||
| /** Return the number of bytes currently free in RAM. */ | |||
| static UNUSEDOK int FreeRam(void) { | |||
| extern int __bss_end; | |||
| extern int* __brkval; | |||
| int free_memory; | |||
| if (reinterpret_cast<int>(__brkval) == 0) { | |||
| // if no heap use from end of bss section | |||
| free_memory = reinterpret_cast<int>(&free_memory) | |||
| - reinterpret_cast<int>(&__bss_end); | |||
| } else { | |||
| // use from top of stack to heap | |||
| free_memory = reinterpret_cast<int>(&free_memory) | |||
| - reinterpret_cast<int>(__brkval); | |||
| } | |||
| return free_memory; | |||
| } | |||
| //static UNUSEDOK int FreeRam(void) { | |||
| // extern int __bss_end; | |||
| // extern int* __brkval; | |||
| // int free_memory; | |||
| // if (reinterpret_cast<int>(__brkval) == 0) { | |||
| // // if no heap use from end of bss section | |||
| // free_memory = reinterpret_cast<int>(&free_memory) | |||
| // - reinterpret_cast<int>(&__bss_end); | |||
| // } else { | |||
| // // use from top of stack to heap | |||
| // free_memory = reinterpret_cast<int>(&free_memory) | |||
| // - reinterpret_cast<int>(__brkval); | |||
| // } | |||
| // return free_memory; | |||
| //} | |||
| //------------------------------------------------------------------------------ | |||
| /** | |||
| * %Print a string in flash memory to the serial port. | |||