mirror of
https://github.com/rstrouse/ESPSomfy-RTS.git
synced 2026-10-31 13:52:15 +01:00
The Arduino core's log_printf() has its UART lock commented out and writes with ets_printf(), so lines logged at the same time from async_tcp and loop() came out interleaved character by character. It also formats short lines into one static buffer shared by every task. Wrap log_printf at link time and hold a mutex around the core's log_printfv(). It never blocks before the scheduler runs, in an ISR or in a critical section, and waits at most 50ms before printing anyway. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
111 lines
3.1 KiB
INI
111 lines
3.1 KiB
INI
; PlatformIO Project Configuration File
|
|
;
|
|
; Build options: build flags, source filter
|
|
; Upload options: custom upload port, speed and extra flags
|
|
; Library options: dependencies, extra library storages
|
|
; Advanced options: extra scripting
|
|
;
|
|
; Please visit documentation for the other options and examples
|
|
; https://docs.platformio.org/page/projectconf.html
|
|
|
|
[platformio]
|
|
default_envs = esp32devdbg
|
|
src_dir = src
|
|
|
|
; Shared by every firmware env (they extend it). Kept out of [env] so the
|
|
; native test env doesn't inherit the Arduino framework and ESP32 libraries.
|
|
[esp32]
|
|
platform = espressif32 @ 6.13.0
|
|
framework = arduino
|
|
; Unit tests only run on the PC: pio test -e native
|
|
test_ignore = *
|
|
lib_deps =
|
|
bblanchon/ArduinoJson@^7.2.2
|
|
lsatan/SmartRC-CC1101-Driver-Lib@^2.5.7
|
|
knolleary/PubSubClient@^2.8
|
|
esp32async/ESPAsyncWebServer@^3.10.3
|
|
esp32async/AsyncTCP@^3.4.10
|
|
extra_scripts =
|
|
pre:app_version.py
|
|
pre:minify.py
|
|
post:archive_elf.py
|
|
board_build.filesystem = littlefs
|
|
build_flags =
|
|
-DCORE_DEBUG_LEVEL=3
|
|
-DCONFIG_ESP_COREDUMP_ENABLE_TO_FLASH=1
|
|
-DCONFIG_ESP_COREDUMP_DATA_FORMAT_ELF=1
|
|
-DCONFIG_ESP_COREDUMP_CHECKSUM_CRC32=1
|
|
-DCONFIG_ESP_TASK_WDT_PANIC=1
|
|
-DCONFIG_ESP_COREDUMP_DECODE_INFO=1
|
|
; Route log_printf through src/LogLock.cpp so lines from both cores don't interleave.
|
|
-Wl,--wrap=log_printf
|
|
monitor_speed = 115200
|
|
monitor_filters =
|
|
time
|
|
esp32_exception_decoder
|
|
log2file
|
|
|
|
; Dual-core targets: keep the async web/socket task on core 0 so the radio
|
|
; task on core 1 (with loop()) never competes with network handling.
|
|
[dualcore]
|
|
build_flags =
|
|
${esp32.build_flags}
|
|
-DCONFIG_ASYNC_TCP_RUNNING_CORE=0
|
|
|
|
[env:esp32dev]
|
|
extends = esp32
|
|
board = esp32dev
|
|
board_build.partitions = esp32_3MB.csv
|
|
build_flags = ${dualcore.build_flags}
|
|
|
|
[env:esp32devdbg]
|
|
extends = esp32
|
|
board = esp32dev
|
|
build_type = debug
|
|
board_build.partitions = esp32_3MB.csv
|
|
build_flags = ${dualcore.build_flags}
|
|
|
|
[env:esp32c3]
|
|
extends = esp32
|
|
board = esp32-c3-devkitm-1
|
|
board_build.partitions = esp32_3MB.csv
|
|
|
|
[env:esp32s3]
|
|
extends = esp32
|
|
board = esp32-s3-devkitc-1
|
|
build_flags = ${dualcore.build_flags}
|
|
|
|
[env:esp32c6]
|
|
extends = esp32
|
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/stable/platform-espressif32.zip
|
|
board = seeed_xiao_esp32c6
|
|
build_type = debug
|
|
board_build.partitions = esp32_huge_app.csv
|
|
build_flags =
|
|
${esp32.build_flags}
|
|
-DCONFIG_FREERTOS_HZ=1000
|
|
-include "driver/gpio.h"
|
|
lib_deps =
|
|
; Low-Level libs, frameowrks and drivers
|
|
ESP32Async/AsyncTCP
|
|
https://github.com/Viproz/SmartRC-CC1101-Driver-Lib.git
|
|
; Commmunication Protocol
|
|
links2004/WebSockets
|
|
https://github.com/hmueller01/pubsubclient3.git
|
|
; Data-Parsing
|
|
bblanchon/ArduinoJson
|
|
; High-level wrappers/servers
|
|
ESP32Async/ESPAsyncWebServer
|
|
|
|
; Host-side unit tests: pio test -e native (needs gcc/g++ on PATH).
|
|
; Only the sources the tests cover are built; test/stubs stands in for Arduino.h.
|
|
[env:native]
|
|
platform = native
|
|
test_framework = unity
|
|
test_build_src = yes
|
|
build_src_filter = -<*> +<Utils.cpp> +<SomfyFrame.cpp> +<JsonFormatter.cpp> +<ShadeMotion.cpp>
|
|
build_flags =
|
|
-std=gnu++17
|
|
-Isrc
|
|
-Itest/stubs
|
|
-D_POSIX_THREAD_SAFE_FUNCTIONS
|