|
|
@@ -17,13 +17,6 @@
|
|
|
-DUSE_ESP_IDF
|
|
|
lib_deps =
|
|
|
|
|
|
-[common:arduino]
|
|
|
- extends = common
|
|
|
- lib_deps =
|
|
|
- build_flags =
|
|
|
- ${common.build_flags}
|
|
|
- -DUSE_ARDUINO
|
|
|
-
|
|
|
[common:esp32-idf]
|
|
|
extends = common:idf
|
|
|
platform = platformio/espressif32 @ 5.2.0
|
|
|
@@ -50,61 +43,54 @@
|
|
|
-Wall
|
|
|
-Wextra
|
|
|
-Wunreachable-code
|
|
|
- -Wshadow-compatible-local
|
|
|
+ ;-Wshadow-compatible-local
|
|
|
-fno-exceptions
|
|
|
|
|
|
+; The main env - default
|
|
|
[env:esp32cam]
|
|
|
- extends = common:esp32-idf
|
|
|
- board = esp32cam
|
|
|
- framework = espidf
|
|
|
- build_flags =
|
|
|
- ;Add macro definition ENABLE_MQTT, ENABLE_INFLUXDB, DEBUG_DETAIL_ON
|
|
|
- ;if ENABLE_SOFTAP = disabled, set CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n in sdkconfig.defaults to save 28k of flash
|
|
|
- -D ENABLE_MQTT -D ENABLE_INFLUXDB -D ENABLE_SOFTAP
|
|
|
- ${common:esp32-idf.build_flags}
|
|
|
- ${flags:runtime.build_flags}
|
|
|
- board_build.partitions = partitions.csv
|
|
|
- monitor_speed = 115200
|
|
|
- monitor_rts = 0
|
|
|
- monitor_dtr = 0
|
|
|
-
|
|
|
-
|
|
|
-[env:esp32cam-dev]
|
|
|
extends = common:esp32-idf
|
|
|
-board = node32s
|
|
|
-board_build.flash_mode = qio
|
|
|
+board = esp32cam
|
|
|
+framework = espidf
|
|
|
+build_flags =
|
|
|
+ ; ### common imported :
|
|
|
+ ${common:esp32-idf.build_flags}
|
|
|
+ ${flags:runtime.build_flags}
|
|
|
+ ; ### Sofware options : (can be set in defines.h)
|
|
|
+ -D ENABLE_MQTT
|
|
|
+ -D ENABLE_INFLUXDB
|
|
|
+ -D ENABLE_SOFTAP
|
|
|
+board_build.partitions = partitions.csv
|
|
|
+monitor_speed = 115200
|
|
|
+monitor_rts = 0
|
|
|
+monitor_dtr = 0
|
|
|
+
|
|
|
+; full standalone dev mode
|
|
|
+; As sample, the board is nod32s instead of esp32cam (do not change nothing in fact :)
|
|
|
+; You can test newer platform_packages
|
|
|
+; or flash mode (board_build.flash_mode = qio)
|
|
|
+[env:esp32cam-dev]
|
|
|
+extends = common:esp32-idf
|
|
|
+board = esp32cam ; node32s
|
|
|
+;board_build.flash_mode = qio ;generate SPI_FAST_FLASH_BOOT boot loop
|
|
|
build_flags =
|
|
|
; ### common imported :
|
|
|
${common:esp32-idf.build_flags}
|
|
|
${flags:clangtidy.build_flags}
|
|
|
- ; ### Sofware options :
|
|
|
+ ; ### Sofware options : (can be set in defines.h)
|
|
|
-D ENABLE_MQTT
|
|
|
-D ENABLE_INFLUXDB
|
|
|
;-D ENABLE_SOFTAP
|
|
|
- ;### test options
|
|
|
+ ; ### Debug options :
|
|
|
+ ;-D DEBUG_DETAIL_ON
|
|
|
+ ;-D DEBUG_DISABLE_BROWNOUT_DETECTOR
|
|
|
+ ;-D DEBUG_ENABLE_SYSINFO
|
|
|
+ ;-D DEBUG_ENABLE_PERFMON
|
|
|
+ ;-D DEBUG_HIMEM_MEMORY_CHECK
|
|
|
+ ;### test options
|
|
|
-D CONFIG_ESP_TASK_WDT
|
|
|
;-D CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL
|
|
|
- -D CONFIG_SPIRAM
|
|
|
-D CONFIG_ESP_TASK_WDT_TIMEOUT_S ; fix for CONFIG_ESP_INT_WDT_TIMEOUT_MS
|
|
|
- ; ### Debug options :
|
|
|
- -D DEBUG_DETAIL_ON
|
|
|
- ;-D DEBUG_DISABLE_BROWNOUT_DETECTOR
|
|
|
- -D DEBUG_ENABLE_SYSINFO
|
|
|
- -D DEBUG_ENABLE_PERFMON
|
|
|
- ;Task analysis
|
|
|
- -D TASK_ANALYSIS_ON
|
|
|
- -D CONFIG_FREERTOS_USE_TRACE_FACILITY
|
|
|
- -D CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS
|
|
|
- -D CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID
|
|
|
- ;#### enable support for 8Mb SPIRAM_ ; testing : https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/himem.html
|
|
|
- -DBOARD_HAS_PSRAM
|
|
|
- -mfix-esp32-psram-cache-issue
|
|
|
- -D CONFIG_SPIRAM_TYPE_AUTO
|
|
|
- -D CONFIG_SPIRAM_USE_CAPS_ALLOC
|
|
|
- -D CONFIG_SPIRAM_USE_MALLOC
|
|
|
- ;-D CONFIG_SPIRAM_BANKSWITCH_ENABLE=y
|
|
|
- -D CONFIG_SPIRAM_BANKSWITCH_RESERVE=8
|
|
|
- ;-D CONFIG_SPIRAM_BANKSWITCH_RESERVE=4
|
|
|
+ ;-D USE_HIMEM_IF_AVAILABLE
|
|
|
framework = espidf
|
|
|
lib_ldf_mode = deep+
|
|
|
platform = platformio/espressif32 @ 5.2.0
|
|
|
@@ -114,17 +100,111 @@ platform_packages =
|
|
|
;platformio/tool-cmake @ 3.16.4
|
|
|
;platformio/tool-cmake@^3.21.3
|
|
|
;platformio/tool-esptoolpy @ 1.40201.0 (4.2.1)
|
|
|
- platformio/tool-esptoolpy@^1.40400.0
|
|
|
+;platformio/tool-esptoolpy@^1.40400.0
|
|
|
;platformio/tool-idf @ 1.0.1
|
|
|
;platformio/tool-mconf @ 1.4060000.20190628 (406.0.0)
|
|
|
;platformio/tool-ninja @ 1.9.0
|
|
|
;platformio/tool-ninja @ 1.10.2
|
|
|
;platformio/toolchain-esp32ulp @ 1.22851.191205 (2.28.51)
|
|
|
- espressif/toolchain-esp32ulp @ 2.35.0-20220830
|
|
|
- ;platformio/toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch3
|
|
|
+;espressif/toolchain-esp32ulp @ 2.35.0-20220830
|
|
|
+ ;platformio/toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
|
|
|
;platformio/toolchain-xtensa-esp32 @ 11.2.0+2022r1
|
|
|
-
|
|
|
+
|
|
|
+; platformio/espressif32 @ 5.3.0 dependencies :
|
|
|
+ ;platformio/framework-espidf @ 3.40403.0
|
|
|
+ ;platformio/tool-cmake @ 3.16.4
|
|
|
+ ;platformio/tool-esptoolpy@^1.40400.0
|
|
|
+ ;platformio/tool-idf @ 1.0.1
|
|
|
+ ;platformio/tool-mconf @ 1.4060000.20190628
|
|
|
+ ;platformio/tool-ninja @ 1.9.0
|
|
|
+ ;espressif/toolchain-esp32ulp @ 2.35.0-20220830
|
|
|
+ ;;;;espressif/toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
|
|
|
board_build.partitions = partitions.csv
|
|
|
monitor_speed = 115200
|
|
|
monitor_rts = 0
|
|
|
monitor_dtr = 0
|
|
|
+
|
|
|
+
|
|
|
+; Activate all debug mode
|
|
|
+; Cannot be used alone, but must be added at the end of extends = env:esp32cam-dev, esp32cam-debug
|
|
|
+;If multiple items specified in the extends field then only values from the latter one will be used in the final configuration
|
|
|
+;https://docs.platformio.org/en/stable/projectconf/section_env_advanced.html
|
|
|
+[env:esp32cam-debug] ; activate all debug
|
|
|
+;extends nothing, only apply sdkconfig.esp32-debug.defaults, enable debug options and clangtidy
|
|
|
+build_flags =
|
|
|
+ ; ### clangtidy build flags:
|
|
|
+ ${flags:clangtidy.build_flags}
|
|
|
+ ; ### Debug options :
|
|
|
+ -D DEBUG_DETAIL_ON
|
|
|
+ ;-D DEBUG_DISABLE_BROWNOUT_DETECTOR
|
|
|
+ -D DEBUG_ENABLE_SYSINFO
|
|
|
+ -D DEBUG_ENABLE_PERFMON
|
|
|
+ ;-D DEBUG_HIMEM_MEMORY_CHECK
|
|
|
+ ;-D USE_HIMEM_IF_AVAILABLE
|
|
|
+lib_ldf_mode = deep+
|
|
|
+
|
|
|
+; Power management enabled
|
|
|
+;https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/power_management.html
|
|
|
+;https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/kconfig.html#config-pm-enable
|
|
|
+[env:esp32cam-power-management]
|
|
|
+build_flags =
|
|
|
+ -D TCONFIG_PM_ENABLE
|
|
|
+ -D CONFIG_PM_DFS_INIT_AUTO
|
|
|
+ -D CONFIG_FREERTOS_USE_TICKLESS_IDLE
|
|
|
+ ;-D FREERTOS_IDLE_TIME_BEFORE_SLEEP=3
|
|
|
+
|
|
|
+;**********************
|
|
|
+; next section use modified version CMakeLists.txt of to use sdkconfig.<pioenv>.defaults + sdkconfig.defaults
|
|
|
+; https://github.com/platformio/platform-espressif32/issues/638
|
|
|
+
|
|
|
+
|
|
|
+; set board to rev3
|
|
|
+[env:esp32cam-board-rev3]
|
|
|
+extends = env:esp32cam-dev, esp32cam-debug
|
|
|
+
|
|
|
+; set CPU frequency to 240 instead of 160 default
|
|
|
+[env:esp32cam-cpu-freq-240]
|
|
|
+extends = env:esp32cam-dev, esp32cam-debug
|
|
|
+; sdkconfig.esp32cam-board-rev3.defaults override some sdkconfig.defaults
|
|
|
+
|
|
|
+; set board to rev3 + CPU frequency to 240
|
|
|
+; look at the extends : it takes esp32cam-dev and add env:esp32cam-board-rev3, env:esp32cam-cpu-freq-240 , esp32cam-debug parameters
|
|
|
+[env:esp32cam-board-rev3-cpu-freq-240]
|
|
|
+extends = env:esp32cam-dev, env:esp32cam-board-rev3, env:esp32cam-cpu-freq-240 , esp32cam-debug
|
|
|
+
|
|
|
+; set board to rev3 + CPU frequency to 240 + power management
|
|
|
+[env:esp32cam-board-rev3-cpu-freq-240-pow]
|
|
|
+extends = env:esp32cam-dev, env:esp32cam-board-rev3, env:esp32cam-cpu-freq-240 , env:esp32cam-power-management, esp32cam-debug
|
|
|
+
|
|
|
+; Enable use of 8 MB PSRAM boards
|
|
|
+;https://github.com/espressif/esp-idf/blob/master/examples/system/himem/README.md
|
|
|
+[env:esp32cam-dev-himem]
|
|
|
+extends = env:esp32cam-dev, esp32cam-debug
|
|
|
+; sdkconfig.esp32cam-dev-himem.defaults override some sdkconfig.defaults
|
|
|
+build_flags =
|
|
|
+ -DBOARD_HAS_PSRAM
|
|
|
+ ;-D DEBUG_HIMEM_MEMORY_CHECK
|
|
|
+ ;-D USE_HIMEM_IF_AVAILABLE
|
|
|
+
|
|
|
+; set options for task analysis (PR #1751)
|
|
|
+[env:esp32cam-dev-task-analysis]
|
|
|
+extends = env:esp32cam-dev, esp32cam-debug
|
|
|
+; sdkconfig.esp32cam-dev-task-analysis.defaults override some sdkconfig.defaults
|
|
|
+build_flags =
|
|
|
+ ;-D DEBUG_DETAIL_ON ; if esp32cam-debug not in extends
|
|
|
+ -D TASK_ANALYSIS_ON
|
|
|
+
|
|
|
+
|
|
|
+; Overwrite espcam build_flags to not include ENABLE_SOFTAP
|
|
|
+; Nor the -U ENABLE_SOFTAP nor -D ENABLE_SOFTAP=0 works to unset defines actually
|
|
|
+; Set CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n in sdkconfig.esp32cam-no-softap.defaults to disable softap in the esp-idf compilation
|
|
|
+[env:esp32cam-no-softap] ;CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n saves 28k of flash
|
|
|
+extends = env:esp32cam
|
|
|
+build_flags =
|
|
|
+ ; ### common imported :
|
|
|
+ ${common:esp32-idf.build_flags}
|
|
|
+ ${flags:clangtidy.build_flags}
|
|
|
+ ; ### Sofware options :
|
|
|
+ -D ENABLE_MQTT
|
|
|
+ -D ENABLE_INFLUXDB
|
|
|
+ ;-D ENABLE_SOFTAP ; disabled
|