From 2c0448d499a729ad681ea9da0df7815e9e820df8 Mon Sep 17 00:00:00 2001 From: MadsRossen Date: Mon, 27 Jan 2025 09:57:02 +0100 Subject: [PATCH 1/4] Support for the ESP32 C6 board This make it possible to set board target and build for the RISC-V board on the ESP32 C6 Board. --- esp32_toolchain.cmake.in | 4 +++- libmicroros.mk | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/esp32_toolchain.cmake.in b/esp32_toolchain.cmake.in index 599cca23..5bc33a7c 100644 --- a/esp32_toolchain.cmake.in +++ b/esp32_toolchain.cmake.in @@ -5,7 +5,9 @@ set(CMAKE_SYSTEM_NAME Generic) set(idf_target "@IDF_TARGET@") set(idf_path "@IDF_PATH@") -if("${idf_target}" STREQUAL "esp32c3") +set(RISCV_TARGETS "esp32c3" "esp32c6") + +if("${idf_target}" IN_LIST RISCV_TARGETS) set(CMAKE_SYSTEM_PROCESSOR riscv) set(FLAGS "-ffunction-sections -fdata-sections" CACHE STRING "" FORCE) else() diff --git a/libmicroros.mk b/libmicroros.mk index ac470a4d..2b1d6c32 100644 --- a/libmicroros.mk +++ b/libmicroros.mk @@ -111,7 +111,7 @@ $(EXTENSIONS_DIR)/micro_ros_src/install: $(EXTENSIONS_DIR)/esp32_toolchain.cmake patch_atomic:$(EXTENSIONS_DIR)/micro_ros_src/install # Workaround https://github.com/micro-ROS/micro_ros_espidf_component/issues/18 -ifeq ($(IDF_TARGET),$(filter $(IDF_TARGET),esp32s2 esp32c3)) +ifeq ($(IDF_TARGET),$(filter $(IDF_TARGET),esp32s2 esp32c3 esp32c6)) echo $(UROS_DIR)/atomic_workaround; \ mkdir $(UROS_DIR)/atomic_workaround; cd $(UROS_DIR)/atomic_workaround; \ $(X_AR) x $(UROS_DIR)/install/lib/librcutils.a; \ From 6bb2b8fe368f285f02c7dddd6e390110c3775c11 Mon Sep 17 00:00:00 2001 From: MadsRossen Date: Mon, 27 Jan 2025 16:00:47 +0100 Subject: [PATCH 2/4] Add CI for ESP32 C6 The CI for ESP C6 follow the CI for ESP C3 as they both use RISC-V --- .github/workflows/ci.yml | 4 ++-- .github/workflows/nightly.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1bee08b3..58ee4525 100755 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - idf_target: [ esp32, esp32s2, esp32s3, esp32c3] + idf_target: [ esp32, esp32s2, esp32s3, esp32c3, esp32c6] idf_version: [ "espressif/idf:release-v4.4", "espressif/idf:release-v5.2" ] container: @@ -54,7 +54,7 @@ jobs: - name: Build sample - low_consumption shell: bash - if: matrix.idf_target != 'esp32c3' && matrix.idf_target != 'esp32s3' + if: matrix.idf_target != 'esp32c3' && matrix.idf_target != 'esp32s3' && matrix.idf_target != 'esp32c6' run: | . $IDF_PATH/export.sh cd micro_ros_espidf_component/examples/low_consumption diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index ef09e777..fca45413 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -15,7 +15,7 @@ jobs: fail-fast: false matrix: branch: [iron, rolling, jazzy, humble] - idf_target: [ esp32, esp32s2, esp32c3, esp32s3] + idf_target: [ esp32, esp32s2, esp32c3, esp32s3, esp32c6] idf_version: [ "espressif/idf:release-v4.4", "espressif/idf:release-v5.2" ] container: @@ -58,7 +58,7 @@ jobs: - name: Build sample - low_consumption shell: bash - if: matrix.idf_target != 'esp32c3' && matrix.idf_target != 'esp32s3' + if: matrix.idf_target != 'esp32c3' && matrix.idf_target != 'esp32s3' && matrix.idf_target != 'esp32c6' run: | . $IDF_PATH/export.sh cd micro_ros_espidf_component/examples/low_consumption From e46e042160aad237f7c8d579144ecfc37d6104d6 Mon Sep 17 00:00:00 2001 From: MadsRossen Date: Mon, 27 Jan 2025 16:03:20 +0100 Subject: [PATCH 3/4] Add ESP32-C6 to README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 52deec46..49878911 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ # micro-ROS component for ESP-IDF -This component has been tested in ESP-IDF v4.4, and v5.2 with ESP32, ESP32-S2, ESP32-S3 and ESP32-C3. +This component has been tested in ESP-IDF v4.4, and v5.2 with ESP32, ESP32-S2, ESP32-S3, ESP32-C3 and ESP32-C6. ## Dependencies From 22e7bba321e18b54c60b2b71e06dfa272db744ee Mon Sep 17 00:00:00 2001 From: MadsRossen Date: Tue, 28 Jan 2025 10:25:42 +0100 Subject: [PATCH 4/4] Exclude the CI run for IDFv4.4 using esp32c6 --- .github/workflows/ci.yml | 4 ++++ .github/workflows/nightly.yml | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 58ee4525..9aae8b09 100755 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,6 +14,10 @@ jobs: matrix: idf_target: [ esp32, esp32s2, esp32s3, esp32c3, esp32c6] idf_version: [ "espressif/idf:release-v4.4", "espressif/idf:release-v5.2" ] + exclude: + # Skip IDF v4 + ESP32C6 combination + - idf_target: esp32c6 + idf_version: espressif/idf:release-v4.4 container: image: ${{ matrix.idf_version }} diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index fca45413..f3b7f9e8 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -17,6 +17,11 @@ jobs: branch: [iron, rolling, jazzy, humble] idf_target: [ esp32, esp32s2, esp32c3, esp32s3, esp32c6] idf_version: [ "espressif/idf:release-v4.4", "espressif/idf:release-v5.2" ] + exclude: + # Skip IDF v4 + ESP32C6 combination + - idf_target: esp32c6 + idf_version: espressif/idf:release-v4.4 + container: image: ${{ matrix.idf_version }}