4 years, 11 months ago.


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?


Jim Herd

1 Answer

4 years, 11 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?


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?'.


posted by jim herd 25 May 2016