Porting to RTOS #1381
Replies: 2 comments 3 replies
-
Yes it does.
It should be feasible. Even when you are porting iceoryx to a non posix based operating system like windows it is possible.
We never considered FreeRTOS but we really welcome every additional platform. With every new platform we found some minor glitches and problems we had in iceoryx which most likely would be undiscovered for some time if it wasn't for the new platform.
I think we tackled all the major technical challenges when we ported iceoryx to mac os and windows. Porting it to FreeBSD was then just a piece of cake. I think our current roadmap for this year is already quite ambitious and we would have no time to port iceoryx to FreeRTOS ourselves. But if someone would like to tackle this challenge we would support them in every step. Here a rough plan how one has to proceed to get iceoryx running on FreeRTOS.
Now to posix shared memory. Iceoryx uses I think with this approach you get iceoryx compiling on freertos in one day and most of the unit tests will most likely work out of the box. I have no idea if freertos supports unix domain sockets, but if not you could configure |
Beta Was this translation helpful? Give feedback.
-
I think this is very interesting and great request and I would not only focus on FreeRTOS. Today a lot of embedded systems contain a hybrid architecture with a Real-time core cluster and an Application core cluster. As the target of iceoryx is automotive anyway I wonder if the predecessor of iceorxy hasn't been yet ported to AUTOSAR Classic as well for IPC communication between the RealTime cluster and Application cluster. Thus, having a communication between AUTOSAR Classic and AUTOSAR adaptive or any other Automotive stack on the application side in zero copy manner. OpenAMP with supporting zero copy as well is a kind of this approach but has a different target application. I guess iceoryx can help here. On both clusters on top of iceoryx a DDS middleware could be running plus on the application side a ROS 2 middleware might be used as well. As starting point it would maybe helpful to have an example standalone implementation of iceoryx available or at least a Howto to port it to a specific HW platform. |
Beta Was this translation helpful? Give feedback.
-
I would like to ask a pretty general question regarding the feasibility of porting Iceoryx to a real-time operating system, such as FreeRTOS.
It is clear the point of Iceoryx is inter-process communication, and FreeRTOS doesnt even have processes, just tasks which are analogous to threads. So, Iceoryx would just be another inter-task communication mechanism. However, I still believe there would be a lot of value in being able to use the convenient publish/subscribe API of Iceoryx to do inter-task communication with zero-copy data sharing, without worrying about task synchronization, signaling, etc.
For example, CycloneDDS can be built for FreeRTOS (https://github.com/eclipse-cyclonedds/cyclonedds/blob/master/docs/dev/freertos.md).
To achieve such porting, something like the FreeRTOS+POSIX interface (https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_POSIX/index.html) could be used. Of course, it doesnt support POSIX shared memory for example, so that would have to replaced with normal memory allocation, accessible from multiple tasks.
So, I would like to pick the Iceoryx developers brain about:
Beta Was this translation helpful? Give feedback.
All reactions