micro_ros_stm32cubemx_utils
micro_ros_stm32cubemx_utils copied to clipboard
UCLIENT_PROFILE_MULTITHREAD not working for FreeRTOS
After generating the micro ros library with the multithread flag enabled (and adding the FreeRTOS headers to the compile search path) I realized that my application is broken. It seems to me that at least the custom transport for writing data to the host is not working properly. The data structure for the belong DMA receive channel is not initialized and the transmit doesn't seem to be correct (see screenshot on the right hand side).
If I use a non multithread version of the micro ros library the exact same position in the code (and also in the execution order) looks like:
From previous experience I assume that something is going wrong in allocating the memory for the protecting semaphores that are used in the ROS2 or DDS layers.