From d44e94c537a45624ec8df9999aad83c00e049541 Mon Sep 17 00:00:00 2001 From: nerdCopter <56646290+nerdCopter@users.noreply.github.com> Date: Fri, 24 Jul 2026 16:54:21 -0500 Subject: [PATCH] build: expand SIZE_OPTIMISED_SRC to init/config/telemetry paths Adds 41 files to SIZE_OPTIMISED_SRC in make/source.mk, forcing -Os instead of default optimization on cold paths not on the gyro/PID control loop: flash drivers (5), telemetry protocols (12), GPS/ gps_rescue/position (3), rangefinder (3), sensor init (3), display/ IO drivers (10), CMS menus (2), esc_sensor/camera_control/vtx_beesign (3). Build-flag-only change, no source logic modified. Files verified present at listed paths in upstream/master @ 7651c15373 (not the issue's original file list, since master may have moved files since filing). Task-rate check in fc/fc_tasks.c confirms TASK_GPS (100Hz), TASK_ALTITUDE (40Hz), TASK_TELEMETRY (250Hz polling) are all below the gyro/PID hot loop. Measured flash delta (arm-none-eabi-size, xpack GCC 9.3.1) vs upstream/master: - HELIOSPRING: -8293 B - TMOTORF7: -7868 B - MATEKF411: -6692 B - WORMFC: -7457 B RAM flat (+/-50 B). make clean && CCACHE_DISABLE=1 make test: 39/39 unit test binaries PASS, 0 warnings, 0 errors. Bench targets (HELIOSPRING TUNERCF405 SKYSTARSF405AIO PYRODRONEF7 FOXEERF722V4 FOXEERF405 APEXF7 TMOTORF7): 8/8 succeeded. Compile-only targets (MATEKF411 NBDHMBF4PRO WORMFC ALIENWHOOPF7 CRAZYFLIE2): 5/5 succeeded. Zero warnings/errors across both sets under CCACHE_DISABLE=1. Closes #1221 Co-Authored-By: Claude Sonnet 5 --- make/source.mk | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/make/source.mk b/make/source.mk index c71cdc11bf..a98a1b250d 100644 --- a/make/source.mk +++ b/make/source.mk @@ -321,6 +321,51 @@ SIZE_OPTIMISED_SRC := $(SIZE_OPTIMISED_SRC) \ io/spektrum_vtx_control.c \ pg/pg.h +# Init/config/telemetry paths not on the main control loop (issue #1221) +SIZE_OPTIMISED_SRC := $(SIZE_OPTIMISED_SRC) \ + drivers/flash.c \ + drivers/flash_m25p16.c \ + drivers/flash_w25m.c \ + drivers/flash_w25n.c \ + drivers/flash_w25q128fv.c \ + telemetry/telemetry.c \ + telemetry/crsf.c \ + telemetry/ghst.c \ + telemetry/srxl.c \ + telemetry/frsky_hub.c \ + telemetry/hott.c \ + telemetry/jetiexbus.c \ + telemetry/smartport.c \ + telemetry/ltm.c \ + telemetry/mavlink.c \ + telemetry/msp_shared.c \ + telemetry/ibus.c \ + telemetry/ibus_shared.c \ + io/gps.c \ + flight/gps_rescue.c \ + flight/position.c \ + drivers/rangefinder/rangefinder_hcsr04.c \ + drivers/rangefinder/rangefinder_lidartf.c \ + sensors/rangefinder.c \ + sensors/initialisation.c \ + sensors/barometer.c \ + sensors/compass.c \ + io/ledstrip.c \ + io/pidaudio.c \ + io/rcdevice.c \ + io/rcdevice_cam.c \ + io/displayport_max7456.c \ + io/displayport_msp.c \ + io/displayport_hdzero_osd.c \ + io/displayport_oled.c \ + io/displayport_srxl.c \ + io/displayport_crsf.c \ + cms/cms_menu_failsafe.c \ + cms/cms_menu_gps_rescue.c \ + sensors/esc_sensor.c \ + drivers/camera_control.c \ + io/vtx_beesign.c + # F4 and F7 optimizations ifneq ($(TARGET),$(filter $(TARGET),$(F3_TARGETS))) SPEED_OPTIMISED_SRC := $(SPEED_OPTIMISED_SRC) \