diff --git a/Marlin/src/HAL/HAL_AVR/endstop_interrupts.h b/Marlin/src/HAL/HAL_AVR/endstop_interrupts.h index 13b3f16e3b..490ba08095 100644 --- a/Marlin/src/HAL/HAL_AVR/endstop_interrupts.h +++ b/Marlin/src/HAL/HAL_AVR/endstop_interrupts.h @@ -38,9 +38,9 @@ #ifndef _ENDSTOP_INTERRUPTS_H_ #define _ENDSTOP_INTERRUPTS_H_ -#include "../../core/macros.h" -#include #include "../../module/endstops.h" +#include "../../inc/MarlinConfig.h" +#include // One ISR for all EXT-Interrupts void endstop_ISR(void) { endstops.update(); } diff --git a/Marlin/src/HAL/HAL_DUE/DebugMonitor_Due.cpp b/Marlin/src/HAL/HAL_DUE/DebugMonitor_Due.cpp index f12f0df7fb..e355cce86e 100644 --- a/Marlin/src/HAL/HAL_DUE/DebugMonitor_Due.cpp +++ b/Marlin/src/HAL/HAL_DUE/DebugMonitor_Due.cpp @@ -22,13 +22,13 @@ #ifdef ARDUINO_ARCH_SAM -#include "../../core/macros.h" #include "../../core/serial.h" -#include #include "../shared/backtrace/unwinder.h" #include "../shared/backtrace/unwmemaccess.h" +#include + // Debug monitor that dumps to the Programming port all status when // an exception or WDT timeout happens - And then resets the board diff --git a/Marlin/src/HAL/HAL_DUE/usb/compiler.h b/Marlin/src/HAL/HAL_DUE/usb/compiler.h index 43895381a2..d9ecd3f0fe 100644 --- a/Marlin/src/HAL/HAL_DUE/usb/compiler.h +++ b/Marlin/src/HAL/HAL_DUE/usb/compiler.h @@ -105,7 +105,7 @@ * \brief Marking \a v as a unused parameter or value. */ #ifndef UNUSED -#define UNUSED(x) (void) (x) + #define UNUSED(x) ((void)(x)) #endif /** diff --git a/Marlin/src/HAL/HAL_DUE/usb/conf_usb.h b/Marlin/src/HAL/HAL_DUE/usb/conf_usb.h index 604fd2019b..4ee5a8f504 100644 --- a/Marlin/src/HAL/HAL_DUE/usb/conf_usb.h +++ b/Marlin/src/HAL/HAL_DUE/usb/conf_usb.h @@ -47,12 +47,10 @@ #ifndef _CONF_USB_H_ #define _CONF_USB_H_ -#undef UNUSED /* To avoid a macro clash as macros.h already defines it */ -#include "../../../core/macros.h" /* For ENABLED()/DISABLED() */ -#include "../../../../Configuration.h" /* For CUSTOM_MACHINE_NAME definition - We just need the name, no C++ allowed! */ +#include "../../../core/macros.h" /* For ENABLED, DISABLED, MIN, MAX */ +#include "../../../../Configuration.h" /* For SDSUPPORT and CUSTOM_MACHINE_NAME definition - We just need the name, no C++ allowed! */ #include "compiler.h" - /** * USB Device Configuration * @{ diff --git a/Marlin/src/HAL/HAL_LPC1768/spi_pins.h b/Marlin/src/HAL/HAL_LPC1768/spi_pins.h index 841a3f845f..2bb3f53101 100644 --- a/Marlin/src/HAL/HAL_LPC1768/spi_pins.h +++ b/Marlin/src/HAL/HAL_LPC1768/spi_pins.h @@ -23,7 +23,7 @@ #ifndef SPI_PINS_LPC1768_H #define SPI_PINS_LPC1768_H -#include "src/core/macros.h" +#include "../../inc/MarlinConfigPre.h" #if ENABLED(SDSUPPORT) && ENABLED(DOGLCD) && (LCD_PINS_D4 == SCK_PIN || LCD_PINS_ENABLE == MOSI_PIN || DOGLCD_SCK == SCK_PIN || DOGLCD_MOSI == MOSI_PIN) #define LPC_SOFTWARE_SPI // If the SD card and LCD adapter share the same SPI pins, then software SPI is currently diff --git a/Marlin/src/core/config.h b/Marlin/src/core/config.h new file mode 100644 index 0000000000..130942f875 --- /dev/null +++ b/Marlin/src/core/config.h @@ -0,0 +1,113 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +// Macros to make a string from a macro +#define STRINGIFY_(M) #M +#define STRINGIFY(M) STRINGIFY_(M) + +// Macros for bit masks +#undef _BV +#define _BV(n) (1<<(n)) +#define TEST(n,b) !!((n)&_BV(b)) +#define SBI(n,b) (n |= _BV(b)) +#define CBI(n,b) (n &= ~_BV(b)) + +#define _BV32(b) (1UL << (b)) +#define TEST32(n,b) !!((n)&_BV32(b)) +#define SBI32(n,b) (n |= _BV32(b)) +#define CBI32(n,b) (n &= ~_BV32(b)) + +// Macros for maths shortcuts +#undef M_PI +#define M_PI 3.14159265358979323846f + +// Macros to support option testing +#define _CAT(a, ...) a ## __VA_ARGS__ +#define SWITCH_ENABLED_false 0 +#define SWITCH_ENABLED_true 1 +#define SWITCH_ENABLED_0 0 +#define SWITCH_ENABLED_1 1 +#define SWITCH_ENABLED_0x0 0 +#define SWITCH_ENABLED_0x1 1 +#define SWITCH_ENABLED_ 1 +#define ENABLED(b) _CAT(SWITCH_ENABLED_, b) +#define DISABLED(b) !ENABLED(b) + +#define WITHIN(V,L,H) ((V) >= (L) && (V) <= (H)) +#define IS_POWER_OF_2(x) ((x) && !((x) & ((x) - 1))) + +// Macros for initializing arrays +#define ARRAY_6(v1, v2, v3, v4, v5, v6, ...) { v1, v2, v3, v4, v5, v6 } +#define ARRAY_5(v1, v2, v3, v4, v5, ...) { v1, v2, v3, v4, v5 } +#define ARRAY_4(v1, v2, v3, v4, ...) { v1, v2, v3, v4 } +#define ARRAY_3(v1, v2, v3, ...) { v1, v2, v3 } +#define ARRAY_2(v1, v2, ...) { v1, v2 } +#define ARRAY_1(v1, ...) { v1 } +#define _ARRAY_N(N, ...) ARRAY_ ##N(__VA_ARGS__) +#define ARRAY_N(N, ...) _ARRAY_N(N, __VA_ARGS__) + +// Pins +#define PIN_EXISTS(PN) (defined(PN ##_PIN) && PN ##_PIN >= 0) + +// Increment/Decrement helper macros +#define INC_0 1 +#define INC_1 2 +#define INC_2 3 +#define INC_3 4 +#define INC_4 5 +#define INC_5 6 +#define INC_6 7 +#define INC_7 8 +#define INC_8 9 +#define _INCREMENT(n) INC_ ##n +#define INCREMENT(n) _INCREMENT(n) + +#define DEC_1 0 +#define DEC_2 1 +#define DEC_3 2 +#define DEC_4 3 +#define DEC_5 4 +#define DEC_6 5 +#define DEC_7 6 +#define DEC_8 7 +#define DEC_9 8 +#define DECREMENT_(n) DEC_ ##n +#define DECREMENT(n) DECREMENT_(n) + +// Endstop plug identifiers +#define _XMIN_ 100 +#define _YMIN_ 200 +#define _ZMIN_ 300 +#define _XMAX_ 101 +#define _YMAX_ 201 +#define _ZMAX_ 301 + +// GCC properties for HAL headers +#define _FORCE_INLINE_ __attribute__((__always_inline__)) __inline__ +#define FORCE_INLINE __attribute__((always_inline)) inline +#define _UNUSED __attribute__((unused)) +#define _O0 __attribute__((optimize("O0"))) +#define _Os __attribute__((optimize("Os"))) +#define _O1 __attribute__((optimize("O1"))) +#define _O2 __attribute__((optimize("O2"))) +#define _O3 __attribute__((optimize("O3"))) diff --git a/Marlin/src/core/macros.h b/Marlin/src/core/macros.h index df21b0519f..aa7f5cce9b 100644 --- a/Marlin/src/core/macros.h +++ b/Marlin/src/core/macros.h @@ -19,10 +19,9 @@ * along with this program. If not, see . * */ - #pragma once -#include "minmax.h" +#include "config.h" #define NUM_AXIS 4 #define ABCE 4 @@ -32,22 +31,6 @@ #define _AXIS(A) (A##_AXIS) -#define _XMIN_ 100 -#define _YMIN_ 200 -#define _ZMIN_ 300 -#define _XMAX_ 101 -#define _YMAX_ 201 -#define _ZMAX_ 301 - -#define _FORCE_INLINE_ __attribute__((__always_inline__)) __inline__ -#define FORCE_INLINE __attribute__((always_inline)) inline -#define _UNUSED __attribute__((unused)) -#define _O0 __attribute__((optimize("O0"))) -#define _Os __attribute__((optimize("Os"))) -#define _O1 __attribute__((optimize("O1"))) -#define _O2 __attribute__((optimize("O2"))) -#define _O3 __attribute__((optimize("O3"))) - // Clock speed factors #if !defined(CYCLES_PER_MICROSECOND) && !defined(__STM32F1__) #define CYCLES_PER_MICROSECOND (F_CPU / 1000000L) // 16 or 20 on AVR @@ -57,32 +40,16 @@ #define NANOSECONDS_PER_CYCLE (1000000000.0 / F_CPU) // Remove compiler warning on an unused variable +#undef UNUSED #define UNUSED(x) ((void)(x)) -// Macros to make a string from a macro -#define STRINGIFY_(M) #M -#define STRINGIFY(M) STRINGIFY_(M) - +// Assembly wrappers for code and labels #define A(CODE) " " CODE "\n\t" #define L(CODE) CODE ":\n\t" // Macros for bit masks -#undef _BV -#define _BV(n) (1<<(n)) -#define TEST(n,b) !!((n)&_BV(b)) -#define SBI(n,b) (n |= _BV(b)) -#define CBI(n,b) (n &= ~_BV(b)) #define SET_BIT_TO(N,B,TF) do{ if (TF) SBI(N,B); else CBI(N,B); }while(0) -#define _BV32(b) (1UL << (b)) -#define TEST32(n,b) !!((n)&_BV32(b)) -#define SBI32(n,b) (n |= _BV32(b)) -#define CBI32(n,b) (n &= ~_BV32(b)) - -// Macros for maths shortcuts -#undef M_PI -#define M_PI 3.14159265358979323846f - #define RADIANS(d) ((d)*float(M_PI)/180.0f) #define DEGREES(r) ((r)*180.0f/float(M_PI)) #define HYPOT2(x,y) (sq(x)+sq(y)) @@ -91,25 +58,45 @@ #define CIRCLE_CIRC(R) (2 * float(M_PI) * float(R)) #define SIGN(a) ((a>0)-(a<0)) -#define IS_POWER_OF_2(x) ((x) && !((x) & ((x) - 1))) -// Macros to constrain values +// Convenience templates / macros +#undef ABS +#undef MIN +#undef MAX #ifdef __cplusplus - // C++11 solution that is standards compliant. - template static inline constexpr void NOLESS(V& v, const N n) { - if (v < n) v = n; - } - template static inline constexpr void NOMORE(V& v, const N n) { - if (v > n) v = n; - } - template static inline constexpr void LIMIT(V& v, const N1 n1, const N2 n2) { - if (v < n1) v = n1; - else if (v > n2) v = n2; + // Standards-compliant C++11 solutions + + extern "C++" { + + template static inline constexpr const T ABS(const T v) { return v >= 0 ? v : -v; } + + template static inline constexpr void NOLESS(V& v, const N n) { + if (v < n) v = n; + } + template static inline constexpr void NOMORE(V& v, const N n) { + if (v > n) v = n; + } + template static inline constexpr void LIMIT(V& v, const N1 n1, const N2 n2) { + if (v < n1) v = n1; + else if (v > n2) v = n2; + } + + template static inline constexpr auto MIN(const L lhs, const R rhs) -> decltype(lhs + rhs) { + return lhs < rhs ? lhs : rhs; + } + template static inline constexpr auto MAX(const L lhs, const R rhs) -> decltype(lhs + rhs) { + return lhs > rhs ? lhs : rhs; + } + template static inline constexpr const T MIN(T V, Ts... Vs) { return MIN(V, MIN(Vs...)); } + template static inline constexpr const T MAX(T V, Ts... Vs) { return MAX(V, MAX(Vs...)); } + } #else + #define ABS(a) ({__typeof__(a) _a = (a); _a >= 0 ? _a : -_a;}) + // Using GCC extensions, but Travis GCC version does not like it and gives // "error: statement-expressions are not allowed outside functions nor in template-argument lists" #define NOLESS(v, n) \ @@ -132,21 +119,30 @@ else if (v > _n2) v = _n2; \ } while(0) + // NUM_ARGS(...) evaluates to the number of arguments + #define _NUM_ARGS(X,X6,X5,X4,X3,X2,X1,N,...) N + #define NUM_ARGS(...) _NUM_ARGS(0, __VA_ARGS__ ,6,5,4,3,2,1,0) + + #define MIN_2(a,b) ({__typeof__(a) _a = (a); __typeof__(b) _b = (b); _a > _b ? _a : _b;}) + #define MIN_3(a,...) MIN_2(a,MIN_2(__VA_ARGS__)) + #define MIN_4(a,...) MIN_2(a,MIN_3(__VA_ARGS__)) + #define MIN_5(a,...) MIN_2(a,MIN_4(__VA_ARGS__)) + #define MIN_6(a,...) MIN_2(a,MIN_5(__VA_ARGS__)) + #define __MIN_N(N, ...) MIN_ ## N(__VA_ARGS__) + #define _MIN_N(N, ...) __MIN_N(N, __VA_ARGS__) + #define MIN(...) _MIN_N(NUM_ARGS(__VA_ARGS__), __VA_ARGS__) + + #define MAX_2(a,b) ({__typeof__(a) _a = (a); __typeof__(b) _b = (b); _a > _b ? _a : _b;}) + #define MAX_3(a,...) MAX_2(a,MAX_2(__VA_ARGS__)) + #define MAX_4(a,...) MAX_2(a,MAX_3(__VA_ARGS__)) + #define MAX_5(a,...) MAX_2(a,MAX_4(__VA_ARGS__)) + #define MAX_6(a,...) MAX_2(a,MAX_5(__VA_ARGS__)) + #define __MAX_N(N, ...) MAX_ ## N(__VA_ARGS__) + #define _MAX_N(N, ...) __MAX_N(N, __VA_ARGS__) + #define MAX(...) _MAX_N(NUM_ARGS(__VA_ARGS__), __VA_ARGS__) + #endif -// Macros to support option testing -#define _CAT(a, ...) a ## __VA_ARGS__ -#define SWITCH_ENABLED_false 0 -#define SWITCH_ENABLED_true 1 -#define SWITCH_ENABLED_0 0 -#define SWITCH_ENABLED_1 1 -#define SWITCH_ENABLED_0x0 0 -#define SWITCH_ENABLED_0x1 1 -#define SWITCH_ENABLED_ 1 -#define ENABLED(b) _CAT(SWITCH_ENABLED_, b) -#define DISABLED(b) !ENABLED(b) - -#define WITHIN(V,L,H) ((V) >= (L) && (V) <= (H)) #define NUMERIC(a) WITHIN(a, '0', '9') #define DECIMAL(a) (NUMERIC(a) || a == '.') #define NUMERIC_SIGNED(a) (NUMERIC(a) || (a) == '-' || (a) == '+') @@ -155,45 +151,6 @@ #define ZERO(a) memset(a,0,sizeof(a)) #define COPY(a,b) memcpy(a,b,MIN(sizeof(a),sizeof(b))) -// Macros for initializing arrays -#define ARRAY_6(v1, v2, v3, v4, v5, v6, ...) { v1, v2, v3, v4, v5, v6 } -#define ARRAY_5(v1, v2, v3, v4, v5, ...) { v1, v2, v3, v4, v5 } -#define ARRAY_4(v1, v2, v3, v4, ...) { v1, v2, v3, v4 } -#define ARRAY_3(v1, v2, v3, ...) { v1, v2, v3 } -#define ARRAY_2(v1, v2, ...) { v1, v2 } -#define ARRAY_1(v1, ...) { v1 } - -#define _ARRAY_N(N, ...) ARRAY_ ##N(__VA_ARGS__) -#define ARRAY_N(N, ...) _ARRAY_N(N, __VA_ARGS__) - -// Macros for adding -#define INC_0 1 -#define INC_1 2 -#define INC_2 3 -#define INC_3 4 -#define INC_4 5 -#define INC_5 6 -#define INC_6 7 -#define INC_7 8 -#define INC_8 9 -#define INCREMENT_(n) INC_ ##n -#define INCREMENT(n) INCREMENT_(n) - -// Macros for subtracting -#define DEC_1 0 -#define DEC_2 1 -#define DEC_3 2 -#define DEC_4 3 -#define DEC_5 4 -#define DEC_6 5 -#define DEC_7 6 -#define DEC_8 7 -#define DEC_9 8 -#define DECREMENT_(n) DEC_ ##n -#define DECREMENT(n) DECREMENT_(n) - -#define PIN_EXISTS(PN) (defined(PN ##_PIN) && PN ##_PIN >= 0) - #define PENDING(NOW,SOON) ((long)(NOW-(SOON))<0) #define ELAPSED(NOW,SOON) (!PENDING(NOW,SOON)) @@ -204,13 +161,6 @@ #define CEILING(x,y) (((x) + (y) - 1) / (y)) -#undef ABS -#ifdef __cplusplus - template static inline constexpr const T ABS(const T v) { return v >= 0 ? v : -v; } -#else - #define ABS(a) ({__typeof__(a) _a = (a); _a >= 0 ? _a : -_a;}) -#endif - #define UNEAR_ZERO(x) ((x) < 0.000001f) #define NEAR_ZERO(x) WITHIN(x, -0.000001f, 0.000001f) #define NEAR(x,y) NEAR_ZERO((x)-(y)) diff --git a/Marlin/src/core/minmax.h b/Marlin/src/core/minmax.h deleted file mode 100644 index e45544ff69..0000000000 --- a/Marlin/src/core/minmax.h +++ /dev/null @@ -1,71 +0,0 @@ -/** - * Marlin 3D Printer Firmware - * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] - * - * Based on Sprinter and grbl. - * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -#undef MIN -#undef MAX - -#ifdef __cplusplus - - #ifndef _MINMAX_H_ - #define _MINMAX_H_ - - extern "C++" { - - // C++11 solution that is standards compliant. Return type is deduced automatically - template static inline constexpr auto MIN(const L lhs, const R rhs) -> decltype(lhs + rhs) { - return lhs < rhs ? lhs : rhs; - } - template static inline constexpr auto MAX(const L lhs, const R rhs) -> decltype(lhs + rhs) { - return lhs > rhs ? lhs : rhs; - } - template static inline constexpr const T MIN(T V, Ts... Vs) { return MIN(V, MIN(Vs...)); } - template static inline constexpr const T MAX(T V, Ts... Vs) { return MAX(V, MAX(Vs...)); } - - } - - #endif - -#else - - // NUM_ARGS(...) evaluates to the number of arguments - #define _NUM_ARGS(X,X6,X5,X4,X3,X2,X1,N,...) N - #define NUM_ARGS(...) _NUM_ARGS(0, __VA_ARGS__ ,6,5,4,3,2,1,0) - - #define MIN_2(a,b) ({__typeof__(a) _a = (a); __typeof__(b) _b = (b); _a > _b ? _a : _b;}) - #define MIN_3(a,...) MIN_2(a,MIN_2(__VA_ARGS__)) - #define MIN_4(a,...) MIN_2(a,MIN_3(__VA_ARGS__)) - #define MIN_5(a,...) MIN_2(a,MIN_4(__VA_ARGS__)) - #define MIN_6(a,...) MIN_2(a,MIN_5(__VA_ARGS__)) - #define __MIN_N(N, ...) MIN_ ## N(__VA_ARGS__) - #define _MIN_N(N, ...) __MIN_N(N, __VA_ARGS__) - #define MIN(...) _MIN_N(NUM_ARGS(__VA_ARGS__), __VA_ARGS__) - - #define MAX_2(a,b) ({__typeof__(a) _a = (a); __typeof__(b) _b = (b); _a > _b ? _a : _b;}) - #define MAX_3(a,...) MAX_2(a,MAX_2(__VA_ARGS__)) - #define MAX_4(a,...) MAX_2(a,MAX_3(__VA_ARGS__)) - #define MAX_5(a,...) MAX_2(a,MAX_4(__VA_ARGS__)) - #define MAX_6(a,...) MAX_2(a,MAX_5(__VA_ARGS__)) - #define __MAX_N(N, ...) MAX_ ## N(__VA_ARGS__) - #define _MAX_N(N, ...) __MAX_N(N, __VA_ARGS__) - #define MAX(...) _MAX_N(NUM_ARGS(__VA_ARGS__), __VA_ARGS__) - -#endif diff --git a/Marlin/src/feature/twibus.h b/Marlin/src/feature/twibus.h index 7a17e2d53a..78658c19ab 100644 --- a/Marlin/src/feature/twibus.h +++ b/Marlin/src/feature/twibus.h @@ -23,7 +23,7 @@ #ifndef TWIBUS_H #define TWIBUS_H -#include "../core/macros.h" +#include "../inc/MarlinConfigPre.h" #include diff --git a/Marlin/src/inc/MarlinConfig.h b/Marlin/src/inc/MarlinConfig.h index a6d48a18e5..a5f6595805 100644 --- a/Marlin/src/inc/MarlinConfig.h +++ b/Marlin/src/inc/MarlinConfig.h @@ -19,9 +19,11 @@ * along with this program. If not, see . * */ +#pragma once -#ifndef _MARLIN_CONFIG_H_ -#define _MARLIN_CONFIG_H_ +// +// Prefix header for all Marlin sources +// #include "MarlinConfigPre.h" @@ -43,6 +45,3 @@ #include "../core/language.h" #include "../core/utility.h" #include "../core/serial.h" -#include "../core/minmax.h" - -#endif // _MARLIN_CONFIG_H_ diff --git a/Marlin/src/inc/MarlinConfigPre.h b/Marlin/src/inc/MarlinConfigPre.h index 7f9b50eb01..f2bfd1acc6 100644 --- a/Marlin/src/inc/MarlinConfigPre.h +++ b/Marlin/src/inc/MarlinConfigPre.h @@ -19,19 +19,20 @@ * along with this program. If not, see . * */ +#pragma once -#ifndef _MARLIN_CONFIGPRE_H_ -#define _MARLIN_CONFIGPRE_H_ +// +// Prefix header to acquire configurations +// #include "../HAL/platforms.h" #include "../core/boards.h" -#include "../core/macros.h" #include "../core/types.h" +#include "../core/config.h" #include "Version.h" #include "../../Configuration.h" #include "Conditionals_LCD.h" #include "../core/drivers.h" #include "../../Configuration_adv.h" #include "Conditionals_adv.h" - -#endif // _MARLIN_CONFIGPRE_H_ +#include "../core/macros.h" diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index 161411774a..cf7b0d260b 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -23,7 +23,7 @@ #ifndef _VERSION_H_ #define _VERSION_H_ -#include "../core/macros.h" // for ENABLED +#include "../core/config.h" // for ENABLED /** * This file is the standard Marlin version identifier file. diff --git a/Marlin/src/libs/stopwatch.h b/Marlin/src/libs/stopwatch.h index 69efe0c3a2..64099e7744 100644 --- a/Marlin/src/libs/stopwatch.h +++ b/Marlin/src/libs/stopwatch.h @@ -26,8 +26,8 @@ // Print debug messages with M111 S2 (Uses 156 bytes of PROGMEM) //#define DEBUG_STOPWATCH -#include "../core/macros.h" -#include "../core/types.h" +#include "../core/macros.h" // for FORCE_INLINE +#include "../core/types.h" // for millis_t /** * @brief Stopwatch class @@ -36,11 +36,7 @@ */ class Stopwatch { private: - enum State : char { - STOPPED, - RUNNING, - PAUSED - }; + enum State : char { STOPPED, RUNNING, PAUSED }; static Stopwatch::State state; static millis_t accumulator; diff --git a/buildroot/share/tests/start_tests b/buildroot/share/tests/start_tests index 53c24f44d8..07b0720f2e 100755 --- a/buildroot/share/tests/start_tests +++ b/buildroot/share/tests/start_tests @@ -6,7 +6,7 @@ export PATH="$PATH:./buildroot/bin" set -e exec_test () { - printf "\033[0;32m[Test $2] \033[0m$3... " + printf "\n\033[0;32m[Test $2] \033[0m$3...\n" if build_marlin_pio $1 "-e $2"; then printf "\033[0;32mPassed\033[0m\n" return 0