An RTOS from TI. Why?

TI has announced an addition to their Code Composer line of products – their own RTOS. It has all of the usual features including a file system and all sorts of communications stacks. And it's free and is supplied with the source code.

But… why?

Do we really need another RTOS? The market is already saturated.

This could be an excellent marketing ploy: get developers to design TI-RTOS into a system, and they are forever stuck using processors that OS supports. But a wise developer will be wary of any sort of vendor lock-in. As the agile community says, everything changes all of the time, so it's dangerous to pick tool chains that limit your options.

No doubt the product is highly reliable and all of that. But we don't really know. It seems to me that an RTOS is the very foundation of any product, and must be as close to perfection as software gets.

There are a lot of commercial and even open-source operating systems that have been proven to be correct: either they have been used in zillions of products, or have been used in devices certified to the highest standards of reliability (think DO-178B/C and 61502 ). Buy into one of those (some are free ) and your risks are low; use an unknown and probably everything will be OK. Hopefully.

Sometimes we forget that there's only one reason the company writes that paycheck every week: to help the company create profits. That means our decisions must always reflect business realities. Risk management is one of those issues; add risk only when it makes business sense.

The datasheet  says “TI-RTOS provides a consistent embedded software platform across TI’s microcontroller devices, making it easy to port legacy applications to the latest devices.” But it doesn't. At the least, their entire line of MSP430 parts is unsupported

I looked at some of the code and was unimpressed. Formatting is inconsistent. Some of the developers were meticulous with their commenting and formatting; others were not. Some added Doxygen tags hither and yon; other modules have none.

Laudably, in TI-RTOS base types are avoided. But strangely the derived types are inconsistent. UINT8, UINT16, etc are defined and used, but so is UINT. (What the heck is that?)

Many functions are declared Void . That's right – with a capital “V”. That seemed odd, so I tracked it down to a header file which includes this gem:

#define xdc_Void void

… hundreds of lines of code

#define Void xdc_Void

Function headers are important, and a pet peeve are those that neither describe what a function does nor what its parameters are. That seems to be de rigor in TI-RTOS.

One would think offering a free RTOS would be an excellent way to tick off the company's partners. Perhaps the most important lesson from Windows and the iPhone is that products succeed when they have a large ecosystem of third-party support.

I think TI is an incredible company with some amazing products. But proprietary RTOSes like this (and Freescale's MQX ) strike me as poor business.

Jack G. Ganssle is a lecturer and consultant on embedded development issues. He conducts seminars on embedded systems and helps companies with their embedded challenges, and works as an expert witness on embedded issues. Contact him at . His website is www.ganssle.com .

16 thoughts on “An RTOS from TI. Why?

  1. Uint is a class/type of unsigned integer. uint8 – unsigned int (8-bit), …
    I think the main purpose of TI is to support for their large MCU ecosystem. Why do you refuse to take advantages when you already had a prosperous market?

    Log in to Reply
  2. Gaaa! Not yet another definition of UINT8 et al causing redeclaration conflicts with every other third-party library that also thought this was a good idea!? What would have been wrong with using ISO C99 stdint.h types? At the very least perhaps TI_UINT

    Log in to Reply
  3. You ask why? Surely the answer is obvious: lock in.

    These days, particularly with the vast range of Coretex Mx based ARM parts, it is getting easier and easier to switch between silicon from different vendors. Switching from TI to NXP to ST etc is almost

    Log in to Reply
  4. In my opnion this multi dimensional aspect. In some cases where volume is low or less money involved going for third part RTOS seems to be challenging. Where as with MQX like RTOS you get it free, good support, certified OS, has many features such as USB,

    Log in to Reply
  5. I've been using TI DSPs and RTOS for about 10 years now and have been very happy with their RTOS and development environment (and support). There's no royalty fees for the RTOS and the development environment yearly subscription is only $99. Pretty hard

    Log in to Reply
  6. I think the loss of OS independence must be weighed with the cost of a third party RTOS. I have just been through an in-depth evaluation of three major RTOS/TCP/IP Stack providers. While the quality of the commercial offerings is superb, the pricing and

    Log in to Reply
  7. TI-RTOS, SYS/BIOS, DSP/BIOS has been around in one name or another for much more than a decade. It is not new. It has been used in a zillion projects and proven.

    The documentation is in the docs folder, where you can view all the functions for all the m

    Log in to Reply
  8. @Nails: I suspect that Jack has forgotten more about embedded systems than you and I (combined) will know.

    I will fully admit I do not know about the three products you mention (which are in the datasheet), because I do not like TI micros (personal taste

    Log in to Reply
  9. If TI-RTOS is not “new” what exactly are TI “announcing” here then in your opinion? The version number is v1.00.01.74 dated 28-SEP-2012 – sounds pretty new to me!? What it appears to be is the SYS/BIOS kernel (an existing and mature product), with middle

    Log in to Reply
  10. First, as someone already mentioned. It is free, and if you do not want to use it. Do not use it.

    However, we should all know that there is no such thing as a free lunch. So if the price is being locked into a given brand / device to use these freely pro

    Log in to Reply
  11. One reason why I think TI-RTOS should be used is to keep the development environment uniform. To cite as an example, TI's multicore Concerto device has a C2000 and an ARM core. TI-RTOS provides an optimized kernel for C2000 core (not available from any oth

    Log in to Reply
  12. There seems to be a trend by various chip set manufacturers to provide also their own RTOS/OS. They want to sell chips and they want to sell their specific chips, so RTOS lock-in is what they are after IMHO.

    I can only recommend to stay with more “vendor

    Log in to Reply

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.