micro-ROS / micro-ROS/micro_ros_setup

How to get MicroROS thread support for Zephyr

Open
#685 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
Shell
Stars
509
Forks
183
Avg merge
22h 26m
Merged PRs (30d)
7

Description

## Issue template

- Hardware description: Olimex STM32-E407
- RTOS: Zephyr
- Installation type: -
- Version or commit hash: -

#### Steps to reproduce the issue
Set up MicroROS like in the Tutorial: https://micro.ros.org/docs/tutorials/core/first_application_rtos/zephyr/
Then add:
"microxrcedds_client": {
"cmake-args": [
"-DUCLIENT_PROFILE_MULTITHREAD=ON"
]
}
to the app-colcon.meta file.

#### Expected behavior
Enable multithreading.

#### Actual behavior
zephyr/microros_ws/firmware/mcu_ws/eProsima/Micro-XRCE-DDS-Client/include/uxr/client/profile/multithread/multithread.h:49:20: error: field 'impl' has incomplete type
49 | struct k_mutex impl;

#### Additional information
Same as https://github.com/micro-ROS/micro_ros_setup/issues/668 but for Zephyr and not freeRTOS
Which directories do I need to include? (I guess in the arm_toolchain.cmake.in)

Contributor guide

Open the contributing guide

Research direction

Start with the Zephyr tutorial setup, then inspect eProsima/Micro-XRCE-DDS-Client/include/uxr/client/profile/multithread/multithread.h at the failing struct k_mutex declaration. Compare the Zephyr setup with the related freeRTOS issue and inspect arm_toolchain.cmake.in for the directories that need inclusion. Done means the multithread profile builds successfully for the Olimex STM32-E407 configuration.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake
Domain
build-system, embedded-iot
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.