Fix regressions affecting compilation

This fixes two regressions, caused by #1167 and #1191 .
2.0.x
Scott Lahteine 10 years ago
parent 3d1da45f3e
commit 2ec2bf1564

@ -26,21 +26,24 @@
/** Amount of free RAM /** Amount of free RAM
* \return The number of free bytes. * \return The number of free bytes.
*/ */
#ifdef __arm__
extern "C" char* sbrk(int incr);
int SdFatUtil::FreeRam() { int SdFatUtil::FreeRam() {
extern int __bss_end; char top;
extern int* __brkval; return &top - reinterpret_cast<char*>(sbrk(0));
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;
} }
#else // __arm__
extern char *__brkval;
extern char __bss_end;
/** Amount of free RAM
* \return The number of free bytes.
*/
int SdFatUtil::FreeRam() {
char top;
return __brkval ? &top - __brkval : &top - &__bss_end;
}
#endif // __arm
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
/** %Print a string in flash memory. /** %Print a string in flash memory.
* *

@ -337,7 +337,7 @@ static void lcd_implementation_drawmenu_generic(uint8_t row, const char* pstr, c
u8g.setColorIndex(1); // restore settings to black on white u8g.setColorIndex(1); // restore settings to black on white
} }
static void _drawmenu_setting_edit_generic(uint8_t row, const char* pstr, char pre_char, char* data, bool pgm) { static void _drawmenu_setting_edit_generic(uint8_t row, const char* pstr, char pre_char, const char* data, bool pgm) {
char c; char c;
uint8_t n = LCD_WIDTH - 1 - 2 - (pgm ? strlen_P(data) : strlen(data)); uint8_t n = LCD_WIDTH - 1 - 2 - (pgm ? strlen_P(data) : strlen(data));

Loading…
Cancel
Save