From 56fa127bb75a38296b3f21264b1eda7fdca62fa4 Mon Sep 17 00:00:00 2001 From: Bertrand Lemasle Date: Sat, 4 Aug 2018 21:17:55 +1200 Subject: [PATCH] Using a PROGMEM string for sms buffer init. Side effects : avoid gcc optimization that declares the buffer as a global variable, which overflow the available SRAM --- GpsTracker/Core.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/GpsTracker/Core.cpp b/GpsTracker/Core.cpp index 60384ca..ecb9f37 100644 --- a/GpsTracker/Core.cpp +++ b/GpsTracker/Core.cpp @@ -54,7 +54,7 @@ namespace core { uint8_t notifyFailures(PositionEntryMetadata &metadata) { SIM808RegistrationStatus networkStatus; - char buffer[SMS_BUFFER_SIZE] = "Alerts !\n"; + char buffer[SMS_BUFFER_SIZE]; const __FlashStringHelper * backupFailureString = F(" Backup battery failure ?\n"); uint8_t triggered = alerts::getTriggered(metadata); @@ -65,6 +65,7 @@ namespace core { if (!network::isAvailable(networkStatus.stat)) return NO_ALERTS_NOTIFIED; + details::appendToSmsBuffer(buffer, PSTR("Alerts !\n")); if (bitRead(triggered, ALERT_BATTERY_LEVEL_1) || bitRead(triggered, ALERT_BATTERY_LEVEL_2)) { details::appendToSmsBuffer(buffer, PSTR("- Battery at %d%%.\n"), metadata.batteryLevel); }