From 7de4a4693e69538994926c4b6460f92151e2ad5e Mon Sep 17 00:00:00 2001 From: jgromes Date: Fri, 15 Sep 2023 18:10:47 +0200 Subject: [PATCH] [HAL] Disable EEPROM on Arduino Due --- src/ArduinoHal.cpp | 40 ++++++++++++++++++------------- src/BuildOpt.h | 1 + src/protocols/LoRaWAN/LoRaWAN.cpp | 4 ++++ 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/src/ArduinoHal.cpp b/src/ArduinoHal.cpp index 69b8d90d..b1d4a92f 100644 --- a/src/ArduinoHal.cpp +++ b/src/ArduinoHal.cpp @@ -2,7 +2,9 @@ #if defined(RADIOLIB_BUILD_ARDUINO) +#if !defined(RADIOLIB_EEPROM_UNSUPPORTED) #include +#endif ArduinoHal::ArduinoHal(): RadioLibHal(INPUT, OUTPUT, LOW, HIGH, RISING, FALLING), spi(&RADIOLIB_DEFAULT_SPI), initInterface(true) {} @@ -101,27 +103,31 @@ void inline ArduinoHal::spiEnd() { } void ArduinoHal::readPersistentStorage(uint32_t addr, uint8_t* buff, size_t len) { - #if defined(RADIOLIB_ESP32) - EEPROM.begin(RADIOLIB_HAL_PERSISTENT_STORAGE_SIZE); - #endif - for(size_t i = 0; i < len; i++) { - buff[i] = EEPROM.read(addr + i); - } - #if defined(RADIOLIB_ESP32) - EEPROM.end(); + #if !defined(RADIOLIB_EEPROM_UNSUPPORTED) + #if defined(RADIOLIB_ESP32) + EEPROM.begin(RADIOLIB_HAL_PERSISTENT_STORAGE_SIZE); + #endif + for(size_t i = 0; i < len; i++) { + buff[i] = EEPROM.read(addr + i); + } + #if defined(RADIOLIB_ESP32) + EEPROM.end(); + #endif #endif } void ArduinoHal::writePersistentStorage(uint32_t addr, uint8_t* buff, size_t len) { - #if defined(RADIOLIB_ESP32) - EEPROM.begin(RADIOLIB_HAL_PERSISTENT_STORAGE_SIZE); - #endif - for(size_t i = 0; i < len; i++) { - EEPROM.write(addr + i, buff[i]); - } - #if defined(RADIOLIB_ESP32) - EEPROM.commit(); - EEPROM.end(); + #if !defined(RADIOLIB_EEPROM_UNSUPPORTED) + #if defined(RADIOLIB_ESP32) + EEPROM.begin(RADIOLIB_HAL_PERSISTENT_STORAGE_SIZE); + #endif + for(size_t i = 0; i < len; i++) { + EEPROM.write(addr + i, buff[i]); + } + #if defined(RADIOLIB_ESP32) + EEPROM.commit(); + EEPROM.end(); + #endif #endif } diff --git a/src/BuildOpt.h b/src/BuildOpt.h index 82c777a1..22a1110e 100644 --- a/src/BuildOpt.h +++ b/src/BuildOpt.h @@ -117,6 +117,7 @@ // Arduino Due #define RADIOLIB_PLATFORM "Arduino Due" #define RADIOLIB_TONE_UNSUPPORTED + #define RADIOLIB_EEPROM_UNSUPPORTED #elif (defined(NRF52832_XXAA) || defined(NRF52840_XXAA)) && !defined(ARDUINO_ARDUINO_NANO33BLE) // Adafruit nRF52 boards diff --git a/src/protocols/LoRaWAN/LoRaWAN.cpp b/src/protocols/LoRaWAN/LoRaWAN.cpp index 679d76b6..56fe4ea0 100644 --- a/src/protocols/LoRaWAN/LoRaWAN.cpp +++ b/src/protocols/LoRaWAN/LoRaWAN.cpp @@ -7,6 +7,10 @@ // flag to indicate whether we have received a downlink static volatile bool downlinkReceived = false; +#if defined(RADIOLIB_EEPROM_UNSUPPORTED) + #warning "Persistent storage not supported!" +#endif + // interrupt service routine to handle downlinks automatically #if defined(ESP8266) || defined(ESP32) IRAM_ATTR