mirror of
https://github.com/ratspeak/microReticulum
synced 2026-08-12 18:07:25 -04:00
Introduces a flexible two-class allocator architecture (RNS_DEFAULT_ALLOCATOR and RNS_CONTAINER_ALLOCATOR) supporting heap, PSRAM, and TLSF pool variants for fine-grained control over embedded memory layout. - New Memory.h/cpp with ContainerAllocator<T>, heap/PSRAM/pool allocator types, and heap stats reporting - IdentityTable and PathTable now use ContainerAllocator - Replaced RNS_USE_TLSF/RNS_USE_ALLOCATOR/RNS_USE_PSRAM flags with per-class allocator flags (RNS_DEFAULT_ALLOCATOR, RNS_CONTAINER_ALLOCATOR) - Added ESP32 PSRAM allocator support (RNS_PSRAM_ALLOCATOR, RNS_PSRAM_POOL_ALLOCATOR) - Added Transport::get_path()/remove_path() helpers - Added loop callback (set_loop_callback) to enable more responsive app during long operations (like clean_cache) - Aded guard against re-entrancy to clean_cache() - Added callback option to list_directory() to avoid heap allocation - Added OOM auto-restart (ESP.restart/NVIC_SystemReset) in Interface send/receive and Reticulum loop. - Renamed setLogCallback to set_log_callback - Made Link/Identity static members private - Added native14 env to CI and platformio.ini - Bumped version to 0.2.10
228 lines
4.8 KiB
INI
228 lines
4.8 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 = native17
|
|
|
|
[env]
|
|
monitor_speed = 115200
|
|
build_unflags =
|
|
-fno-exceptions
|
|
build_flags =
|
|
-fexceptions
|
|
-Wall
|
|
;-Wextra
|
|
-Wno-missing-field-initializers
|
|
-Wno-format
|
|
-Wno-unused-parameter
|
|
-Isrc
|
|
-DLIBRARY_TEST
|
|
;-DNDEBUG
|
|
-DRNS_USE_FS
|
|
-DRNS_PERSIST_PATHS
|
|
lib_deps =
|
|
ArduinoJson@^7.4.2
|
|
MsgPack@^0.4.2
|
|
https://github.com/attermann/Crypto.git
|
|
test_framework = unity
|
|
; Following property enables Unity integration testing
|
|
test_build_src = true
|
|
|
|
[env:native]
|
|
platform = native
|
|
build_flags =
|
|
${env.build_flags}
|
|
-std=gnu++11
|
|
-DNATIVE
|
|
lib_deps =
|
|
${env.lib_deps}
|
|
lib_compat_mode = off
|
|
|
|
[env:native14]
|
|
platform = native
|
|
build_unflags =
|
|
${env.build_unflags}
|
|
-std=gnu++11
|
|
build_flags =
|
|
${env.build_flags}
|
|
-std=gnu++14
|
|
-DNATIVE
|
|
lib_deps =
|
|
${env.lib_deps}
|
|
lib_compat_mode = off
|
|
|
|
[env:native17]
|
|
platform = native
|
|
build_unflags =
|
|
${env.build_unflags}
|
|
-std=gnu++11
|
|
build_flags =
|
|
${env.build_flags}
|
|
-std=gnu++17
|
|
-DNATIVE
|
|
lib_deps =
|
|
${env.lib_deps}
|
|
lib_compat_mode = off
|
|
|
|
[env:native20]
|
|
platform = native
|
|
build_unflags =
|
|
${env.build_unflags}
|
|
-std=gnu++11
|
|
build_flags =
|
|
${env.build_flags}
|
|
-std=gnu++20
|
|
-DNATIVE
|
|
lib_deps =
|
|
${env.lib_deps}
|
|
lib_compat_mode = off
|
|
|
|
[env:native_debug]
|
|
platform = native
|
|
build_unflags =
|
|
${env.build_unflags}
|
|
-std=gnu++11
|
|
build_flags =
|
|
${env.build_flags}
|
|
;-std=gnu++11
|
|
-std=gnu++17
|
|
-DNATIVE
|
|
; CBA TEST
|
|
;-fsanitize=address
|
|
-fno-omit-frame-pointer
|
|
-g
|
|
;-O1
|
|
-O0
|
|
;-DBOARD_HAS_PSRAM=1
|
|
;-DRNS_DEFAULT_ALLOCATOR=RNS_HEAP_ALLOCATOR
|
|
-DRNS_DEFAULT_ALLOCATOR=RNS_HEAP_POOL_ALLOCATOR
|
|
-DRNS_CONTAINER_ALLOCATOR=RNS_ALTHEAP_POOL_ALLOCATOR
|
|
;-DRNS_HEAP_POOL_BUFFER_SIZE=81920
|
|
;-DRNS_HEAP_POOL_BUFFER_SIZE=102400
|
|
-DRNS_HEAP_POOL_BUFFER_SIZE=204800
|
|
;-DRNS_HEAP_POOL_BUFFER_SIZE=307200
|
|
;-DRNS_HEAP_POOL_BUFFER_SIZE=409600
|
|
;-DRNS_HEAP_POOL_BUFFER_SIZE=512000
|
|
;-DRNS_HEAP_POOL_BUFFER_SIZE=614400
|
|
;-DRNS_HEAP_POOL_BUFFER_SIZE=1024000
|
|
-DRNS_ALTHEAP_POOL_BUFFER_SIZE=2048000
|
|
-DTLSF_DEBUG=1
|
|
;-DRNS_MEM_LOG
|
|
lib_deps =
|
|
${env.lib_deps}
|
|
lib_compat_mode = off
|
|
test_flags = -vvv
|
|
|
|
[env:embedded]
|
|
framework = arduino
|
|
upload_speed = 460800
|
|
build_unflags =
|
|
${env.build_unflags}
|
|
-std=gnu++11
|
|
;-fno-rtti
|
|
build_flags =
|
|
${env.build_flags}
|
|
-std=gnu++17
|
|
lib_deps =
|
|
${env.lib_deps}
|
|
|
|
[env:ttgo-lora32-v21]
|
|
extends = env:embedded
|
|
platform = espressif32
|
|
board = ttgo-lora32-v21
|
|
board_build.partitions = no_ota.csv
|
|
build_unflags =
|
|
${env:embedded.build_unflags}
|
|
-std=gnu++11
|
|
build_flags =
|
|
${env:embedded.build_flags}
|
|
-std=gnu++17
|
|
-DBOARD_ESP32
|
|
-DMSGPACK_USE_BOOST=OFF
|
|
lib_deps =
|
|
${env:embedded.lib_deps}
|
|
monitor_filters = esp32_exception_decoder
|
|
|
|
[env:ttgo-t-beam]
|
|
extends = env:embedded
|
|
platform = espressif32
|
|
board = ttgo-t-beam
|
|
board_build.partitions = no_ota.csv
|
|
;board_build.partitions = huge_app.csv
|
|
build_flags =
|
|
${env:embedded.build_flags}
|
|
-DBOARD_ESP32
|
|
-DMSGPACK_USE_BOOST=OFF
|
|
lib_deps =
|
|
${env:embedded.lib_deps}
|
|
monitor_filters = esp32_exception_decoder
|
|
|
|
[env:lilygo_tbeam_supreme]
|
|
extends = env:embedded
|
|
platform = espressif32
|
|
board = t-beams3-supreme
|
|
board_build.partitions = no_ota.csv
|
|
;board_build.partitions = huge_app.csv
|
|
build_flags =
|
|
${env:embedded.build_flags}
|
|
-DBOARD_ESP32
|
|
-DMSGPACK_USE_BOOST=OFF
|
|
lib_deps =
|
|
${env:embedded.lib_deps}
|
|
monitor_filters = esp32_exception_decoder
|
|
|
|
; also Heltec Wireless Tracker
|
|
[env:heltec_wifi_lora_32_V4]
|
|
extends = env:embedded
|
|
platform = espressif32
|
|
board = esp32-s3-devkitc-1
|
|
board_build.partitions = no_ota.csv
|
|
;board_build.partitions = huge_app.csv
|
|
build_flags =
|
|
${env.build_flags}
|
|
-DBOARD_ESP32
|
|
-DMSGPACK_USE_BOOST=OFF
|
|
-DARDUINO_USB_CDC_ON_BOOT=1
|
|
; CBA TEST
|
|
-DBOARD_HAS_PSRAM=1
|
|
;-DRNS_DEFAULT_ALLOCATOR=RNS_HEAP_ALLOCATOR
|
|
-DRNS_DEFAULT_ALLOCATOR=RNS_PSRAM_ALLOCATOR
|
|
;-DRNS_CONTAINER_ALLOCATOR=RNS_PSRAM_ALLOCATOR
|
|
-DRNS_CONTAINER_ALLOCATOR=RNS_PSRAM_POOL_ALLOCATOR
|
|
-DRNS_PSRAM_POOL_BUFFER_SIZE=2048000
|
|
lib_deps =
|
|
${env:embedded.lib_deps}
|
|
monitor_filters = esp32_exception_decoder
|
|
upload_speed = 921600
|
|
|
|
[env:wiscore_rak4631]
|
|
extends = env:embedded
|
|
platform = nordicnrf52
|
|
board = rak4630
|
|
board_build.partitions = no_ota.csv
|
|
build_src_filter = ${env:embedded.build_src_filter}+<../variants/rak4630>
|
|
build_flags =
|
|
${env:embedded.build_flags}
|
|
-I variants/rak4630
|
|
-fexceptions
|
|
-DBOARD_NRF52
|
|
-DRNS_DEFAULT_ALLOCATOR=RNS_HEAP_POOL_ALLOCATOR
|
|
-DRNS_HEAP_POOL_BUFFER_SIZE=204800
|
|
-DMSGPACK_USE_BOOST=OFF
|
|
lib_deps =
|
|
${env:embedded.lib_deps}
|
|
adafruit/Adafruit TinyUSB Library
|
|
|
|
; Overrides for specific tests (not working!)
|
|
[test_env:test_objects]
|
|
build_flags =
|
|
${env:embedded.build_flags}
|
|
;-DTEST_OBJECT_DATA=1
|
|
-DTEST_OBJECT_IMPL=1
|