Fix the STM32 flash overflows and fleet fixture compile failure from https://github.com/mikecarper/MeshCore/actions/runs/40241742182. Fold already-unsupported RX control paths only for the integrated STM32WL wrapper. Preserve RXPS-off validation, persistence, pending application and rollback. External radios retain their supported controls. Use measured GCC 14 code sharing in the four small STM32 USB Companion recipes. Keep firmware features, contact/channel capacities, filesystem boundaries and flash/RAM admission checks unchanged. Refresh downstream host fixtures for saved radio intent, deferred service restarts, WebConfig ownership, RX recovery and color tint state. Retain or strengthen behavior checks rather than skipping failing coverage. Validation: canonical RAK3x72, Wio Mini, Wio Dev and Tiny Relay USB Companion packages and Mini Repeater build passed at release-version length. All post-failure host checks, compact arithmetic/float checks, build-profile and real PlatformIO recipe/path/RAM-policy checks passed locally.
132 lines
4.7 KiB
INI
132 lines
4.7 KiB
INI
[lora_e5]
|
|
extends = stm32_base
|
|
board = lora_e5_dev_board
|
|
board_upload.maximum_size = 229376 ; 32kb for FS
|
|
build_flags = ${stm32_base.build_flags}
|
|
-D RADIO_CLASS=CustomSTM32WLx
|
|
-D WRAPPER_CLASS=CustomSTM32WLxWrapper
|
|
-D LORA_TX_POWER=22
|
|
-D SX126X_CURRENT_LIMIT=140
|
|
-D SPI_INTERFACES_COUNT=0
|
|
-D RX_BOOSTED_GAIN=true
|
|
-D PIN_SERIAL_RX=PB7
|
|
-D PIN_SERIAL_TX=PB6
|
|
-I variants/wio-e5-dev
|
|
build_src_filter = ${stm32_base.build_src_filter}
|
|
+<../variants/wio-e5-dev>
|
|
|
|
[env:wio-e5_repeater]
|
|
extends = lora_e5
|
|
platform_packages = platformio/toolchain-gccarmnoneeabi@^1.140201.0
|
|
board_upload.maximum_size = 245760 ; 240 KiB app, 16 KiB LittleFS
|
|
build_unflags = -Os
|
|
build_flags = ${lora_e5.build_flags}
|
|
-Oz ; strongest size profile preserves the deployed 16 KiB filesystem boundary
|
|
-flto
|
|
-fno-inline-small-functions ; reduce flash without moving the deployed filesystem boundary
|
|
-fipa-pta
|
|
-fmerge-all-constants
|
|
-fno-ipa-cp-clone
|
|
-fno-partial-inlining
|
|
-fno-semantic-interposition
|
|
-fno-unwind-tables
|
|
-fno-asynchronous-unwind-tables
|
|
-fno-schedule-insns2
|
|
-Wl,--sort-section=alignment
|
|
-D LFS_FLASH_TOTAL_SIZE=16384
|
|
-D MESH_ENABLE_CLOCK_SYNC=0 ; preserve the 16 KiB filesystem on this 256 KiB part
|
|
-D MESH_ENABLE_FLOOD_GROUP_MODERATION=0 ; keep core routing and radio scheduling in flash
|
|
-D MESH_PACKET_LOGGING_COMPACT=1 ; retain complete RX/TX bytes without the duplicate parsed RX line
|
|
-D LORA_TX_POWER=22
|
|
-D ADVERT_NAME='"WIO-E5 Repeater"'
|
|
-D ADMIN_PASSWORD='"password"'
|
|
-D MAX_NEIGHBOURS=50
|
|
build_src_filter = ${lora_e5.build_src_filter}
|
|
+<../examples/simple_repeater/*.cpp>
|
|
|
|
[env:wio-e5-repeater_bridge_rs232]
|
|
extends = lora_e5
|
|
platform_packages = platformio/toolchain-gccarmnoneeabi@^1.140201.0
|
|
board_upload.maximum_size = 245760 ; 240 KiB app, 16 KiB LittleFS
|
|
build_unflags = -Os
|
|
build_flags = ${lora_e5.build_flags}
|
|
-Oz
|
|
-flto
|
|
-fno-inline-small-functions ; reduce flash without moving the deployed filesystem boundary
|
|
-fipa-pta
|
|
-fmerge-all-constants
|
|
-fno-ipa-cp-clone
|
|
-fno-partial-inlining
|
|
-fno-jump-tables
|
|
-fno-tree-switch-conversion
|
|
-fno-semantic-interposition
|
|
-fno-unwind-tables
|
|
-fno-asynchronous-unwind-tables
|
|
-fno-schedule-insns2
|
|
-Wl,--sort-section=alignment
|
|
-D LFS_FLASH_TOTAL_SIZE=16384
|
|
-D MESH_ENABLE_CLOCK_SYNC=0 ; preserve the 16 KiB filesystem on this 256 KiB part
|
|
-D MESH_ENABLE_FLOOD_GROUP_MODERATION=0 ; keep core routing and radio scheduling in flash
|
|
-D MESH_PACKET_LOGGING_COMPACT=1 ; retain complete RX/TX bytes without the duplicate parsed RX line
|
|
-D MESH_ENABLE_HOST_CLI=0 ; RS232 bridge image cannot also fit the USB/MQTT host service
|
|
-D MESH_ENABLE_RECENT_REPEATERS=1
|
|
-D LORA_TX_POWER=22
|
|
-D ADVERT_NAME='"WIO-E5 Repeater"'
|
|
-D ADMIN_PASSWORD='"password"'
|
|
-D MAX_NEIGHBOURS=50
|
|
-D FLOOD_PACKET_FILTER_SLOTS=8
|
|
-D FLOOD_CHANNEL_SCOPE_SLOTS=7
|
|
-D ENABLE_HWSERIAL2
|
|
-D WITH_RS232_BRIDGE=Serial2
|
|
-D WITH_RS232_BRIDGE_UART=2
|
|
-D WITH_RS232_BRIDGE_RX=PA3
|
|
-D WITH_RS232_BRIDGE_TX=PA2
|
|
build_src_filter = ${lora_e5.build_src_filter}
|
|
+<helpers/bridges/RS232Bridge.cpp>
|
|
+<../examples/simple_repeater/*.cpp>
|
|
|
|
[env:wio-e5_companion_radio_usb]
|
|
extends = lora_e5
|
|
platform_packages = platformio/toolchain-gccarmnoneeabi@^1.140201.0
|
|
build_unflags = -Os
|
|
build_flags = ${lora_e5.build_flags}
|
|
; This headless UART Companion uses ADC, GPIO and SysTick, not PWM/tone.
|
|
; Retain the low-level TIM HAL without unused Arduino timer wrappers.
|
|
-D RADIOLIB_TONE_UNSUPPORTED
|
|
-D HAL_TIM_MODULE_ONLY
|
|
-D ED25519_COMPACT_SHA512=1 ; same hash rounds, compact loop preserves the filesystem boundary
|
|
-D ED25519_COMPACT_SCALAR=1 ; equivalent fixed-loop arithmetic preserves Companion capacities
|
|
-D ED25519_COMPACT_FIELD=1 ; share field products without moving the filesystem boundary
|
|
-Oz
|
|
-flto
|
|
-fno-inline-small-functions
|
|
-fno-tree-dominator-opts ; preserve Companion features and the 32 KiB filesystem
|
|
; Match the compact Wio Mini code layout with the complete CLI retained.
|
|
-fno-reorder-blocks
|
|
-fno-reorder-functions
|
|
-fno-caller-saves
|
|
-fno-guess-branch-probability
|
|
--param=max-crossjump-edges=1000 ; share repeated CLI tails without cutting features or storage
|
|
-fipa-pta
|
|
-fmerge-all-constants
|
|
-fno-ipa-cp-clone
|
|
-fno-partial-inlining
|
|
-fno-semantic-interposition
|
|
-fno-unwind-tables
|
|
-fno-asynchronous-unwind-tables
|
|
-fno-schedule-insns2
|
|
-Wl,--sort-section=alignment
|
|
-D LORA_TX_POWER=22
|
|
-D MAX_CONTACTS=100
|
|
-D MAX_GROUP_CHANNELS=8
|
|
-D ENABLE_USB_INTERFACE
|
|
build_src_filter = ${lora_e5.build_src_filter}
|
|
+<../examples/companion_radio/*.cpp>
|
|
lib_deps = ${lora_e5.lib_deps}
|
|
densaugeo/base64 @ ~1.4.0
|
|
|
|
[env:wio-e5_kiss_modem]
|
|
extends = lora_e5
|
|
build_src_filter = ${lora_e5.build_src_filter}
|
|
+<../examples/kiss_modem/>
|