diff --git a/CMakeLists.txt b/CMakeLists.txt index 1cefefd..7f99bc0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ idf_build_get_property(elf EXECUTABLE GENERATOR_EXPRESSION) add_custom_command( OUTPUT "idf_libs" - COMMAND ${CMAKE_SOURCE_DIR}/tools/copy-libs.sh ${IDF_TARGET} "${CONFIG_ESPTOOLPY_OCT_FLASH}" "${CONFIG_SPIRAM_MODE_OCT}" "${CONFIG_IDF_TARGET_ARCH_XTENSA}" + COMMAND ${CMAKE_SOURCE_DIR}/tools/copy-libs.sh ${IDF_TARGET} "${CONFIG_LIB_BUILDER_FLASHMODE}" "${CONFIG_SPIRAM_MODE_OCT}" "${CONFIG_IDF_TARGET_ARCH_XTENSA}" DEPENDS ${elf} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} VERBATIM @@ -29,7 +29,7 @@ add_custom_target(copy-bootloader DEPENDS "copy_bootloader") add_custom_command( OUTPUT "mem_variant" - COMMAND ${CMAKE_SOURCE_DIR}/tools/copy-mem-variant.sh ${IDF_TARGET} "${CONFIG_ESPTOOLPY_OCT_FLASH}" "${CONFIG_SPIRAM_MODE_OCT}" + COMMAND ${CMAKE_SOURCE_DIR}/tools/copy-mem-variant.sh ${IDF_TARGET} "${CONFIG_LIB_BUILDER_FLASHMODE}" "${CONFIG_SPIRAM_MODE_OCT}" DEPENDS ${elf} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} VERBATIM diff --git a/configs/builds.json b/configs/builds.json index 6d5b3a8..c32e465 100644 --- a/configs/builds.json +++ b/configs/builds.json @@ -1,34 +1,40 @@ { "mem_variants_files":[ - { - "file":"libbootloader_support.a", - "src":"build/esp-idf/bootloader_support/libbootloader_support.a", - "out":"lib/libbootloader_support.a" - }, - { - "file":"libesp_hw_support.a", - "src":"build/esp-idf/esp_hw_support/libesp_hw_support.a", - "out":"lib/libesp_hw_support.a" - }, { "file":"libspi_flash.a", "src":"build/esp-idf/spi_flash/libspi_flash.a", - "out":"lib/libspi_flash.a" - }, - { - "file":"libfreertos.a", - "src":"build/esp-idf/freertos/libfreertos.a", - "out":"lib/libfreertos.a" + "out":"lib/libspi_flash.a", + "targets":["esp32","esp32c3","esp32s2","esp32s3"] }, { "file":"libesp_system.a", "src":"build/esp-idf/esp_system/libesp_system.a", - "out":"lib/libesp_system.a" + "out":"lib/libesp_system.a", + "targets":["esp32s3"] + }, + { + "file":"libfreertos.a", + "src":"build/esp-idf/freertos/libfreertos.a", + "out":"lib/libfreertos.a", + "targets":["esp32s3"] + }, + { + "file":"libbootloader_support.a", + "src":"build/esp-idf/bootloader_support/libbootloader_support.a", + "out":"lib/libbootloader_support.a", + "targets":["esp32s3"] + }, + { + "file":"libesp_hw_support.a", + "src":"build/esp-idf/esp_hw_support/libesp_hw_support.a", + "out":"lib/libesp_hw_support.a", + "targets":["esp32s3"] }, { "file":"sections.ld", "src":"build/esp-idf/esp_system/ld/sections.ld", - "out":"ld/sections.ld" + "out":"ld/sections.ld", + "targets":["esp32s3"] } ], "targets":[ @@ -44,6 +50,8 @@ ], "mem_variants":[ ["qio","80m","opi_ram"], + ["dio","80m","qio_ram"], + ["dio","80m","opi_ram"], ["opi","80m","opi_ram"], ["opi","80m","qio_ram"] ] @@ -62,7 +70,11 @@ ["dio","40m"], ["dout","40m"] ], - "mem_variants":[] + "mem_variants":[ + ["qout","80m"], + ["dio","80m"], + ["dout","80m"] + ] }, { "target": "esp32c3", @@ -78,12 +90,16 @@ ["dio","40m"], ["dout","40m"] ], - "mem_variants":[] + "mem_variants":[ + ["qout","80m"], + ["dio","80m"], + ["dout","80m"] + ] }, { "target": "esp32", "features":["qio_ram"], - "idf_libs":["dio","40m"], + "idf_libs":["qio","80m"], "bootloaders":[ ["qio","80m"], ["qout","80m"], @@ -94,7 +110,11 @@ ["dio","40m"], ["dout","40m"] ], - "mem_variants":[] + "mem_variants":[ + ["qout","80m"], + ["dio","80m"], + ["dout","80m"] + ] } ] } \ No newline at end of file diff --git a/tools/copy-libs.sh b/tools/copy-libs.sh index 9b2f168..681fa68 100755 --- a/tools/copy-libs.sh +++ b/tools/copy-libs.sh @@ -3,13 +3,9 @@ IDF_TARGET=$1 IS_XTENSA=$4 -OCT_FLASH= +OCT_FLASH="$2" OCT_PSRAM= -if [ "$2" = "y" ]; then - OCT_FLASH="opi" -else - OCT_FLASH="qspi" -fi + if [ "$3" = "y" ]; then OCT_PSRAM="opi" else @@ -514,9 +510,18 @@ done mkdir -p "$AR_SDK/$MEMCONF/include" mv "$PWD/build/config/sdkconfig.h" "$AR_SDK/$MEMCONF/include/sdkconfig.h" for mem_variant in `jq -c '.mem_variants_files[]' configs/builds.json`; do - file=$(echo "$mem_variant" | jq -c '.file' | tr -d '"') - out=$(echo "$mem_variant" | jq -c '.out' | tr -d '"') - mv "$AR_SDK/$out" "$AR_SDK/$MEMCONF/$file" + skip_file=1 + for file_target in $(echo "$mem_variant" | jq -c '.targets[]' | tr -d '"'); do + if [ "$file_target" == "$IDF_TARGET" ]; then + skip_file=0 + break + fi + done + if [ $skip_file -eq 0 ]; then + file=$(echo "$mem_variant" | jq -c '.file' | tr -d '"') + out=$(echo "$mem_variant" | jq -c '.out' | tr -d '"') + mv "$AR_SDK/$out" "$AR_SDK/$MEMCONF/$file" + fi done; # Add IDF versions to sdkconfig diff --git a/tools/copy-mem-variant.sh b/tools/copy-mem-variant.sh index b9366ad..9b8f3b5 100755 --- a/tools/copy-mem-variant.sh +++ b/tools/copy-mem-variant.sh @@ -1,14 +1,8 @@ #!/bin/bash IDF_TARGET=$1 -OCT_FLASH= +OCT_FLASH="$2" OCT_PSRAM= -if [ "$2" = "y" ]; then - OCT_FLASH="opi" -else - OCT_FLASH="qspi" -fi - if [ "$3" = "y" ]; then OCT_PSRAM="opi" else @@ -30,7 +24,16 @@ rm -rf "$AR_SDK/$MEMCONF" mkdir -p "$AR_SDK/$MEMCONF/include" mv "build/config/sdkconfig.h" "$AR_SDK/$MEMCONF/include/sdkconfig.h" for mem_variant in `jq -c '.mem_variants_files[]' configs/builds.json`; do - file=$(echo "$mem_variant" | jq -c '.file' | tr -d '"') - src=$(echo "$mem_variant" | jq -c '.src' | tr -d '"') - cp "$src" "$AR_SDK/$MEMCONF/$file" + skip_file=1 + for file_target in $(echo "$mem_variant" | jq -c '.targets[]' | tr -d '"'); do + if [ "$file_target" == "$IDF_TARGET" ]; then + skip_file=0 + break + fi + done + if [ $skip_file -eq 0 ]; then + file=$(echo "$mem_variant" | jq -c '.file' | tr -d '"') + src=$(echo "$mem_variant" | jq -c '.src' | tr -d '"') + cp "$src" "$AR_SDK/$MEMCONF/$file" + fi done;