Skip to content

Does this have support for ESP32 ? For Zephyr ? #797

@ghost

Description

ESP32 - Zephyr

  • Hardware description: ESP32_devkitc_wroom
  • RTOS: Zephyr
  • Installation type: micro_ros_setup
  • Version of micro-ROS used: humble

I had been following this tutorial:
The building and rest kept failing at first and I dug in a lil bit and found the reason was that the sdk was older version which did not have xtensa needed gcc for the esp32. I changed it to 0.16.8 added esp32 to supported platforms. and now while building the firmware as per the tutorial as in using ros2 run micro_ros_setup build_firmware.sh keep getting this error below

Summary: 67 packages finished [1min 45s]
  59 packages had stderr output: action_msgs actionlib_msgs builtin_interfaces common_interfaces composition_interfaces diagnostic_msgs example_interfaces geometry_msgs libyaml_vendor lifecycle_msgs micro_ros_msgs micro_ros_utilities microcdr microxrcedds_client nav_msgs rcl rcl_action rcl_interfaces rcl_lifecycle rcl_logging_interface rcl_logging_noop rclc rclc_lifecycle rclc_parameter rcutils rmw rmw_implementation rmw_implementation_cmake rmw_microxrcedds rosgraph_msgs rosidl_adapter rosidl_cmake rosidl_default_generators rosidl_default_runtime rosidl_generator_c rosidl_generator_dds_idl rosidl_parser rosidl_runtime_c rosidl_typesupport_c rosidl_typesupport_interface rosidl_typesupport_introspection_c rosidl_typesupport_introspection_tests rosidl_typesupport_microxrcedds_c rosidl_typesupport_microxrcedds_c_tests rosidl_typesupport_microxrcedds_test_msg sensor_msgs shape_msgs statistics_msgs std_msgs std_srvs stereo_msgs test_interface_files test_msgs test_rmw_implementation test_tracetools tracetools trajectory_msgs unique_identifier_msgs visualization_msgs
[ 15%] No install step for 'microroslib_project'
[ 16%] Completed 'microroslib_project'
[ 16%] Built target microroslib_project
[ 16%] Built target zephyr_generated_headers
[ 16%] Creating directories for 'EspIdfBootloader'
[ 17%] No download step for 'EspIdfBootloader'
[ 18%] No update step for 'EspIdfBootloader'
[ 19%] No patch step for 'EspIdfBootloader'
[ 19%] Performing configure step for 'EspIdfBootloader'
-- Found Git: /usr/bin/git (found version "2.34.1") 
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
-- The ASM compiler identification is unknown
-- Found assembler: xtensa-esp32-elf-gcc
CMake Error at /microros_ws/firmware/zephyrproject/modules/hal/espressif/tools/cmake/project.cmake:307 (__project):
  The CMAKE_C_COMPILER:

    xtensa-esp32-elf-gcc

  is not a full path and was not found in the PATH.

  Tell CMake where to find the compiler by setting either the environment
  variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
  the compiler, or to the compiler name if it is in the PATH.
Call Stack (most recent call first):
  CMakeLists.txt:27 (project)


CMake Error at /microros_ws/firmware/zephyrproject/modules/hal/espressif/tools/cmake/project.cmake:307 (__project):
  The CMAKE_CXX_COMPILER:

    xtensa-esp32-elf-g++

  is not a full path and was not found in the PATH.

  Tell CMake where to find the compiler by setting either the environment
  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
  to the compiler, or to the compiler name if it is in the PATH.
Call Stack (most recent call first):
  CMakeLists.txt:27 (project)


CMake Error at /microros_ws/firmware/zephyrproject/modules/hal/espressif/tools/cmake/project.cmake:307 (__project):
  The CMAKE_ASM_COMPILER:

    xtensa-esp32-elf-gcc

  is not a full path and was not found in the PATH.

  Tell CMake where to find the compiler by setting either the environment
  variable "ASM" or the CMake cache entry CMAKE_ASM_COMPILER to the full path
  to the compiler, or to the compiler name if it is in the PATH.
Call Stack (most recent call first):
  CMakeLists.txt:27 (project)


-- Warning: Did not find file Compiler/-ASM
-- Configuring incomplete, errors occurred!
See also "/microros_ws/firmware/build/esp-idf/build/bootloader/CMakeFiles/CMakeOutput.log".
See also "/microros_ws/firmware/build/esp-idf/build/bootloader/CMakeFiles/CMakeError.log".
gmake[2]: *** [zephyr/boards/xtensa/esp32/CMakeFiles/EspIdfBootloader.dir/build.make:92: esp-idf/src/EspIdfBootloader-stamp/EspIdfBootloader-configure] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:2806: zephyr/boards/xtensa/esp32/CMakeFiles/EspIdfBootloader.dir/all] Error 2
gmake: *** [Makefile:91: all] Error 2
FATAL ERROR: command exited with status 2: /usr/bin/cmake --build /microros_ws/firmware/build
[ros2run]: Process exited with failure 2

Now i tried setting the path in environment variable like export CXX=/microros_ws/firmware/zephyr-sdk/xtensa-espressif_esp32_zephyr-elf/bin/xtensa-espressif_esp32_zephyr-elf-g++
export CC=/microros_ws/firmware/zephyr-sdk/xtensa-espressif_esp32_zephyr-elf/bin/xtensa-espressif_esp32_zephyr-elf-gcc
still the same error happens.
Also one more thing I had hardcoded the CROSS_COMPILE path as set(CROSS_COMPILE "/microros_ws/firmware/zephyr-sdk/xtensa-espressif_esp32_zephyr-elf/bin/xtensa-espressif_esp32_zephyr-elf-" CACHE STRING "Cross compiler prefix" FORCE) in /microros_ws/firmware/zephyrproject/zephyr/cmake/compiler/gcc/target.cmake This was done because before the path was coming out wrong.

Any ideas on how to solve this ? Or is there any other way to implement MicroROS on ESP32 using Zephyr ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions