From 89379cd373b2597d0c8cadd6a005de8d640a8273 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 12 Dec 2025 17:09:13 -0600 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A8=20Single=20precision=20float?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Marlin/src/HAL/ESP32/HAL.cpp | 2 +- Marlin/src/HAL/ESP32/HAL.h | 1 - Marlin/src/HAL/GD32_MFL/HAL.h | 1 - Marlin/src/HAL/STM32/HAL.h | 2 -- buildroot/share/PlatformIO/scripts/STM32F1_build_flags.py | 1 - buildroot/share/PlatformIO/scripts/common-cxxflags.py | 2 +- ini/esp32.ini | 2 +- ini/gd32.ini | 1 - platformio.ini | 2 +- 9 files changed, 4 insertions(+), 10 deletions(-) diff --git a/Marlin/src/HAL/ESP32/HAL.cpp b/Marlin/src/HAL/ESP32/HAL.cpp index c48aee0e21..acfec29b2f 100644 --- a/Marlin/src/HAL/ESP32/HAL.cpp +++ b/Marlin/src/HAL/ESP32/HAL.cpp @@ -271,7 +271,7 @@ void MarlinHAL::adc_start(const pin_t pin) { uint32_t mv; esp_adc_cal_get_voltage((adc_channel_t)chan, &characteristics[attenuations[chan]], &mv); - adc_result = mv * isr_float_t(1023) / isr_float_t(ADC_REFERENCE_VOLTAGE) / isr_float_t(1000); + adc_result = (mv * 1023) * (1000.f / (ADC_REFERENCE_VOLTAGE)); // Change the attenuation level based on the new reading adc_atten_t atten; diff --git a/Marlin/src/HAL/ESP32/HAL.h b/Marlin/src/HAL/ESP32/HAL.h index cd9e738be3..f48eabea0d 100644 --- a/Marlin/src/HAL/ESP32/HAL.h +++ b/Marlin/src/HAL/ESP32/HAL.h @@ -76,7 +76,6 @@ // Types // ------------------------ -typedef double isr_float_t; // FPU ops are used for single-precision, so use double for ISRs. typedef int16_t pin_t; typedef struct pwm_pin { diff --git a/Marlin/src/HAL/GD32_MFL/HAL.h b/Marlin/src/HAL/GD32_MFL/HAL.h index 56e52b53b5..6195212028 100644 --- a/Marlin/src/HAL/GD32_MFL/HAL.h +++ b/Marlin/src/HAL/GD32_MFL/HAL.h @@ -57,7 +57,6 @@ #define __bss_end __bss_end__ // Types -typedef double isr_float_t; // FPU ops are used for single-precision, so use double for ISRs. typedef uint8_t pin_t; // Parity with mfl platform // Servo diff --git a/Marlin/src/HAL/STM32/HAL.h b/Marlin/src/HAL/STM32/HAL.h index 8f9b56704c..24889c872a 100644 --- a/Marlin/src/HAL/STM32/HAL.h +++ b/Marlin/src/HAL/STM32/HAL.h @@ -63,8 +63,6 @@ // Types // ------------------------ -typedef double isr_float_t; // FPU ops are used for single-precision, so use double for ISRs. - typedef int32_t pin_t; // Parity with platform/ststm32 class libServo; diff --git a/buildroot/share/PlatformIO/scripts/STM32F1_build_flags.py b/buildroot/share/PlatformIO/scripts/STM32F1_build_flags.py index dfce215348..58104c0b45 100755 --- a/buildroot/share/PlatformIO/scripts/STM32F1_build_flags.py +++ b/buildroot/share/PlatformIO/scripts/STM32F1_build_flags.py @@ -19,7 +19,6 @@ if __name__ == "__main__": "-fsigned-char", "-fno-move-loop-invariants", "-fno-strict-aliasing", - "-fsingle-precision-constant", "--specs=nano.specs", "--specs=nosys.specs", diff --git a/buildroot/share/PlatformIO/scripts/common-cxxflags.py b/buildroot/share/PlatformIO/scripts/common-cxxflags.py index 1ec733e59b..00d8abfa35 100644 --- a/buildroot/share/PlatformIO/scripts/common-cxxflags.py +++ b/buildroot/share/PlatformIO/scripts/common-cxxflags.py @@ -14,7 +14,7 @@ if pioutil.is_pio_build(): # "-Wno-sign-compare", "-fno-sized-deallocation" ] - if "teensy" not in env["PIOENV"]: + if "teensy" not in env["PIOENV"] and "esp32" not in env["PIOENV"]: cxxflags += ["-Wno-register"] env.Append(CXXFLAGS=cxxflags) env.Append(CFLAGS=["-Wno-implicit-function-declaration"]) diff --git a/ini/esp32.ini b/ini/esp32.ini index f40b37ef14..1718dc0b87 100644 --- a/ini/esp32.ini +++ b/ini/esp32.ini @@ -17,7 +17,7 @@ platform = espressif32@2.1.0 platform_packages = espressif/toolchain-xtensa-esp32s3 board = esp32dev build_flags = ${common.build_flags} -DCORE_DEBUG_LEVEL=0 -std=gnu++17 -build_unflags = -std=gnu11 -std=gnu++11 +build_unflags = -std=gnu11 -std=gnu++11 -fsingle-precision-constant -Wno-register build_src_filter = ${common.default_src_filter} + lib_ignore = NativeEthernet, AsyncTCP_RP2040W upload_speed = 500000 diff --git a/ini/gd32.ini b/ini/gd32.ini index d9cc3f7082..e0c34ad04f 100644 --- a/ini/gd32.ini +++ b/ini/gd32.ini @@ -39,7 +39,6 @@ build_flags = ${gd32_base.build_flags} -DSS_TIMER=3 -DTIMER_SERVO=4 -DTRANSFER_CLOCK_DIV=8 - -fsingle-precision-constant extra_scripts = ${gd32_base.extra_scripts} buildroot/share/PlatformIO/scripts/offset_and_rename.py monitor_speed = 115200 diff --git a/platformio.ini b/platformio.ini index 995c29ca17..9f562c0be9 100644 --- a/platformio.ini +++ b/platformio.ini @@ -47,7 +47,7 @@ extra_configs = # [common] build_flags = -g3 -D__MARLIN_FIRMWARE__ -DNDEBUG - -fmax-errors=5 + -fmax-errors=5 -fsingle-precision-constant extra_scripts = pre:buildroot/share/PlatformIO/scripts/configuration.py pre:buildroot/share/PlatformIO/scripts/common-dependencies.py