diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml deleted file mode 100644 index 117ca8361..000000000 --- a/.github/workflows/cron.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Cron Build - -on: - schedule: -# ┌───────────── minute (0 - 59) -# │ ┌───────────── hour (0 - 23) -# │ │ ┌───────────── day of the month (1 - 31) -# │ │ │ ┌───────────── month (1 - 12 or JAN-DEC) -# │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT) -# │ │ │ │ │ -# │ │ │ │ │ -# │ │ │ │ │ -# * * * * * - - cron: '0 */6 * * *' - -jobs: - run: - name: Build with IDF ${{ matrix.idf_branch }} - runs-on: ubuntu-latest - - strategy: - matrix: - idf_branch: [release/v4.4] #, release/v3.3] - steps: - - uses: actions/checkout@v1 - - name: Install dependencies - run: bash ./tools/prepare-ci.sh - - name: Build - env: - GITHUB_TOKEN: ${{ secrets.PUSH_TOKEN }} - GIT_AUTHOR_EMAIL: ${{ secrets.PUSH_EMAIL }} - GIT_COMMITTER_EMAIL: ${{ secrets.PUSH_EMAIL }} - IDF_BRANCH: ${{ matrix.idf_branch }} - run: bash ./tools/cron.sh - - name: Upload archive - uses: actions/upload-artifact@v1 - with: - name: artifacts - path: dist diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 0d62c8d5e..293608981 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -1,31 +1,32 @@ -name: ESP32 Arduino Libs CI +name: Arduino IDF 5.x on: - push: - branches: - - master - pull_request: - -concurrency: - group: esp-idf-libs-${{github.event.pull_request.number || github.ref}} - cancel-in-progress: true + workflow_dispatch: # Manually start a workflow jobs: build-libs: - name: Build Libs for ${{ matrix.target }} - runs-on: ubuntu-latest - strategy: - matrix: - target: [esp32, esp32s2, esp32s3, esp32c3] - fail-fast: false + name: Build Arduino Libs + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.7' - name: Install dependencies run: bash ./tools/prepare-ci.sh - - name: Build Libs for ${{ matrix.target }} - run: bash ./build.sh -t ${{ matrix.target }} - - name: Upload archive - uses: actions/upload-artifact@v1 + - name: Build Arduino Libs + run: bash ./build.sh + - name: Display files + run: ls -R ./* + - name: Release + uses: jason2866/action-gh-release@v1.2 with: - name: artifacts-${{ matrix.target }} - path: dist + tag_name: ${{ github.run_number }} + body_path: release-info.txt + prerelease: true + files: | + dist/framework* + release-info.txt + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/repository_dispatch.yml b/.github/workflows/repository_dispatch.yml deleted file mode 100644 index 016b84831..000000000 --- a/.github/workflows/repository_dispatch.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Remote Trigger - -on: repository_dispatch - -jobs: - run: - name: Dispatch Event - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - name: Install dependencies - run: bash ./tools/prepare-ci.sh - - name: Handle Event - env: - GITHUB_TOKEN: ${{ secrets.PUSH_TOKEN }} - GIT_AUTHOR_EMAIL: ${{ secrets.PUSH_EMAIL }} - GIT_COMMITTER_EMAIL: ${{ secrets.PUSH_EMAIL }} - run: bash ./tools/repository_dispatch.sh - - name: Upload archive - uses: actions/upload-artifact@v1 - with: - name: artifacts - path: dist diff --git a/.gitignore b/.gitignore index 4d9511e9d..3128aa229 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ sdkconfig sdkconfig.old version.txt dependencies.lock +managed_components/ diff --git a/CMakeLists.txt b/CMakeLists.txt index a3be4c620..023aa709c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,8 +2,6 @@ # CMakeLists in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.5) -set(EXTRA_COMPONENT_DIRS ${CMAKE_SOURCE_DIR}/components/esp-rainmaker/components ${CMAKE_SOURCE_DIR}/components/esp-insights/components) - include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(arduino-lib-builder) diff --git a/build.sh b/build.sh index 2ef451734..5fc41769d 100755 --- a/build.sh +++ b/build.sh @@ -17,7 +17,7 @@ COPY_OUT=0 DEPLOY_OUT=0 function print_help() { - echo "Usage: build.sh [-s] [-A ] [-I ] [-i ] [-c ] [-t ] [-b ] [config ...]" + echo "Usage: build.sh [-s] [-A ] [-I ] [-i ] [-c ] [-t ] [-b ] [config ...]" echo " -s Skip installing/updating of ESP-IDF and all components" echo " -A Set which branch of arduino-esp32 to be used for compilation" echo " -I Set which branch of ESP-IDF to be used for compilation" @@ -58,6 +58,7 @@ while getopts ":A:I:i:c:t:b:sd" opt; do b=$OPTARG if [ "$b" != "build" ] && [ "$b" != "menuconfig" ] && + [ "$b" != "reconfigure" ] && [ "$b" != "idf_libs" ] && [ "$b" != "copy_bootloader" ] && [ "$b" != "mem_variant" ]; then @@ -121,6 +122,9 @@ if [ "$BUILD_TYPE" != "all" ]; then fi rm -rf build sdkconfig out +echo "* Reconfigure Project" +idf.py reconfigure +rm -rf build sdkconfig # Add components version info mkdir -p "$AR_TOOLS/sdk" && rm -rf version.txt && rm -rf "$AR_TOOLS/sdk/versions.txt" diff --git a/components/arduino_tinyusb/CMakeLists.txt b/components/arduino_tinyusb/CMakeLists.txt index 041eeec0f..0872021eb 100755 --- a/components/arduino_tinyusb/CMakeLists.txt +++ b/components/arduino_tinyusb/CMakeLists.txt @@ -1,37 +1,22 @@ -idf_component_register(REQUIRES esp_rom freertos soc PRIV_REQUIRES arduino main) - if(CONFIG_TINYUSB_ENABLED) ### variables ### ################# - # if(IDF_TARGET STREQUAL "esp32s2") + + if(IDF_TARGET STREQUAL "esp32s2") set(compile_options "-DCFG_TUSB_MCU=OPT_MCU_ESP32S2" "-DCFG_TUSB_DEBUG=${CONFIG_TINYUSB_DEBUG_LEVEL}" "-Wno-type-limits" # needed for the vanila tinyusb with turned off classes ) - # elseif(IDF_TARGET STREQUAL "esp32s3") - # set(compile_options - # "-DCFG_TUSB_MCU=OPT_MCU_ESP32S2" - # "-DCFG_TUSB_DEBUG=${CONFIG_TINYUSB_DEBUG_LEVEL}" - # "-Wno-type-limits" # needed for the vanila tinyusb with turned off classes - # ) - # endif() - idf_component_get_property(FREERTOS_ORIG_INCLUDE_PATH freertos - ORIG_INCLUDE_PATH) - set(includes_private - # tusb: - "${COMPONENT_DIR}/tinyusb/hw/bsp/" - "${COMPONENT_DIR}/tinyusb/src/" - "${COMPONENT_DIR}/tinyusb/src/device" - ) + elseif(IDF_TARGET STREQUAL "esp32s3") + set(compile_options + "-DCFG_TUSB_MCU=OPT_MCU_ESP32S3" + "-DCFG_TUSB_DEBUG=${CONFIG_TINYUSB_DEBUG_LEVEL}" + "-Wno-type-limits" # needed for the vanila tinyusb with turned off classes + ) + endif() - set(includes_public - # tusb: - "${FREERTOS_ORIG_INCLUDE_PATH}" - "${COMPONENT_DIR}/tinyusb/src/" - # espressif: - "${COMPONENT_DIR}/include") set(srcs # espressif: "${COMPONENT_DIR}/src/dcd_esp32sx.c" @@ -49,14 +34,37 @@ if(CONFIG_TINYUSB_ENABLED) "${COMPONENT_DIR}/tinyusb/src/device/usbd.c" "${COMPONENT_DIR}/tinyusb/src/tusb.c") + set(includes_private + # tusb: + "${COMPONENT_DIR}/tinyusb/hw/bsp/" + "${COMPONENT_DIR}/tinyusb/src/" + "${COMPONENT_DIR}/tinyusb/src/device" + ) + + idf_component_get_property(FREERTOS_ORIG_INCLUDE_PATH freertos + ORIG_INCLUDE_PATH) + set(includes_public + # tusb: + "${FREERTOS_ORIG_INCLUDE_PATH}" + "${COMPONENT_DIR}/tinyusb/src/" + # espressif: + "${COMPONENT_DIR}/include") + + set(requires esp_rom freertos soc) + set(priv_requires arduino main) ### tinyusb lib ### ################### - add_library(arduino_tinyusb STATIC ${srcs}) - target_include_directories( - arduino_tinyusb - PUBLIC ${includes_public} - PRIVATE ${includes_private}) - target_compile_options(arduino_tinyusb PRIVATE ${compile_options}) - target_link_libraries(${COMPONENT_TARGET} INTERFACE arduino_tinyusb) + idf_component_register(INCLUDE_DIRS ${includes_public} PRIV_INCLUDE_DIRS ${includes_private} SRCS ${srcs} REQUIRES ${requires} PRIV_REQUIRES ${priv_requires}) + # add_library(${COMPONENT_TARGET} STATIC ${srcs}) + # target_include_directories( + # ${COMPONENT_TARGET} + # PUBLIC ${includes_public} + # PRIVATE ${includes_private}) + target_compile_options(${COMPONENT_TARGET} PRIVATE ${compile_options}) + #target_link_libraries(${COMPONENT_TARGET} INTERFACE ${COMPONENT_TARGET}) + +else() + + idf_component_register() endif() diff --git a/components/arduino_tinyusb/src/dcd_esp32sx.c b/components/arduino_tinyusb/src/dcd_esp32sx.c index 048b44e61..29fbe99cb 100755 --- a/components/arduino_tinyusb/src/dcd_esp32sx.c +++ b/components/arduino_tinyusb/src/dcd_esp32sx.c @@ -28,17 +28,16 @@ #include "tusb_option.h" -#if (((CFG_TUSB_MCU == OPT_MCU_ESP32S2) || (CFG_TUSB_MCU == OPT_MCU_ESP32S3)) && TUSB_OPT_DEVICE_ENABLED) +#if (((CFG_TUSB_MCU == OPT_MCU_ESP32S2) || (CFG_TUSB_MCU == OPT_MCU_ESP32S3)) && CFG_TUD_ENABLED) // Espressif -#include "driver/periph_ctrl.h" #include "freertos/xtensa_api.h" #include "esp_intr_alloc.h" #include "esp_log.h" -#include "driver/gpio.h" #include "soc/dport_reg.h" #include "soc/gpio_sig_map.h" #include "soc/usb_periph.h" +#include "soc/periph_defs.h" // for interrupt source #include "device/dcd.h" @@ -60,6 +59,7 @@ typedef struct { uint16_t queued_len; uint16_t max_size; bool short_packet; + uint8_t interval; } xfer_ctl_t; static const char *TAG = "TUSB:DCD"; @@ -284,6 +284,14 @@ void dcd_disconnect(uint8_t rhport) USB0.dctl |= USB_SFTDISCON_M; } +void dcd_sof_enable(uint8_t rhport, bool en) +{ + (void) rhport; + (void) en; + + // TODO implement later +} + /*------------------------------------------------------------------*/ /* DCD Endpoint port *------------------------------------------------------------------*/ @@ -303,6 +311,7 @@ bool dcd_edpt_open(uint8_t rhport, tusb_desc_endpoint_t const *desc_edpt) xfer_ctl_t *xfer = XFER_CTL_BASE(epnum, dir); xfer->max_size = tu_edpt_packet_size(desc_edpt); + xfer->interval = desc_edpt->bInterval; if (dir == TUSB_DIR_OUT) { out_ep[epnum].doepctl &= ~(USB_D_EPTYPE0_M | USB_D_MPS0_M); @@ -423,6 +432,13 @@ bool dcd_edpt_xfer(uint8_t rhport, uint8_t ep_addr, uint8_t *buffer, uint16_t to USB0.in_ep_reg[epnum].dieptsiz = (num_packets << USB_D_PKTCNT0_S) | total_bytes; USB0.in_ep_reg[epnum].diepctl |= USB_D_EPENA1_M | USB_D_CNAK1_M; // Enable | CNAK + // For ISO endpoint with interval=1 set correct DATA0/DATA1 bit for next frame + if ((USB0.in_ep_reg[epnum].diepctl & USB_D_EPTYPE0_M) == (1 << USB_D_EPTYPE1_S) && xfer->interval == 1) { + // Take odd/even bit from frame counter. + uint32_t const odd_frame_now = (USB0.dsts & (1u << USB_SOFFN_S)); + USB0.in_ep_reg[epnum].diepctl |= (odd_frame_now ? USB_DI_SETD0PID1 : USB_DI_SETD1PID1); + } + // Enable fifo empty interrupt only if there are something to put in the fifo. if(total_bytes != 0) { USB0.dtknqr4_fifoemptymsk |= (1 << epnum); @@ -431,6 +447,13 @@ bool dcd_edpt_xfer(uint8_t rhport, uint8_t ep_addr, uint8_t *buffer, uint16_t to // Each complete packet for OUT xfers triggers XFRC. USB0.out_ep_reg[epnum].doeptsiz |= USB_PKTCNT0_M | ((xfer->max_size & USB_XFERSIZE0_V) << USB_XFERSIZE0_S); USB0.out_ep_reg[epnum].doepctl |= USB_EPENA0_M | USB_CNAK0_M; + + // For ISO endpoint with interval=1 set correct DATA0/DATA1 bit for next frame + if ((USB0.out_ep_reg[epnum].doepctl & USB_D_EPTYPE0_M) == (1 << USB_D_EPTYPE1_S) && xfer->interval == 1) { + // Take odd/even bit from frame counter. + uint32_t const odd_frame_now = (USB0.dsts & (1u << USB_SOFFN_S)); + USB0.out_ep_reg[epnum].doepctl |= (odd_frame_now ? USB_DO_SETD0PID1 : USB_DO_SETD1PID1); + } } return true; } diff --git a/configs/builds.json b/configs/builds.json index c32e465e4..e6ed5e4b0 100644 --- a/configs/builds.json +++ b/configs/builds.json @@ -41,80 +41,62 @@ { "target": "esp32s3", "features":[], - "idf_libs":["qio","80m","qio_ram"], + "idf_libs":["qio","80m","opi_ram"], "bootloaders":[ ["qio","120m","qio_ram"], ["qio","80m","qio_ram"], - ["dio","80m","qio_ram"], + ["qio","80m","opi_ram"], ["opi","80m","opi_ram"] ], "mem_variants":[ - ["qio","80m","opi_ram"], - ["dio","80m","qio_ram"], - ["dio","80m","opi_ram"], + ["qio","120m","qio_ram"], + ["qio","80m","qio_ram"], ["opi","80m","opi_ram"], ["opi","80m","qio_ram"] ] }, { "target": "esp32s2", - "features":["qio_ram"], - "idf_libs":["qio","80m"], + "features":["qio"], + "idf_libs":["dio","80m"], "bootloaders":[ ["qio","80m"], - ["qout","80m"], ["dio","80m"], - ["dout","80m"], ["qio","40m"], - ["qout","40m"], - ["dio","40m"], - ["dout","40m"] + ["dio","40m"] ], "mem_variants":[ - ["qout","80m"], - ["dio","80m"], - ["dout","80m"] + ["qio","80m"] ] }, { "target": "esp32c3", - "features":[], - "idf_libs":["qio","80m"], + "features":["qio"], + "idf_libs":["dio","80m"], "bootloaders":[ ["qio","80m"], - ["qout","80m"], ["dio","80m"], - ["dout","80m"], ["qio","40m"], - ["qout","40m"], - ["dio","40m"], - ["dout","40m"] + ["dio","40m"] ], "mem_variants":[ - ["qout","80m"], - ["dio","80m"], - ["dout","80m"] + ["qio","80m"] ] }, { "target": "esp32", - "features":["qio_ram"], - "idf_libs":["qio","80m"], + "features":["qio"], + "idf_libs":["dio","40m"], "bootloaders":[ ["qio","80m"], - ["qout","80m"], ["dio","80m"], - ["dout","80m"], ["qio","40m"], - ["qout","40m"], - ["dio","40m"], - ["dout","40m"] + ["dio","40m"] ], "mem_variants":[ - ["qout","80m"], ["dio","80m"], - ["dout","80m"] + ["qio","80m"] ] } ] -} \ No newline at end of file +} diff --git a/configs/defconfig.common b/configs/defconfig.common index cbcfd8d2c..a2af38d45 100644 --- a/configs/defconfig.common +++ b/configs/defconfig.common @@ -1,14 +1,18 @@ CONFIG_AUTOSTART_ARDUINO=y # CONFIG_WS2812_LED_ENABLE is not set -CONFIG_ARDUHAL_ESP_LOG=y +CONFIG_COMPILER_HIDE_PATHS_MACROS=y +CONFIG_APP_EXCLUDE_PROJECT_VER_VAR=y +CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR=y +# CONFIG_APP_COMPILE_TIME_DATE is not set CONFIG_BOOTLOADER_LOG_LEVEL_NONE=y -CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y -CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP=y +CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS=y +CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_NONE=y CONFIG_BT_ENABLED=y +CONFIG_BT_STACK_NO_LOG=y CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y CONFIG_BLE_MESH=y CONFIG_COMPILER_OPTIMIZATION_SIZE=y -CONFIG_COMPILER_CXX_EXCEPTIONS=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y CONFIG_COMPILER_STACK_CHECK_MODE_NORM=y CONFIG_COMPILER_WARN_WRITE_STRINGS=y CONFIG_ESP_HTTPS_SERVER_ENABLE=y @@ -37,20 +41,29 @@ CONFIG_FATFS_API_ENCODING_UTF_8=y # CONFIG_FMB_CONTROLLER_SLAVE_ID_SUPPORT is not set CONFIG_FMB_TIMER_PORT_ENABLED=y CONFIG_FREERTOS_HZ=1000 +CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y # CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION is not set CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1024 +CONFIG_HAL_ASSERTION_DISABLE=y CONFIG_HEAP_POISONING_LIGHT=y CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024 CONFIG_HTTPD_WS_SUPPORT=y -CONFIG_LOG_DEFAULT_LEVEL_ERROR=y +CONFIG_LOG_DEFAULT_LEVEL_NONE=y # CONFIG_LOG_COLORS is not set -CONFIG_LWIP_ETHARP_TRUST_IP_MAC=y +CONFIG_LWIP_LOCAL_HOSTNAME="tasmota" +CONFIG_LWIP_MAX_SOCKETS=16 +CONFIG_LWIP_SO_RCVBUF=y +CONFIG_LWIP_IP_FORWARD=y +CONFIG_LWIP_IPV4_NAPT=y # CONFIG_LWIP_DHCP_DOES_ARP_CHECK is not set CONFIG_LWIP_TCP_SYNMAXRTX=6 CONFIG_LWIP_TCP_MSS=1436 CONFIG_LWIP_TCP_RTO_TIME=3000 CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=2560 CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0=y +CONFIG_LWIP_UDP_RECVMBOX_SIZE=64 +CONFIG_LWIP_IPV6_AUTOCONFIG=y +CONFIG_LWIP_IPV6_RDNSS_MAX_DNS_SERVERS=2 CONFIG_LWIP_MAX_SOCKETS=16 CONFIG_LWIP_DHCP_RESTORE_LAST_IP=y CONFIG_LWIP_DHCP_OPTIONS_LEN=128 @@ -59,36 +72,24 @@ CONFIG_LWIP_SNTP_UPDATE_DELAY=10800000 CONFIG_LWIP_DHCP_GET_NTP_SRV=y CONFIG_MBEDTLS_PSK_MODES=y CONFIG_MBEDTLS_KEY_EXCHANGE_PSK=y -CONFIG_MBEDTLS_CAMELLIA_C=y +CONFIG_NEWLIB_NANO_FORMAT=y # CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN is not set CONFIG_MBEDTLS_SSL_PROTO_DTLS=y CONFIG_OPENSSL_ASSERT_DO_NOTHING=y CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=2048 +CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED=y CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=10 CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=2 CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=4096 +# CONFIG_UNITY_ENABLE_FLOAT is not set +# CONFIG_UNITY_ENABLE_DOUBLE is not set +# CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER is not set +# CONFIG_USE_WAKENET is not set +# CONFIG_USE_MULTINET is not set +# CONFIG_VFS_SUPPORT_SELECT is not set +# CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT is not set +# CONFIG_VFS_SUPPORT_TERMIOS is not set # CONFIG_SPI_MASTER_ISR_IN_IRAM is not set # CONFIG_SPI_SLAVE_ISR_IN_IRAM is not set CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=4096 CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=0 -CONFIG_LWIP_IPV6_AUTOCONFIG=y -CONFIG_ESP_RMAKER_SKIP_VERSION_CHECK=y -CONFIG_ESP_RMAKER_USER_ID_CHECK=y -CONFIG_ESP_INSIGHTS_ENABLED=y -CONFIG_ESP_INSIGHTS_COREDUMP_ENABLE=y -CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS=y -CONFIG_DIAG_LOG_DROP_WIFI_LOGS=y -CONFIG_DIAG_ENABLE_METRICS=y -CONFIG_DIAG_ENABLE_HEAP_METRICS=y -CONFIG_DIAG_ENABLE_WIFI_METRICS=y -CONFIG_DIAG_ENABLE_VARIABLES=y -CONFIG_DIAG_ENABLE_NETWORK_VARIABLES=y -CONFIG_ESP_COREDUMP_ENABLE=y -CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH=y -CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF=y -CONFIG_ESP_COREDUMP_CHECKSUM_CRC32=y -CONFIG_ESP_COREDUMP_MAX_TASKS_NUM=64 -CONFIG_ESP_COREDUMP_STACK_SIZE=1024 -CONFIG_MBEDTLS_DYNAMIC_BUFFER=y -CONFIG_MBEDTLS_DYNAMIC_FREE_PEER_CERT=y -CONFIG_MBEDTLS_DYNAMIC_FREE_CONFIG_DATA=y diff --git a/configs/defconfig.esp32 b/configs/defconfig.esp32 index bd38b4829..a7003718c 100644 --- a/configs/defconfig.esp32 +++ b/configs/defconfig.esp32 @@ -1,3 +1,4 @@ +CONFIG_ESP_MAC_IGNORE_MAC_CRC_ERROR=y CONFIG_BTDM_CTRL_MODE_BTDM=y CONFIG_BTDM_SCAN_DUPL_CACHE_SIZE=20 CONFIG_BT_BTC_TASK_STACK_SIZE=8192 @@ -8,16 +9,22 @@ CONFIG_BT_SPP_ENABLED=y CONFIG_BT_HFP_ENABLE=y CONFIG_BT_STACK_NO_LOG=y CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY=y -CONFIG_ESP32_SPIRAM_SUPPORT=y +CONFIG_SPIRAM=y CONFIG_SPIRAM_OCCUPY_HSPI_HOST=y -CONFIG_ESP32_ULP_COPROC_ENABLED=y -CONFIG_ESP32_XTAL_FREQ_AUTO=y +CONFIG_ULP_COPROC_ENABLED=y +CONFIG_XTAL_FREQ_AUTO=y # CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1 is not set CONFIG_FREERTOS_FPU_IN_ISR=y +# CONFIG_UNITY_ENABLE_FLOAT is not set +# CONFIG_UNITY_ENABLE_DOUBLE is not set +# CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER is not set # CONFIG_USE_WAKENET is not set # CONFIG_USE_MULTINET is not set +# CONFIG_VFS_SUPPORT_SELECT is not set +# CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT is not set +# CONFIG_VFS_SUPPORT_TERMIOS is not set CONFIG_TWAI_ERRATA_FIX_BUS_OFF_REC=y CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST=y CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID=y CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT=y -CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y \ No newline at end of file +CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y diff --git a/configs/defconfig.esp32c3 b/configs/defconfig.esp32c3 index 31c42f7a0..8b2ecbb8a 100644 --- a/configs/defconfig.esp32c3 +++ b/configs/defconfig.esp32c3 @@ -1,4 +1,32 @@ +CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS=y CONFIG_BT_BLE_BLUFI_ENABLE=y -CONFIG_ESP32C3_RTC_CLK_CAL_CYCLES=576 +CONFIG_BT_LOG_HCI_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_BTM_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_L2CAP_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_SDP_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_GAP_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_BNEP_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_PAN_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_A2D_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_AVDT_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_AVCT_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_AVRC_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_MCA_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_HID_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_APPL_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_GATT_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_SMP_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_BTIF_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_BTC_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_OSI_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_BLUFI_TRACE_LEVEL_NONE=y +CONFIG_RTC_CLK_CAL_CYCLES=576 # CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0 is not set CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=2304 +# CONFIG_UNITY_ENABLE_FLOAT is not set +# CONFIG_UNITY_ENABLE_DOUBLE is not set +# CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER is not set +# CONFIG_VFS_SUPPORT_SELECT is not set +# CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT is not set +# CONFIG_VFS_SUPPORT_TERMIOS is not set diff --git a/configs/defconfig.esp32s2 b/configs/defconfig.esp32s2 index 6dc619a9f..f6ac0ca72 100644 --- a/configs/defconfig.esp32s2 +++ b/configs/defconfig.esp32s2 @@ -1,8 +1,18 @@ CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y -CONFIG_ESP32S2_DEFAULT_CPU_FREQ_240=y -CONFIG_ESP32S2_SPIRAM_SUPPORT=y +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y +CONFIG_SPIRAM=y CONFIG_ESP32S2_KEEP_USB_ALIVE=y +CONFIG_ESP32_ULP_COPROC_RISCV=y +CONFIG_ESP32_ULP_COPROC_RESERVE_MEM=4096 # CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0 is not set # CONFIG_USE_WAKENET is not set # CONFIG_USE_MULTINET is not set -CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y \ No newline at end of file +CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y +# CONFIG_UNITY_ENABLE_FLOAT is not set +# CONFIG_UNITY_ENABLE_DOUBLE is not set +# CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER is not set +# CONFIG_USE_WAKENET is not set +# CONFIG_USE_MULTINET is not set +# CONFIG_VFS_SUPPORT_SELECT is not set +# CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT is not set +# CONFIG_VFS_SUPPORT_TERMIOS is not set diff --git a/configs/defconfig.esp32s3 b/configs/defconfig.esp32s3 index d56dedcdc..1ea7cdf34 100644 --- a/configs/defconfig.esp32s3 +++ b/configs/defconfig.esp32s3 @@ -1,7 +1,32 @@ CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y -CONFIG_ESP32S3_SPIRAM_SUPPORT=y -CONFIG_ESP32S3_RTC_CLK_CAL_CYCLES=576 +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y +CONFIG_SPIRAM=y +CONFIG_ESP32_ULP_COPROC_RISCV=y +CONFIG_ESP32_ULP_COPROC_RESERVE_MEM=4096 +CONFIG_BT_LOG_HCI_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_BTM_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_L2CAP_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_SDP_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_GAP_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_BNEP_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_PAN_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_A2D_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_AVDT_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_AVCT_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_AVRC_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_MCA_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_HID_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_APPL_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_GATT_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_SMP_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_BTIF_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_BTC_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_OSI_TRACE_LEVEL_NONE=y +CONFIG_BT_LOG_BLUFI_TRACE_LEVEL_NONE=y +CONFIG_BLE_MESH_TRACE_LEVEL_NONE=y +CONFIG_BLE_MESH_NET_BUF_TRACE_LEVEL_NONE=y +CONFIG_RTC_CLK_CAL_CYCLES=576 CONFIG_ESP32S3_UNIVERSAL_MAC_ADDRESSES_TWO=y # CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND is not set # CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1 is not set @@ -9,4 +34,14 @@ CONFIG_SR_WN_MODEL_WN8_QUANT=y CONFIG_SR_WN_WN8_HIESP=y CONFIG_SR_MN_ENGLISH=y CONFIG_SR_MN_EN_MULTINET5_SINGLE_RECOGNITION_QUANT8=y -CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y \ No newline at end of file +CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y +# CONFIG_UNITY_ENABLE_FLOAT is not set +# CONFIG_UNITY_ENABLE_DOUBLE is not set +# CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER is not set +CONFIG_SR_WN_MODEL_WN8_QUANT=y +CONFIG_SR_WN_WN8_HIESP=y +CONFIG_SR_MN_ENGLISH=y +CONFIG_SR_MN_EN_MULTINET5_SINGLE_RECOGNITION_QUANT8=y +# CONFIG_VFS_SUPPORT_SELECT is not set +# CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT is not set +# CONFIG_VFS_SUPPORT_TERMIOS is not set diff --git a/core_version.h b/core_version.h new file mode 100644 index 000000000..468a2459e --- /dev/null +++ b/core_version.h @@ -0,0 +1,4 @@ +#define ARDUINO_ESP32_GIT_VER 0xcbaeab4e +#define ARDUINO_ESP32_GIT_DESC 3.0.0 +#define ARDUINO_ESP32_RELEASE_3_0_0 +#define ARDUINO_ESP32_RELEASE "3_0_0" diff --git a/main/idf_component.yml b/main/idf_component.yml new file mode 100644 index 000000000..fb266a7af --- /dev/null +++ b/main/idf_component.yml @@ -0,0 +1,47 @@ +dependencies: + # Required IDF version + idf: ">=5.1" + + mdns: "^1.0.7" + # nghttp: "^1.50.0" + # esp_jpeg: "^1.0.4" + # esp-dsp: "^1.2.0" + # esp-sr: "^1.0.3" + # esp32-camera: "^2.0.3" + # esp-dl: + # git: https://github.com/espressif/esp-dl.git + # arduino: + # path: components/arduino + + # # Defining a dependency from the registry: + # # https://components.espressif.com/component/example/cmp + # example/cmp: "^3.3.3" # Automatically update minor releases + # + # # Other ways to define dependencies + # + # # For components maintained by Espressif only name can be used. + # # Same as `espressif/cmp` + # component: "~1.0.0" # Automatically update bugfix releases + # + # # Or in a longer form with extra parameters + # component2: + # version: ">=2.0.0" + # + # # For transient dependencies `public` flag can be set. + # # `public` flag doesn't have an effect for the `main` component. + # # All dependencies of `main` are public by default. + # public: true + # + # # For components hosted on non-default registry: + # service_url: "https://componentregistry.company.com" + # + # # For components in git repository: + # test_component: + # path: test_component + # git: ssh://git@gitlab.com/user/components.git + # + # # For test projects during component development + # # components can be used from a local directory + # # with relative or absolute path + # some_local_component: + # path: ../../projects/component diff --git a/package.json b/package.json new file mode 100644 index 000000000..c184e5481 --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "framework-arduinoespressif32", + "version": "3.0.0", + "description": "Tasmota Arduino Framework for the Espressif ESP32, ESP32-S and ESP32-C series of SoCs", + "keywords": [ + "tasmota", + "framework", + "arduino", + "espressif", + "esp32" + ], + "license": "LGPL-2.1-or-later", + "repository": { + "type": "git", + "url": "https://github.com/tasmota/arduino-esp32" + } +} diff --git a/tools/archive-build.sh b/tools/archive-build.sh index 432f69031..f3ba888c0 100755 --- a/tools/archive-build.sh +++ b/tools/archive-build.sh @@ -6,11 +6,34 @@ IDF_BRANCH=$(git -C "$IDF_PATH" symbolic-ref --short HEAD || git -C "$IDF_PATH" idf_version_string=${IDF_BRANCH//\//_}"-$IDF_COMMIT" archive_path="dist/arduino-esp32-libs-$idf_version_string.tar.gz" build_archive_path="dist/arduino-esp32-build-$idf_version_string.tar.gz" +pio_archive_path="dist/framework-arduinoespressif32-$idf_version_string.tar.gz" +pio_zip_archive_path="dist/framework-arduinoespressif32-$idf_version_string.zip" mkdir -p dist && rm -rf "$archive_path" "$build_archive_path" -if [ -d "out" ]; then - cd out && tar zcf "../$archive_path" * && cd .. -fi -if [ -d "build" ]; then - cd build && tar zcf "../$build_archive_path" * && cd .. -fi + +cd out +echo "Creating framework-arduinoespressif32" +cp -rf ../components/arduino arduino-esp32 +rm -rf arduino-esp32/docs +rm -rf arduino-esp32/tests +rm -rf arduino-esp32/libraries/RainMaker +rm -rf arduino-esp32/libraries/Insights +rm -rf arduino-esp32/package +rm -rf arduino-esp32/tools/sdk +rm -rf arduino-esp32/tools/esptool.py +rm -rf arduino-esp32/tools/gen_esp32part.py +rm -rf arduino-esp32/tools/gen_insights_package.py +rm -rf arduino-esp32/tools/gen_insights_package.exe +rm -rf arduino-esp32/tools/platformio-build-*.py +rm -rf arduino-esp32/platform.txt +rm -rf arduino-esp32/package.json +cp -f platform.txt arduino-esp32/ +cp -Rf tools/sdk arduino-esp32/tools/ +cp -f tools/gen_esp32part.py arduino-esp32/tools/ +cp -f tools/platformio-build-*.py arduino-esp32/tools/ +cp ../package.json arduino-esp32/package.json +cp ../core_version.h arduino-esp32/cores/esp32/core_version.h +mv arduino-esp32/ framework-arduinoespressif32/ +# If the framework is as tar.gz is needed uncomment next line +# tar --exclude=.* -zcf ../$pio_archive_path framework-arduinoespressif32/ +7z a -mx=9 -tzip -xr'!.*' ../$pio_zip_archive_path framework-arduinoespressif32/ diff --git a/tools/config.sh b/tools/config.sh index 7aac39e5e..8ce831e82 100755 --- a/tools/config.sh +++ b/tools/config.sh @@ -6,7 +6,7 @@ if [ -z $IDF_PATH ]; then fi if [ -z $IDF_BRANCH ]; then - IDF_BRANCH="release/v4.4" + IDF_BRANCH="Tasmota/v5" fi if [ -z $AR_PR_TARGET_BRANCH ]; then @@ -24,15 +24,15 @@ if [ -z $IDF_TARGET ]; then fi fi -IDF_COMPS="$IDF_PATH/components" -IDF_TOOLCHAIN="xtensa-$IDF_TARGET-elf" - # Owner of the target ESP32 Arduino repository -AR_USER="espressif" +AR_USER="tasmota" # The full name of the repository AR_REPO="$AR_USER/arduino-esp32" +# Arduino branch to use +AR_BRANCH="esp-idf-v5.1-libs" + AR_REPO_URL="https://github.com/$AR_REPO.git" if [ -n $GITHUB_TOKEN ]; then AR_REPO_URL="https://$GITHUB_TOKEN@github.com/$AR_REPO.git" @@ -46,6 +46,12 @@ AR_PLATFORM_TXT="$AR_OUT/platform.txt" AR_GEN_PART_PY="$AR_TOOLS/gen_esp32part.py" AR_SDK="$AR_TOOLS/sdk/$IDF_TARGET" +IDF_COMMIT=$(git -C "$IDF_PATH" rev-parse --short HEAD || echo "") +AR_COMMIT=$(git -C "$AR_COMPS/arduino" rev-parse --short HEAD || echo "") + +rm -rf release-info.txt +echo "Framework built from IDF branch $IDF_BRANCH commit $IDF_COMMIT and $AR_REPO branch $AR_BRANCH commit $AR_COMMIT" >> release-info.txt + function get_os(){ OSBITS=`arch` if [[ "$OSTYPE" == "linux"* ]]; then @@ -76,7 +82,7 @@ export SED="sed" export SSTAT="stat -c %s" if [[ "$AR_OS" == "macos" ]]; then - if ! [ -x "$(command -v gsed)" ]; then + if ! [ -x "$(command -v gsed)" ]; then echo "ERROR: gsed is not installed! Please install gsed first. ex. brew install gsed" exit 1 fi @@ -101,29 +107,3 @@ function git_branch_exists(){ # git_branch_exists local branch_found=`git -C "$repo_path" ls-remote --heads origin "$branch_name"` if [ -n "$branch_found" ]; then echo 1; else echo 0; fi } - -function git_pr_exists(){ # git_pr_exists - local pr_num=`curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" "https://api.github.com/repos/$AR_REPO/pulls?head=$AR_USER:$1&state=open" | jq -r '.[].number'` - if [ ! "$pr_num" == "" ] && [ ! "$pr_num" == "null" ]; then echo 1; else echo 0; fi -} - -function git_create_pr(){ # git_create_pr - local pr_branch="$1" - local pr_title="$2" - local pr_target="$3" - local pr_body="" - pr_body+="esp-idf: "$(git -C "$IDF_PATH" symbolic-ref --short HEAD || git -C "$IDF_PATH" tag --points-at HEAD)" "$(git -C "$IDF_PATH" rev-parse --short HEAD)"\r\n" - for component in `ls "$AR_COMPS"`; do - if [ ! $component == "arduino" ]; then - if [ -d "$AR_COMPS/$component/.git" ] || [ -d "$AR_COMPS/$component/.github" ]; then - pr_body+="$component: "$(git -C "$AR_COMPS/$component" symbolic-ref --short HEAD || git -C "$AR_COMPS/$component" tag --points-at HEAD)" "$(git -C "$AR_COMPS/$component" rev-parse --short HEAD)"\r\n" - fi - fi - done - pr_body+="tinyusb: "$(git -C "$AR_COMPS/arduino_tinyusb/tinyusb" symbolic-ref --short HEAD || git -C "$AR_COMPS/arduino_tinyusb/tinyusb" tag --points-at HEAD)" "$(git -C "$AR_COMPS/arduino_tinyusb/tinyusb" rev-parse --short HEAD)"\r\n" - local pr_data="{\"title\": \"$pr_title\", \"body\": \"$pr_body\", \"head\": \"$AR_USER:$pr_branch\", \"base\": \"$pr_target\"}" - git_create_pr_res=`echo "$pr_data" | curl -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" --data @- "https://api.github.com/repos/$AR_REPO/pulls"` - local done_pr=`echo "$git_create_pr_res" | jq -r '.title'` - if [ ! "$done_pr" == "" ] && [ ! "$done_pr" == "null" ]; then echo 1; else echo 0; fi -} - diff --git a/tools/copy-libs.sh b/tools/copy-libs.sh index a6505d084..85ed296e5 100755 --- a/tools/copy-libs.sh +++ b/tools/copy-libs.sh @@ -95,7 +95,7 @@ for item in "${@:2:${#@}-5}"; do elif [ "$prefix" = "-O" ]; then PIO_CC_FLAGS+="$item " elif [[ "$item" != "-Wall" && "$item" != "-Werror=all" && "$item" != "-Wextra" ]]; then - if [[ "${item:0:23}" != "-mfix-esp32-psram-cache" && "${item:0:18}" != "-fmacro-prefix-map" ]]; then + if [[ "${item:0:23}" != "-mfix-esp32-psram-cache" && "${item:0:18}" != "-fmacro-prefix-map" && "${item:0:20}" != "-fdiagnostics-color=" ]]; then C_FLAGS+="$item " fi fi @@ -109,7 +109,7 @@ set -- $str for item in "${@:2:${#@}-5}"; do prefix="${item:0:2}" if [[ "$prefix" != "-I" && "$prefix" != "-D" && "$item" != "-Wall" && "$item" != "-Werror=all" && "$item" != "-Wextra" && "$prefix" != "-O" ]]; then - if [[ "${item:0:23}" != "-mfix-esp32-psram-cache" && "${item:0:18}" != "-fmacro-prefix-map" ]]; then + if [[ "${item:0:23}" != "-mfix-esp32-psram-cache" && "${item:0:18}" != "-fmacro-prefix-map" && "${item:0:20}" != "-fdiagnostics-color=" ]]; then AS_FLAGS+="$item " if [[ $C_FLAGS == *"$item"* ]]; then PIO_CC_FLAGS+="$item " @@ -128,7 +128,7 @@ set -- $str for item in "${@:2:${#@}-5}"; do prefix="${item:0:2}" if [[ "$prefix" != "-I" && "$prefix" != "-D" && "$item" != "-Wall" && "$item" != "-Werror=all" && "$item" != "-Wextra" && "$prefix" != "-O" ]]; then - if [[ "${item:0:23}" != "-mfix-esp32-psram-cache" && "${item:0:18}" != "-fmacro-prefix-map" ]]; then + if [[ "${item:0:23}" != "-mfix-esp32-psram-cache" && "${item:0:18}" != "-fmacro-prefix-map" && "${item:0:20}" != "-fdiagnostics-color=" ]]; then CPP_FLAGS+="$item " if [[ $PIO_CC_FLAGS != *"$item"* ]]; then PIO_CXX_FLAGS+="$item " @@ -155,13 +155,15 @@ else libs="${libs:19:${#libs}-1}" flags=`cat build/build.ninja | grep LINK_FLAGS` flags="${flags:15:${#flags}-1}" + paths=`cat build/build.ninja | grep LINK_PATH` + paths="${paths:14:${#paths}-1}" if [ "$IDF_TARGET" = "esp32" ]; then flags="-Wno-frame-address $flags" fi if [ "$IDF_TARGET" != "esp32c3" ]; then flags="-mlongcalls $flags" fi - str="$flags $libs" + str="$flags $libs $paths" fi if [ "$IDF_TARGET" = "esp32" ]; then LD_SCRIPTS+="-T esp32.rom.redefined.ld " @@ -359,10 +361,10 @@ for item; do ipath="$item" fname=`basename "$ipath"` dname=`basename $(dirname "$ipath")` - if [[ "$fname" == "main" && "$dname" == "esp32-arduino-lib-builder" ]]; then + if [[ "$fname" == "main" && "$dname" == $(basename "$PWD") ]]; then continue fi - while [[ "$dname" != "components" && "$dname" != "build" ]]; do + while [[ "$dname" != "components" && "$dname" != "managed_components" && "$dname" != "build" ]]; do ipath=`dirname "$ipath"` fname=`basename "$ipath"` dname=`basename $(dirname "$ipath")` @@ -482,7 +484,7 @@ rm -rf platform_start.txt platform_mid.txt 1platform_mid.txt cp -f "sdkconfig" "$AR_SDK/sdkconfig" # gen_esp32part.py -cp "$IDF_COMPS/partition_table/gen_esp32part.py" "$AR_GEN_PART_PY" +cp "$IDF_PATH/components/partition_table/gen_esp32part.py" "$AR_GEN_PART_PY" # copy precompiled libs (if we need them) function copy_precompiled_lib(){ diff --git a/tools/cron.sh b/tools/cron.sh deleted file mode 100644 index 6122b1eed..000000000 --- a/tools/cron.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -if [ ! "$GITHUB_EVENT_NAME" == "schedule" ]; then - echo "Wrong event '$GITHUB_EVENT_NAME'!" - exit 1 -fi - -git checkout "$IDF_BRANCH" #local branches should match what the matrix wants to build -source ./build.sh -bash ./tools/push-to-arduino.sh diff --git a/tools/install-esp-idf.sh b/tools/install-esp-idf.sh index 2b7a0f5fb..ddf6858d0 100755 --- a/tools/install-esp-idf.sh +++ b/tools/install-esp-idf.sh @@ -11,17 +11,18 @@ fi # CLONE ESP-IDF # -IDF_REPO_URL="https://github.com/espressif/esp-idf.git" +IDF_REPO_URL="https://github.com/tasmota/esp-idf.git" if [ ! -d "$IDF_PATH" ]; then - echo "ESP-IDF is not installed! Installing local copy" + echo "ESP-IDF is not installed! Installing from $IDF_REPO_URL branch $IDF_BRANCH" git clone $IDF_REPO_URL -b $IDF_BRANCH idf_was_installed="1" fi -if [ "$IDF_COMMIT" ]; then - git -C "$IDF_PATH" checkout "$IDF_COMMIT" - commit_predefined="1" -fi +# Next lines redirects ALWAYS to espressif git since this sha1 only exists there!!! +#if [ "$IDF_COMMIT" ]; then +# git -C "$IDF_PATH" checkout "$IDF_COMMIT" +# commit_predefined="1" +#fi # # UPDATE ESP-IDF TOOLS AND MODULES @@ -32,6 +33,12 @@ if [ ! -x $idf_was_installed ] || [ ! -x $commit_predefined ]; then $IDF_PATH/install.sh fi +# +# Arduino needs cam_hal.h from esp32-camera in include folder +# +# disable workaround for IDF 5.x +# cp "$IDF_PATH/components/esp32-camera/driver/private_include/cam_hal.h" "$IDF_PATH/components/esp32-camera/driver/include/" + # # SETUP ESP-IDF ENV # @@ -39,64 +46,3 @@ fi source $IDF_PATH/export.sh export IDF_COMMIT=$(git -C "$IDF_PATH" rev-parse --short HEAD) export IDF_BRANCH=$(git -C "$IDF_PATH" symbolic-ref --short HEAD || git -C "$IDF_PATH" tag --points-at HEAD) - -# -# SETUP ARDUINO DEPLOY -# - -if [ "$GITHUB_EVENT_NAME" == "schedule" ] || [ "$GITHUB_EVENT_NAME" == "repository_dispatch" -a "$GITHUB_EVENT_ACTION" == "deploy" ]; then - # format new branch name and pr title - if [ -x $commit_predefined ]; then #commit was not specified at build time - AR_NEW_BRANCH_NAME="idf-$IDF_BRANCH" - AR_NEW_COMMIT_MESSAGE="IDF $IDF_BRANCH $IDF_COMMIT" - AR_NEW_PR_TITLE="IDF $IDF_BRANCH" - else - AR_NEW_BRANCH_NAME="idf-$IDF_COMMIT" - AR_NEW_COMMIT_MESSAGE="IDF $IDF_COMMIT" - AR_NEW_PR_TITLE="$AR_NEW_COMMIT_MESSAGE" - fi - - AR_HAS_COMMIT=`git_commit_exists "$AR_COMPS/arduino" "$AR_NEW_COMMIT_MESSAGE"` - AR_HAS_BRANCH=`git_branch_exists "$AR_COMPS/arduino" "$AR_NEW_BRANCH_NAME"` - AR_HAS_PR=`git_pr_exists "$AR_NEW_BRANCH_NAME"` - - if [ "$AR_HAS_COMMIT" == "1" ]; then - echo "Commit '$AR_NEW_COMMIT_MESSAGE' Already Exists" - mkdir -p dist && echo "Commit '$AR_NEW_COMMIT_MESSAGE' Already Exists" > dist/log.txt - exit 0 - fi - - if [ "$AR_HAS_BRANCH" == "1" ]; then - echo "Branch '$AR_NEW_BRANCH_NAME' Already Exists" - fi - - if [ "$AR_HAS_PR" == "1" ]; then - echo "PR '$AR_NEW_PR_TITLE' Already Exists" - fi - - # setup git for pushing - git config --global github.user "$GITHUB_ACTOR" - git config --global user.name "$GITHUB_ACTOR" - git config --global user.email "$GITHUB_ACTOR@github.com" - - # create or checkout the branch - if [ ! $AR_HAS_BRANCH == "0" ]; then - echo "Switching to arduino branch '$AR_NEW_BRANCH_NAME'..." - git -C "$AR_COMPS/arduino" checkout $AR_NEW_BRANCH_NAME - else - echo "Creating arduino branch '$AR_NEW_BRANCH_NAME'..." - git -C "$AR_COMPS/arduino" checkout -b $AR_NEW_BRANCH_NAME - fi - if [ $? -ne 0 ]; then - echo "ERROR: Checkout of branch '$AR_NEW_BRANCH_NAME' failed" - exit 1 - fi - - export AR_NEW_BRANCH_NAME - export AR_NEW_COMMIT_MESSAGE - export AR_NEW_PR_TITLE - - export AR_HAS_COMMIT - export AR_HAS_BRANCH - export AR_HAS_PR -fi diff --git a/tools/prepare-ci.sh b/tools/prepare-ci.sh index e39a7983b..711ce154f 100755 --- a/tools/prepare-ci.sh +++ b/tools/prepare-ci.sh @@ -1,5 +1,4 @@ #!/bin/bash -sudo apt-get install -y git wget curl libssl-dev libncurses-dev flex bison gperf python3 cmake ninja-build ccache -curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && python3 get-pip.py && \ -pip3 install setuptools pyserial click future wheel cryptography pyparsing pyelftools +sudo apt-get install -y gperf cmake ninja-build +pip3 install wheel future pyelftools diff --git a/tools/push-to-arduino.sh b/tools/push-to-arduino.sh deleted file mode 100755 index f9a2b9955..000000000 --- a/tools/push-to-arduino.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -source ./tools/config.sh - -if [ -x $GITHUB_TOKEN ]; then - echo "ERROR: GITHUB_TOKEN was not defined" - exit 1 -fi - -if ! [ -d "$AR_COMPS/arduino" ]; then - echo "ERROR: Target arduino folder does not exist!" - exit 1 -fi - -# -# UPDATE FILES -# - -if [ $AR_HAS_COMMIT == "0" ]; then - # make changes to the files - echo "Patching files in branch '$AR_NEW_BRANCH_NAME'..." - ESP32_ARDUINO="$AR_COMPS/arduino" ./tools/copy-to-arduino.sh - - cd $AR_COMPS/arduino - - # did any of the files change? - if [ -n "$(git status --porcelain)" ]; then - echo "Pushing changes to branch '$AR_NEW_BRANCH_NAME'..." - git add . && git commit --message "$AR_NEW_COMMIT_MESSAGE" && git push -u origin $AR_NEW_BRANCH_NAME - if [ $? -ne 0 ]; then - echo "ERROR: Pushing to branch '$AR_NEW_BRANCH_NAME' failed" - exit 1 - fi - else - echo "No changes in branch '$AR_NEW_BRANCH_NAME'" - if [ $AR_HAS_BRANCH == "0" ]; then - echo "Delete created branch '$AR_NEW_BRANCH_NAME'" - git branch -d $AR_NEW_BRANCH_NAME - fi - exit 0 - fi -fi - -# -# CREATE PULL REQUEST -# - -if [ "$AR_HAS_PR" == "0" ]; then - pr_created=`git_create_pr "$AR_NEW_BRANCH_NAME" "$AR_NEW_PR_TITLE" "$AR_PR_TARGET_BRANCH"` - if [ $pr_created == "0" ]; then - echo "ERROR: Failed to create PR '$AR_NEW_PR_TITLE': "`echo "$git_create_pr_res" | jq -r '.message'`": "`echo "$git_create_pr_res" | jq -r '.errors[].message'` - exit 1 - fi -fi -exit 0 diff --git a/tools/repository_dispatch.sh b/tools/repository_dispatch.sh deleted file mode 100644 index a920f5b45..000000000 --- a/tools/repository_dispatch.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash - -if [ ! "$GITHUB_EVENT_NAME" == "repository_dispatch" ]; then - echo "Wrong event '$GITHUB_EVENT_NAME'!" - exit 1 -fi - -EVENT_JSON=`cat "$GITHUB_EVENT_PATH"` -action=`echo "$EVENT_JSON" | jq -r '.action'` -payload=`echo "$EVENT_JSON" | jq -r '.client_payload'` -branch=`echo "$payload" | jq -r '.branch'` -commit=`echo "$payload" | jq -r '.commit'` -builder=`echo "$payload" | jq -r '.builder'` -arduino=`echo "$payload" | jq -r '.arduino'` - -echo "Action: $action, Branch: $branch, Commit: $commit, Builder: $builder" - -if [ ! "$action" == "deploy" ] && [ ! "$action" == "build" ]; then - echo "Bad Action $action" - exit 1 -fi - -export GITHUB_EVENT_ACTION="$action" - -if [ ! "$commit" == "" ] && [ ! "$commit" == "null" ]; then - export IDF_COMMIT="$commit" -else - commit="" - if [ ! "$branch" == "" ] && [ ! "$branch" == "null" ]; then - export IDF_BRANCH="$branch" - fi -fi - -if [ ! "$builder" == "" ] && [ ! "$builder" == "null" ]; then - git checkout "$builder" -fi - -if [ ! "$arduino" == "" ] && [ ! "$arduino" == "null" ]; then - export AR_BRANCH="$arduino" -fi - -source ./build.sh - -if [ "$action" == "deploy" ]; then - bash ./tools/push-to-arduino.sh -fi diff --git a/tools/update-components.sh b/tools/update-components.sh index 7bc0dce58..5af413f49 100755 --- a/tools/update-components.sh +++ b/tools/update-components.sh @@ -5,8 +5,6 @@ source ./tools/config.sh CAMERA_REPO_URL="https://github.com/espressif/esp32-camera.git" DL_REPO_URL="https://github.com/espressif/esp-dl.git" SR_REPO_URL="https://github.com/espressif/esp-sr.git" -RMAKER_REPO_URL="https://github.com/espressif/esp-rainmaker.git" -INSIGHTS_REPO_URL="https://github.com/espressif/esp-insights.git" DSP_REPO_URL="https://github.com/espressif/esp-dsp.git" LITTLEFS_REPO_URL="https://github.com/joltwallet/esp_littlefs.git" TINYUSB_REPO_URL="https://github.com/hathach/tinyusb.git" @@ -63,10 +61,6 @@ else git -C "$AR_COMPS/esp32-camera" fetch && \ git -C "$AR_COMPS/esp32-camera" pull --ff-only fi -#this is a temp measure to fix build issue -# if [ -f "$AR_COMPS/esp32-camera/idf_component.yml" ]; then -# rm -rf "$AR_COMPS/esp32-camera/idf_component.yml" -# fi if [ $? -ne 0 ]; then exit 1; fi # @@ -97,6 +91,18 @@ if [ -f "$AR_COMPS/esp-sr/idf_component.yml" ]; then fi if [ $? -ne 0 ]; then exit 1; fi +# +# CLONE/UPDATE ESP-DSP +# +echo "Updating ESP-DSP..." +if [ ! -d "$AR_COMPS/esp-dsp" ]; then + git clone $DSP_REPO_URL "$AR_COMPS/esp-dsp" +else + git -C "$AR_COMPS/esp-dsp" fetch && \ + git -C "$AR_COMPS/esp-dsp" pull --ff-only +fi +if [ $? -ne 0 ]; then exit 1; fi + # # CLONE/UPDATE ESP-LITTLEFS # @@ -111,46 +117,6 @@ else fi if [ $? -ne 0 ]; then exit 1; fi -# -# CLONE/UPDATE ESP-RAINMAKER -# -echo "Updating ESP-RainMaker..." -if [ ! -d "$AR_COMPS/esp-rainmaker" ]; then - git clone $RMAKER_REPO_URL "$AR_COMPS/esp-rainmaker" && \ - git -C "$AR_COMPS/esp-rainmaker" submodule update --init --recursive -else - git -C "$AR_COMPS/esp-rainmaker" fetch && \ - git -C "$AR_COMPS/esp-rainmaker" pull --ff-only && \ - git -C "$AR_COMPS/esp-rainmaker" submodule update --init --recursive -fi -if [ $? -ne 0 ]; then exit 1; fi - -# -# CLONE/UPDATE ESP-INSIGHTS -# -echo "Updating ESP-Insights..." -if [ ! -d "$AR_COMPS/esp-insights" ]; then - git clone $INSIGHTS_REPO_URL "$AR_COMPS/esp-insights" && \ - git -C "$AR_COMPS/esp-insights" submodule update --init --recursive -else - git -C "$AR_COMPS/esp-insights" fetch && \ - git -C "$AR_COMPS/esp-insights" pull --ff-only && \ - git -C "$AR_COMPS/esp-insights" submodule update --init --recursive -fi -if [ $? -ne 0 ]; then exit 1; fi - -# -# CLONE/UPDATE ESP-DSP -# -echo "Updating ESP-DSP..." -if [ ! -d "$AR_COMPS/esp-dsp" ]; then - git clone $DSP_REPO_URL "$AR_COMPS/esp-dsp" -else - git -C "$AR_COMPS/esp-dsp" fetch && \ - git -C "$AR_COMPS/esp-dsp" pull --ff-only -fi -if [ $? -ne 0 ]; then exit 1; fi - # # CLONE/UPDATE TINYUSB # @@ -162,4 +128,3 @@ else git -C "$AR_COMPS/arduino_tinyusb/tinyusb" pull --ff-only fi if [ $? -ne 0 ]; then exit 1; fi -