Adds four MESHTASTIC_EXCLUDE_* flags to stm32_base, applying them to
every stm32wl variant (rak3172, wio-e5, russell, milesight_gs301,
CDEBYTE_E77-MBL):
- PKT_HISTORY_HASH: mirrors the accepted nRF52 precedent
(variants/nrf52840/nrf52.ini) - drops PacketHistory's hash index;
the O(n) fallback is negligible given stm32wl's small node table.
No feature loss.
- POWER_TELEMETRY: only affects external power-monitor ICs
(INA219/INA260 etc.) via PowerTelemetryModule; internal battery ADC
reading (src/Power.cpp) is a separate, ungated code path and is
unaffected. No current stm32wl variant wires up external
power-monitor hardware.
- RANGETEST: real feature loss on wio-e5 specifically, the only
stm32wl variant with GPS enabled (RangeTest requires GPS to run at
all, so it was already dead on every other variant).
- WAYPOINT: real feature loss on rak3172/wio-e5 (russell already
excluded this individually; that duplicate is removed here since
stm32_base now covers it).
Measured on wio-e5 against upstream/develop @ 7a25ffd0a: 2,768 bytes
flash saved (240,648 -> 237,880), 260 bytes RAM saved. Sanity-built
russell and rak3172 to confirm no regressions from the russell
dedup.
Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Andrew Yong <me@ndoo.sg>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
68 lines
2.7 KiB
INI
68 lines
2.7 KiB
INI
[stm32_base]
|
|
extends = arduino_base
|
|
platform =
|
|
# renovate: datasource=custom.pio depName=platformio/ststm32 packageName=platformio/platform/ststm32
|
|
platformio/ststm32@19.7.0
|
|
platform_packages =
|
|
# renovate: datasource=github-tags depName=Arduino_Core_STM32 packageName=stm32duino/Arduino_Core_STM32
|
|
platformio/framework-arduinoststm32@https://github.com/stm32duino/Arduino_Core_STM32/archive/2.10.1.zip
|
|
extra_scripts =
|
|
${env.extra_scripts}
|
|
extra_scripts/stm32_extra.py
|
|
|
|
build_type = release
|
|
|
|
build_flags =
|
|
${arduino_base.build_flags}
|
|
-flto
|
|
-Isrc/platform/stm32wl -g
|
|
-DMESHTASTIC_EXCLUDE_AUDIO=1
|
|
-DMESHTASTIC_EXCLUDE_ATAK=1 ; ATAK is quite big, disable it for big flash savings.
|
|
-DMESHTASTIC_EXCLUDE_INPUTBROKER=1
|
|
-DMESHTASTIC_EXCLUDE_POWERMON=1
|
|
-DMESHTASTIC_EXCLUDE_SCREEN=1
|
|
-DMESHTASTIC_EXCLUDE_MQTT=1
|
|
-DMESHTASTIC_EXCLUDE_BLUETOOTH=1
|
|
-DMESHTASTIC_EXCLUDE_WIFI=1
|
|
-DMESHTASTIC_EXCLUDE_TZ=1 ; Exclude TZ to save some flash space.
|
|
-DMESHTASTIC_EXCLUDE_XEDDSA=1 ; The Ed25519 signing code does not fit in the 256KB flash. Packets are sent unsigned, like pre-XEdDSA firmware.
|
|
-DMESHTASTIC_EXCLUDE_PKT_HISTORY_HASH=1
|
|
-DMESHTASTIC_EXCLUDE_RANGETEST=1
|
|
-DMESHTASTIC_EXCLUDE_WAYPOINT=1
|
|
-DMESHTASTIC_EXCLUDE_POWER_TELEMETRY=1
|
|
-DSERIAL_RX_BUFFER_SIZE=256 ; For GPS - the default of 64 is too small.
|
|
-DHAS_SCREEN=0 ; Always disable screen for STM32, it is not supported.
|
|
;-DPIO_FRAMEWORK_ARDUINO_NANOLIB_FLOAT_PRINTF ; Enable this if enabling debugg logging. It is REQUIRED for at least traceroute debug prints - without it the length returned by printf ends up uninitialized.
|
|
-DDEBUG_MUTE ; You can #undef DEBUG_MUTE in certain source files if you need the logs.
|
|
-fmerge-all-constants
|
|
-ffunction-sections
|
|
-fdata-sections
|
|
-DRADIOLIB_EXCLUDE_SX128X=1
|
|
-DRADIOLIB_EXCLUDE_SX127X=1
|
|
-DRADIOLIB_EXCLUDE_LR11X0=1
|
|
-DRADIOLIB_EXCLUDE_LR2021=1
|
|
-DMESHTASTIC_DYNAMIC_SBRK_HEAP
|
|
-DHAL_DAC_MODULE_ONLY
|
|
-DHAL_RNG_MODULE_ENABLED
|
|
-Wl,--wrap=__assert_func
|
|
-Wl,--wrap=strerror
|
|
-Wl,--wrap=_tzset_unlocked_r
|
|
|
|
build_src_filter =
|
|
${arduino_base.build_src_filter} +<platform/stm32wl/> -<nimble/> -<mesh/api/> -<mesh/wifi/> -<mesh/http/> -<modules/esp32> -<mesh/eth/> -<input> -<buzz> -<modules/RemoteHardwareModule.cpp> -<mesh/raspihttp>
|
|
|
|
board_upload.offset_address = 0x08000000
|
|
upload_protocol = stlink
|
|
debug_tool = stlink
|
|
|
|
lib_deps =
|
|
${env.lib_deps}
|
|
${radiolib_base.lib_deps}
|
|
# renovate: datasource=git-refs depName=meshtastic/Crypto packageName=https://github.com/meshtastic/Crypto gitBranch=main
|
|
https://github.com/meshtastic/Crypto/archive/591ff9a690e8168ccb7a36abde8d7783e448d395.zip
|
|
|
|
lib_ignore =
|
|
OneButton
|
|
|
|
; Set a custom linker script with a higher MinStackSize value, to match NRF52.
|
|
board_build.ldscript = $PROJECT_DIR/variants/stm32/stm32wle5xx.ld |