From 036bd54c79411f6b76342a12e4bada33f3be8ba0 Mon Sep 17 00:00:00 2001 From: etrinh Date: Thu, 1 Apr 2021 09:34:26 +0200 Subject: [PATCH] Tweak for Ram usage (#129) * Add KNX_NO_DEFAULT_UART to avoid default uart assignation for ArduinoPlatforms and derivatives, with associated defines (HWSERIAL_NONE for stm32) to recover RAM from unused RX/TX buffers Remove ArduinoPlatform(HardwareSerial* knxSerial) constructor, seems not useable by KnxFacade * Restore ArduinoPlatform::ArduinoPlatform(HardwareSerial* knxSerial) constructor * revert xxxPlatform(HardwareSerial* s) constructors --- src/arduino_platform.cpp | 9 ++++++++- src/arduino_platform.h | 5 +++-- src/esp32_platform.cpp | 5 ++++- src/esp_platform.cpp | 5 ++++- src/samd_platform.cpp | 5 ++++- src/stm32_platform.cpp | 5 ++++- 6 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/arduino_platform.cpp b/src/arduino_platform.cpp index 169e653..8c58dfb 100644 --- a/src/arduino_platform.cpp +++ b/src/arduino_platform.cpp @@ -6,7 +6,13 @@ #include #endif +#ifndef KNX_NO_PRINT Stream* ArduinoPlatform::SerialDebug = &Serial; +#endif + +ArduinoPlatform::ArduinoPlatform() : _knxSerial(nullptr) +{ +} ArduinoPlatform::ArduinoPlatform(HardwareSerial* knxSerial) : _knxSerial(knxSerial) { @@ -29,7 +35,8 @@ void ArduinoPlatform::fatalError() void ArduinoPlatform::knxUart( HardwareSerial* serial ) { - closeUart(); + if (_knxSerial) + closeUart(); _knxSerial = serial; setupUart(); } diff --git a/src/arduino_platform.h b/src/arduino_platform.h index 33929da..3ef5047 100644 --- a/src/arduino_platform.h +++ b/src/arduino_platform.h @@ -2,11 +2,10 @@ #include "Arduino.h" -extern Stream& _serialDBG; - class ArduinoPlatform : public Platform { public: + ArduinoPlatform(); ArduinoPlatform(HardwareSerial* knxSerial); // basic stuff @@ -29,7 +28,9 @@ class ArduinoPlatform : public Platform void closeSpi() override; int readWriteSpi (uint8_t *data, size_t len) override; #endif +#ifndef KNX_NO_PRINT static Stream* SerialDebug; +#endif protected: HardwareSerial* _knxSerial; diff --git a/src/esp32_platform.cpp b/src/esp32_platform.cpp index cc902dd..ccf74a8 100644 --- a/src/esp32_platform.cpp +++ b/src/esp32_platform.cpp @@ -6,7 +6,10 @@ #include "knx/bits.h" -Esp32Platform::Esp32Platform() : ArduinoPlatform(&Serial1) +Esp32Platform::Esp32Platform() +#ifndef KNX_NO_DEFAULT_UART + : ArduinoPlatform(&Serial1) +#endif { } diff --git a/src/esp_platform.cpp b/src/esp_platform.cpp index f453fea..eb2b545 100644 --- a/src/esp_platform.cpp +++ b/src/esp_platform.cpp @@ -7,7 +7,10 @@ #include "knx/bits.h" -EspPlatform::EspPlatform() : ArduinoPlatform(&Serial) +EspPlatform::EspPlatform() +#ifndef KNX_NO_DEFAULT_UART + : ArduinoPlatform(&Serial) +#endif { } diff --git a/src/samd_platform.cpp b/src/samd_platform.cpp index db94c61..23f4e08 100644 --- a/src/samd_platform.cpp +++ b/src/samd_platform.cpp @@ -6,7 +6,10 @@ #include #include -SamdPlatform::SamdPlatform() : ArduinoPlatform(&Serial1) +SamdPlatform::SamdPlatform() +#ifndef KNX_NO_DEFAULT_UART + : ArduinoPlatform(&Serial1) +#endif { } diff --git a/src/stm32_platform.cpp b/src/stm32_platform.cpp index e05ab34..ea3d405 100644 --- a/src/stm32_platform.cpp +++ b/src/stm32_platform.cpp @@ -4,7 +4,10 @@ #include #include "knx/bits.h" -Stm32Platform::Stm32Platform() : ArduinoPlatform(&Serial2) +Stm32Platform::Stm32Platform() +#ifndef KNX_NO_DEFAULT_UART + : ArduinoPlatform(&Serial2) +#endif { }