mirror of
https://github.com/jomjol/AI-on-the-edge-device.git
synced 2025-12-06 19:46:54 +03:00
enhance development environment (#1841)
* add sdkconfig.defaults per environment https://github.com/platformio/platform-espressif32/issues/638 * add env to platformio * add sdkconfig.<pioenv>.defaults * Update platformio.ini * Update .gitignore * Delete sdkconfig.esp32cam-cpu-freq-240.defaults * Delete sdkconfig.esp32cam-dev-himem.defaults * Delete sdkconfig.esp32cam-dev.defaults * Delete sdkconfig.esp32cam-no-softap.defaults * Add files via upload * Update sdkconfig.esp32cam-cpu-freq-240.defaults * Update platformio.ini * Update platformio.ini * Update CMakeLists.txt * Update sdkconfig.esp32cam-dev.defaults * Update platformio.ini
This commit is contained in:
7
code/.gitignore
vendored
7
code/.gitignore
vendored
@@ -6,3 +6,10 @@
|
||||
version.cpp
|
||||
sdkconfig.esp32cam
|
||||
sdkconfig.esp32cam-dev
|
||||
sdkconfig.esp32cam-debug
|
||||
sdkconfig.esp32cam-board-rev3
|
||||
sdkconfig.esp32cam-cpu-freq-240
|
||||
sdkconfig.esp32cam-board-rev3-cpu-freq-240
|
||||
sdkconfig.esp32cam-dev-himem
|
||||
sdkconfig.esp32cam-dev-task-analysis
|
||||
sdkconfig.esp32cam-no-softap
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.13.4)
|
||||
cmake_minimum_required(VERSION 3.16.0)
|
||||
|
||||
list(APPEND EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common components/tflite-micro-esp-examples/components/tflite-lib)
|
||||
|
||||
@@ -8,6 +8,15 @@ ADD_CUSTOM_COMMAND(
|
||||
COMMAND ${CMAKE_COMMAND} -P
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/version.cmake)
|
||||
|
||||
if(EXISTS "${SDKCONFIG}.defaults")
|
||||
if(EXISTS "sdkconfig.defaults")
|
||||
set(SDKCONFIG_DEFAULTS "${SDKCONFIG}.defaults;sdkconfig.defaults")
|
||||
message(STATUS "-- Using defaults: ${SDKCONFIG_DEFAULTS} + sdkconfig.defaults")
|
||||
else()
|
||||
set(SDKCONFIG_DEFAULTS "${SDKCONFIG}.defaults")
|
||||
endif()
|
||||
message(STATUS "-- Using defaults: ${SDKCONFIG_DEFAULTS}")
|
||||
endif()
|
||||
|
||||
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||
project(esp32cam-server-only)
|
||||
project(AI-on-the-edge)
|
||||
|
||||
@@ -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 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 = node32s
|
||||
board_build.flash_mode = qio
|
||||
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
|
||||
; ### 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
|
||||
|
||||
7
code/sdkconfig.esp32cam-board-rev3.defaults
Normal file
7
code/sdkconfig.esp32cam-board-rev3.defaults
Normal file
@@ -0,0 +1,7 @@
|
||||
CONFIG_ESP32_REV_MIN_0=n
|
||||
|
||||
ESP32_REV_MIN_3=y
|
||||
CONFIG_ESP32_REV_MIN_3=y
|
||||
|
||||
#https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/kconfig.html#config-spiram-cache-workaround
|
||||
CONFIG_ESP32_DPORT_WORKAROUND=n
|
||||
4
code/sdkconfig.esp32cam-cpu-freq-240.defaults
Normal file
4
code/sdkconfig.esp32cam-cpu-freq-240.defaults
Normal file
@@ -0,0 +1,4 @@
|
||||
CONFIG_FREERTOS_UNICORE=n
|
||||
CONFIG_FREERTOS_HZ=1000
|
||||
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
|
||||
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
|
||||
33
code/sdkconfig.esp32cam-debug.defaults
Normal file
33
code/sdkconfig.esp32cam-debug.defaults
Normal file
@@ -0,0 +1,33 @@
|
||||
#enable bootloader logging
|
||||
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=n
|
||||
CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2
|
||||
CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT=n
|
||||
CONFIG_FREERTOS_ASSERT_DISABLE=yn
|
||||
CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=n
|
||||
#CONFIG_LOG_DEFAULT_LEVEL_NONE=y
|
||||
#CONFIG_LOG_DEFAULT_LEVEL=0
|
||||
CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y
|
||||
CONFIG_LWIP_ESP_LWIP_ASSERT=n
|
||||
CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED=n
|
||||
CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2
|
||||
# CONFIG_LOG_COLORS is not set
|
||||
|
||||
#set default loggin to
|
||||
CONFIG_BOOTLOADER_LOG_LEVEL_ERROR=y
|
||||
# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set
|
||||
# CONFIG_BOOTLOADER_LOG_LEVEL_INFO is not set
|
||||
# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set
|
||||
# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set
|
||||
CONFIG_BOOTLOADER_LOG_LEVEL=2
|
||||
|
||||
#disable lookup function
|
||||
CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
|
||||
# CONFIG_ESP_ERR_TO_NAME_LOOKUP is not set
|
||||
|
||||
#no panic message
|
||||
ESP_SYSTEM_PANIC_SILENT_REBOOT=n
|
||||
|
||||
#disable ADC calibration (needed for external sensors)
|
||||
CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y
|
||||
CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y
|
||||
CONFIG_ADC_CAL_LUT_ENABLE=needed
|
||||
34
code/sdkconfig.esp32cam-dev-himem.defaults
Normal file
34
code/sdkconfig.esp32cam-dev-himem.defaults
Normal file
@@ -0,0 +1,34 @@
|
||||
#### https://github.com/espressif/esp-idf/blob/master/examples/system/himem/sdkconfig.defaults
|
||||
CONFIG_SPIRAM=y
|
||||
CONFIG_SPIRAM_SUPPORT=y
|
||||
CONFIG_SPIRAM_BOOT_INIT=y
|
||||
CONFIG_SPIRAM_IGNORE_NOTFOUND=n
|
||||
CONFIG_SPIRAM_USE_MALLOC=y
|
||||
CONFIG_SPIRAM_TYPE_AUTO=y
|
||||
CONFIG_SPIRAM_SIZE=-1
|
||||
CONFIG_SPIRAM_SPEED_40M=y
|
||||
CONFIG_SPIRAM_MEMTEST=y
|
||||
CONFIG_SPIRAM_CACHE_WORKAROUND=y
|
||||
CONFIG_SPIRAM_BANKSWITCH_ENABLE=y
|
||||
CONFIG_SPIRAM_BANKSWITCH_RESERVE=4
|
||||
|
||||
CONFIG_SPIRAM_USE_CAPS_ALLOC=y
|
||||
|
||||
/* some references for testing
|
||||
|
||||
# https://github.com/platformio/platform-espressif32/issues/185
|
||||
|
||||
#define CONFIG_SPIRAM_SUPPORT 1
|
||||
#define CONFIG_PICO_PSRAM_CS_IO 10
|
||||
#define CONFIG_ESP32_SPIRAM_SUPPORT 1
|
||||
#define CONFIG_SPIRAM_BOOT_INIT 1
|
||||
#define CONFIG_SPIRAM_IGNORE_NOTFOUND 0
|
||||
#define CONFIG_SPIRAM_TYPE_AUTO 1
|
||||
#define CONFIG_SPIRAM_SIZE -1
|
||||
#define CONFIG_SPIRAM_USE_MEMMAP 1
|
||||
#define CONFIG_SPIRAM_SPEED_40M 1
|
||||
#define SPIRAM_USE_MALLOC 1
|
||||
#define CONFIG_SPIRAM_CACHE_WORKAROUND 1
|
||||
#define CONFIG_SPIRAM_BANKSWITCH_ENABLE 1
|
||||
#define CONFIG_SPIRAM_BANKSWITCH_RESERVE 8
|
||||
*/
|
||||
3
code/sdkconfig.esp32cam-dev-task-analysis.defaults
Normal file
3
code/sdkconfig.esp32cam-dev-task-analysis.defaults
Normal file
@@ -0,0 +1,3 @@
|
||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=1
|
||||
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
|
||||
CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=y
|
||||
36
code/sdkconfig.esp32cam-dev.defaults
Normal file
36
code/sdkconfig.esp32cam-dev.defaults
Normal file
@@ -0,0 +1,36 @@
|
||||
### nothing actually
|
||||
|
||||
|
||||
/* #disabled
|
||||
|
||||
#### recommended optimizations to test
|
||||
#https://docs.espressif.com/projects/esp-at/en/latest/esp32/Compile_and_Develop/How_to_optimize_throughput.html
|
||||
|
||||
# System
|
||||
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=4096
|
||||
CONFIG_FREERTOS_UNICORE=n
|
||||
CONFIG_FREERTOS_HZ=1000
|
||||
#CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
|
||||
#CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
|
||||
#CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
|
||||
#CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
|
||||
|
||||
# LWIP
|
||||
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=65534
|
||||
CONFIG_LWIP_TCP_WND_DEFAULT=65534
|
||||
CONFIG_LWIP_TCP_RECVMBOX_SIZE=12
|
||||
CONFIG_LWIP_UDP_RECVMBOX_SIZE=12
|
||||
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64
|
||||
|
||||
# Wi-Fi
|
||||
#CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=16
|
||||
#CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=64
|
||||
#CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=64
|
||||
#CONFIG_ESP32_WIFI_TX_BA_WIN=32
|
||||
#CONFIG_ESP32_WIFI_RX_BA_WIN=32
|
||||
#CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
|
||||
#CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
|
||||
|
||||
## end of recommended optimizations
|
||||
|
||||
*/
|
||||
Reference in New Issue
Block a user