Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
8 years, 7 months ago.
CMSIS-RTOS or RTOS
I have been working on a network of CAN connected 1768 MBEDs for a mobile robot application, on and off for the last 6 months. At the beginning, I decided to use CMSIS-RTOS calls rather than RTOS calls. Can't remember why but I just stuck with it. I know that RTOS calls are just wrapper calls to the CMSIS calls, but I am wonder if I should convert to RTOS. The reason I am unsure is that I recently wanted to use the 'get_priority' function and found that the CMSIS documentation on the MBED website did not have details of these more specialised calls. I was able to get relevant info from www.keil.com.
Are there any reasons to convert to the RTOS calls?
Thanks
Jim Herd
1 Answer
8 years, 7 months ago.
RTOs you mean C++ API we provide? I would guess RTX. I would say that cmsis-rtos should be more stable. I noticed some changes in the RTX sources between 4.61 and 4.79 - like a structure got 2 more members.
Which CMSIS documentation are you referring to?
Martin,
Thanks for the reply.
I was referring to the API documentation in the MBED Handbook. At the end of the RTOS API descriptions there is a link to the less comprehensive CMSIS documentation. For more CMSIS info I searched the Keil website.
I have now converted my CMSIS calls to RTOS calls to see if there are any problems. It was not quite as straight forward as I imagined. Thread IDs are handled differently, e.g. in RTOS calls, creating a thread does not return the ID and therefore I had to add code to the task to get its own ID. On the plus side, RTOS calls have some routines to get stack info (e.g. free space).
I suppose, my question is 'what would be the advice from the MBED team to someone starting an tasking project - RTOS or CMSIS RTOS?'.
Jim
posted by 25 May 2016