We are planning to move our flagship product to ARM platform along with RealView RTX kernel RTOS. We have used UCOS2 RTOS for years and it has proved itself to be a very robust operating system. I would like to have expert comments on features and robustness of RealView RTX Kernel RTOS in comparison with UCOS2 RTOS robustness in preemptive multitasking environment on ARM processor.
Refer to
http://www.keil.com/forum/docs/thread15620.asp
Tamir,
Are there any docs displaying comparison and differences between RTX and UCOS2 features and capability ? I could not find any thing on web.
Are there any docs displaying comparison and differences between RTX and UCOS2 features and capability ?
Not as far as I know - sorry.
I originally used UCOS-II on a 80C390 processor and ported my applications to the RTX kernel for ARM. I did this about a year ago, and it didn't actually take that long for both the processor and OS ports, maybe a month.
I would generally say UCOS-II is a bit more advanced than RTX, as RTX lacks some UCOS-II features. However with some recoding I was able to do everything I was doing in UCOS-II on RTX. I did miss UCOS-II's extra features, however I feel that RTX's integration with the Keil simulator is worth more than all of RTX's other limitations.
We did this to remove the need for re-licensing UCOS-II, as well as the better Keil simulator integration.
Stuart
one of the absolutely missing items in the RTX/uv3,4 integration is the PC per task. Why isn't it there?
One I thing could not do in RTX was suspend a task from another task, this can be easily done in uC/OS-II.
I had to result to terminating and then restarting the task, which was far from ideal in the particular circumstances.
I am not sure if this could have been done some other way? Any ideas?
Drop the thread priority very low and have a running dummy thread with higher priority making sure that the thread stays inactive?
Per that is a good idea. I would still prefer it as a feature though as I do loath to have an extra task acting as an effective second idle task.
I am going to try something dangerous as an experiment (not that I would use it in my real system!). If it is possible I am going to try and raise the idle task priority to 2 and then move other tasks to 1... and see the havoc this creates!