-
Notifications
You must be signed in to change notification settings - Fork 168
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 ?