diff --git a/Marlin/src/HAL/DUE/HAL.h b/Marlin/src/HAL/DUE/HAL.h index 97b94b5db234ee05b446a8ecdfa0b53487779e58..90b6fabc050e7848c07884dad0527e048112cc71 100644 --- a/Marlin/src/HAL/DUE/HAL.h +++ b/Marlin/src/HAL/DUE/HAL.h @@ -94,7 +94,6 @@ #endif #endif - #include "MarlinSerial.h" #include "MarlinSerialUSB.h" diff --git a/Marlin/src/HAL/DUE/MarlinSerial.cpp b/Marlin/src/HAL/DUE/MarlinSerial.cpp index d827def4225115dba7ab410863c9aad2ceb611f8..d114c75989c44a403aa7bb9331ee801168782c76 100644 --- a/Marlin/src/HAL/DUE/MarlinSerial.cpp +++ b/Marlin/src/HAL/DUE/MarlinSerial.cpp @@ -629,23 +629,13 @@ void MarlinSerial<Cfg>::printFloat(double number, uint8_t digits) { // If not using the USB port as serial port #if SERIAL_PORT >= 0 - - // Preinstantiate - template class MarlinSerial<MarlinSerialCfg<SERIAL_PORT>>; - - // Instantiate - MarlinSerial<MarlinSerialCfg<SERIAL_PORT>> customizedSerial1; - + template class MarlinSerial<MarlinSerialCfg<SERIAL_PORT>>; // Define + MarlinSerial<MarlinSerialCfg<SERIAL_PORT>> customizedSerial1; // Instantiate #endif -#ifdef SERIAL_PORT_2 - - // Preinstantiate - template class MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>>; - - // Instantiate - MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>> customizedSerial2; - +#if defined(SERIAL_PORT_2) && SERIAL_PORT_2 >= 0 + template class MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>>; // Define + MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>> customizedSerial2; // Instantiate #endif #endif // ARDUINO_ARCH_SAM diff --git a/Marlin/src/HAL/DUE/MarlinSerial.h b/Marlin/src/HAL/DUE/MarlinSerial.h index eb26a5644dd90e66cbf466368d095bf8f3b7f05d..fa6a2c7d157a10694d0b4d633294ea7dda19763c 100644 --- a/Marlin/src/HAL/DUE/MarlinSerial.h +++ b/Marlin/src/HAL/DUE/MarlinSerial.h @@ -172,13 +172,9 @@ struct MarlinSerialCfg { }; #if SERIAL_PORT >= 0 - extern MarlinSerial<MarlinSerialCfg<SERIAL_PORT>> customizedSerial1; +#endif -#endif // SERIAL_PORT >= 0 - -#ifdef SERIAL_PORT_2 - +#if defined(SERIAL_PORT_2) && SERIAL_PORT_2 >= 0 extern MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>> customizedSerial2; - #endif diff --git a/Marlin/src/HAL/DUE/MarlinSerialUSB.cpp b/Marlin/src/HAL/DUE/MarlinSerialUSB.cpp index 41ffb52ba112e17fc66c1b3a2d0dba7ed713f7fd..7a020bbaf0b1a157bc0541bac7e5c8d58504c571 100644 --- a/Marlin/src/HAL/DUE/MarlinSerialUSB.cpp +++ b/Marlin/src/HAL/DUE/MarlinSerialUSB.cpp @@ -29,7 +29,7 @@ #include "../../inc/MarlinConfig.h" -#if SERIAL_PORT == -1 +#if HAS_USB_SERIAL #include "MarlinSerialUSB.h" @@ -283,8 +283,12 @@ void MarlinSerialUSB::printFloat(double number, uint8_t digits) { } // Preinstantiate -MarlinSerialUSB customizedSerial1; - -#endif // SERIAL_PORT == -1 +#if SERIAL_PORT == -1 + MarlinSerialUSB customizedSerial1; +#endif +#if SERIAL_PORT_2 == -1 + MarlinSerialUSB customizedSerial2; +#endif +#endif // HAS_USB_SERIAL #endif // ARDUINO_ARCH_SAM diff --git a/Marlin/src/HAL/DUE/MarlinSerialUSB.h b/Marlin/src/HAL/DUE/MarlinSerialUSB.h index d8b051d37e01984faf50b294a4ec38e09d364dea..9aece901b12bd1eb596542ac60eea38300706db1 100644 --- a/Marlin/src/HAL/DUE/MarlinSerialUSB.h +++ b/Marlin/src/HAL/DUE/MarlinSerialUSB.h @@ -28,7 +28,7 @@ #include "../../inc/MarlinConfig.h" -#if SERIAL_PORT == -1 +#if HAS_USB_SERIAL #include <WString.h> @@ -88,6 +88,12 @@ private: static void printFloat(double, uint8_t); }; -extern MarlinSerialUSB customizedSerial1; +#if SERIAL_PORT == -1 + extern MarlinSerialUSB customizedSerial1; +#endif + +#if SERIAL_PORT_2 == -1 + extern MarlinSerialUSB customizedSerial2; +#endif -#endif // SERIAL_PORT == -1 +#endif // HAS_USB_SERIAL diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals_LCD.h index 2907694fb4c5ff3c3958f3d297404f19b27ff585..dd1f13fae0f8826d786fca9f675d808464d2bec5 100644 --- a/Marlin/src/inc/Conditionals_LCD.h +++ b/Marlin/src/inc/Conditionals_LCD.h @@ -683,6 +683,10 @@ #define SPI_SPEED SPI_FULL_SPEED #endif +#if SERIAL_PORT == -1 || SERIAL_PORT_2 == -1 + #define HAS_USB_SERIAL 1 +#endif + /** * This setting is also used by M109 when trying to calculate * a ballpark safe margin to prevent wait-forever situation.