diff --git a/platformio.ini b/platformio.ini index 0af66e786b..265105785f 100644 --- a/platformio.ini +++ b/platformio.ini @@ -875,6 +875,7 @@ extra_scripts = ; pio-scripts/enable_lto.py ; WLED initialization done. [env:ABC_WLED_ESP32P4_Shield_V2] +;; THIS IS PIOARDUINO NOW, NOT PLATFORMIO! build_src_filter = +<**/*.c> +<**/*.cpp> +<**/*.S> @@ -884,41 +885,50 @@ build_src_filter = +<**/*.c> -<**/espalexa/**> -<**/DS1307RTC*> -<**/dependencies/dmx> -platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.31-2/platform-espressif32.zip ;; https://github.com/troyhacks/platform-espressif32#Arduino/IDF5 + -<**/LovyanGFX/lgfx/v1/platforms/**> + -<**/LovyanGFX/lgfx/v1/panel/**> + -<**/LovyanGFX/lgfx/v1/touch/**> +platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.37/platform-espressif32.zip ;; https://github.com/pioarduino/platform-espressif32/releases/download/55.03.31-2/platform-espressif32.zip ;; https://github.com/troyhacks/platform-espressif32#Arduino/IDF5 platform_packages = framework-arduinoespressif32 @ https://github.com/troyhacks/arduino-esp32#feature/esp32p4 framework-arduinoespressif32-libs @ https://github.com/troyhacks/esp32-arduino-libs#main ;; 9d3db693436d2ff6244d7c981a7f19b22382bb62 ;; main ;; #d0dae8c20ba9ada0c0c3d488a8262ba0f07299bc ;; ; toolchain-riscv32-esp @ https://github.com/espressif/crosstool-NG/releases/download/esp-14.2.0_20241119/riscv32-esp-elf-14.2.0_20241119-x86_64-w64-mingw32.zip -board_build.arduino.upstream_packages = no +; board_build.arduino.upstream_packages = no board = esp32-p4-evboard -custom_add_libs = - ENABLE_VL53L8CX = https://github.com/stm32duino/VL53L8CX - USERMOD_ANIMARTRIX = https://github.com/troyhacks/animartrix.git -custom_remove_libs = - WLED_DISABLE_INFRARED = IRremoteESP8266 - WLED_DISABLE_MQTT = async-mqtt-client build_unflags = -O2 -D CONFIG_LWIP_TCPIP_TASK_AFFINITY -D CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 -D CONFIG_ARDUINO_RUNNING_CORE -D CONFIG_ARDUINO_EVENT_RUNNING_CORE -build_flags = -Ofast - -ffast-math - -mstrict-align - -fipa-pta - -freorder-blocks - -fno-jump-tables -fno-tree-switch-conversion - -Wwrite-strings - -fstrict-volatile-bitfields +build_flags = -Ofast ;; -O3 + -ffast-math + aggressive opts + -funroll-loops ;; more aggressive loop unrolling than -Ofast alone + -fno-threadsafe-statics ;; remove mutex guards on local static init + -fstrict-volatile-bitfields ;; use field width for volatile bitfield access (hardware regs) + ; -flto ;; must be in build_flags; enable_lto.py runs too late for the compiler + -fipa-pta ;; interprocedural pointer analysis; requires LTO + -ffunction-sections ;; isolate functions for linker GC + -fdata-sections ;; isolate data for linker GC + -Wl,--gc-sections ;; linker dead-code elimination; most effective with LTO + -fvisibility=hidden ;; hidden symbols by default; LTO inlines/eliminates more aggressively + -fno-semantic-interposition ;; no symbol interposition assumed; more cross-TU inlining with LTO + -fno-exceptions ;; drop C++ exception handling code + -fno-rtti ;; drop C++ runtime type information + -fno-unwind-tables ;; no unwind tables; safe since exceptions are disabled + -fno-asynchronous-unwind-tables ;; no async unwind tables; safe since exceptions are disabled + -fno-jump-tables ;; avoid jump tables in flash (Xtensa i-cache unfriendly) + -fmerge-all-constants ;; deduplicate identical constants across translation units + ; -mtext-section-literals ;; inline literals in text; bloats flash on Xtensa, leave disabled + -Wl,--defsym=_cleanup_r=0 ;; stub out newlib cleanup (bare-metal, no OS to return to) + ; -D WLED_ENABLE_COLORLIGHT -D WLED_MAX_USERMODS=25 -D WLEDMM_FASTPATH -D WLEDMM_REMAP_AT_OUTPUT - -D WLEDMM_DISPLAY_W=800 ;; DSI Display Width - -D WLEDMM_DISPLAY_H=1280 ;; DIS Display Height - -D WLEDMM_DISPLAY_DEPTH=24 ;; DSI Display Bits Per Pixel (24 for RGB888) - -D WLEDMM_DISPLAY_BUTTONS=32 - -D WLEDMM_DISPLAY_BUTTONS_COLS=8 - -D REALTIME_OUTPUT_TIMER + ; -D WLEDMM_DISPLAY_W=800 ;; DSI Display Width + ; -D WLEDMM_DISPLAY_H=1280 ;; DIS Display Height + ; -D WLEDMM_DISPLAY_DEPTH=24 ;; DSI Display Bits Per Pixel (24 for RGB888) + ; -D WLEDMM_DISPLAY_BUTTONS=32 + ; -D WLEDMM_DISPLAY_BUTTONS_COLS=8 + ; -D REALTIME_OUTPUT_TIMER ; -D WLED_DISABLE_LOGGING ; -D PARLIO_TIMER ; -D PARLIO_AUTO_OVERCLOCK @@ -937,10 +947,9 @@ build_flags = -Ofast -D CORE_DEBUG_LEVEL=0 ;; ESP_LOG_VERBOSE ;; ESP_LOG_VERBOSE == 5 -D NDEBUG ;; comment this out if REALLY debugging for things like Parallel IO, PPA, etc -D WLED_USE_ETHERNET ;; Coexistence is slower but both work now. Ethernet is preferred automatically. - ; -D WLED_USE_ETHERNET_ONLY ;; Disable WiFi for performance reasons - on the P4 it needs high priority background tasks to talk to the C6 + ;-D WLED_USE_ETHERNET_ONLY ;; Disable WiFi for performance reasons - on the P4 it needs high priority background tasks to talk to the C6 -D E131_MAX_UNIVERSE_COUNT=50 - -D FAKE_DEFINE_151 - -D ARTNET_TIMER + -D FAKE_DEFINE_153 ; -D ARTNET_SYNC_ENABLED ;; reduces tearing with FPP but also slower. -D MAX_LEDS=99999 ;; 65535 ;; 18432 -D MAX_LEDS_PER_BUS=99999 ;; 65535 ;; 18432 @@ -964,31 +973,19 @@ build_flags = -Ofast -D USERMOD_AUDIOREACTIVE -D USERMOD_AUTO_PLAYLIST -D USERMOD_PIONEER_PROLINK - -D USERMOD_ARTNETMAP - -D UM_AUDIOREACTIVE_USE_ESPDSP_FFT - -D SR_DMTYPE=4 ;; 9 = ES8311 (new) which is the codec chip on the ESP32-P4 EV board - -D I2S_SDPIN=33 + -D USERMOD_MIDI_USB ;; WIP usermod for control surfaces like the Akai APC Mini Mk2 (the reference controller) + -D UM_AUDIOREACTIVE_USE_ESPDSP_FFT ;; This is redundant, we ONLY use this now. + -D SR_DMTYPE=4 ;; 9 = ES8311 (new) which is the codec chip on the ESP32-P4 EV board -D I2S_WSPIN=26 -D I2S_CKPIN=32 - -D MCLK_PIN=36 + -D MCLK_PIN=36 -D SR_ENABLE_DEFAULT ; -D TROYHACKS_FAILSAFE_BUSSES ;; in case you have a bus type causing resets during testing, turn this on, upload, busses will be removed at boot. Then reflash without this flag. -D WLED_DISABLE_ESPNOW ;; not working yet due to API changes in v5.3 -D CONFIG_ADC_SUPPRESS_DEPRECATE_WARN -D CONFIG_I2S_SUPPRESS_DEPRECATE_WARN -D WLED_DISABLE_IMPROV_WIFISCAN - ; -D ENABLE_VL53L8CX - -D VL53L8CX_DISABLE_AMBIENT_PER_SPAD - -D VL53L8CX_DISABLE_NB_SPADS_ENABLED - -D VL53L8CX_DISABLE_NB_TARGET_DETECTED - -D VL53L8CX_DISABLE_SIGNAL_PER_SPAD - -D VL53L8CX_DISABLE_RANGE_SIGMA_MM - ; -D VL53L8CX_DISABLE_DISTANCE_MM - -D VL53L8CX_DISABLE_REFLECTANCE_PERCENT - ; -D VL53L8CX_DISABLE_TARGET_STATUS - -D VL53L8CX_DISABLE_MOTION_INDICATOR - ; -D SR_DEBUG - ; -D FFT_SAMPLING_LOG + ; -D SR_DEBUG ; -D USERMOD_ANIMARTRIX ; -D WLEDMM_NO_MAP_RESET ; -D WLED_DEBUG_MAPS @@ -997,7 +994,11 @@ lib_deps = https://github.com/Makuna/NeoPixelBus#CORE3 https://github.com/softhack007/FastLED.git#ESP32-C6 https://github.com/troyhacks/ESPAsyncWebServer https://github.com/lovyan03/LovyanGFX -lib_ignore = WebServer + ; https://github.com/troyhacks/animartrix.git +lib_ignore = IRremoteESP8266 + WebServer + ; SD + ; SD_MMC board_build.partitions = tools/WLED_ESP32_8MB_1500KB_FS.csv ;; WLED_ESP32_8MB.csv board_build.flash_mode = qio monitor_filters = esp32_exception_decoder, colorize @@ -1005,9 +1006,9 @@ monitor_speed = 115200 upload_speed = 921600 framework = arduino lib_compat_mode = strict -extra_scripts = pre:pio-scripts/set_conditional_libs.py - pre:pio-scripts/platformio_version.py +extra_scripts = ; pio-scripts/enable_lto.py pre:pio-scripts/set_version.py + pre:pio-scripts/platformio_version.py pre:pio-scripts/build-html.py post:pio-scripts/output_bins.py post:pio-scripts/strip-floats.py