micro-ROS / micro-ROS/micro_ros_setup
How to get MicroROS thread support for Zephyr
- 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
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