Crystal ball gazing is, I feel, commonly a foolhardy activity. So often, I have heard so-called experts making complete idiots of themselves with their perspectives on a future that seemed unlikely at the time and turns out to be completely wrong in every detail. The world of embedded software is no different. Every few years a new fashionable technology is talked about everywhere, with predictions of the world changing completely, but it never quite happens.
I recently listened to an interesting podcast by a couple of well-known names in the business. A wide spread of opinions is part of life, and we should not always expect to agree with each other. I would like to suggest a different view …
There are, it seems to me, three “alternative”, or at least contentious, “facts” to consider:
- the idea of an RTOS is anachronous, as we now have very fast, powerful processors that just get the job done
- the provision of OS products by chip vendors is definitely a good thing for developers
- using open source OSes puts all the work/risk on the developers
Taking these in turn:
The market for commercial RTOS products is now around 30 years old, but similar technology has been in use somewhat longer. In the early days of embedded systems, resources [memory, CPU power etc.] were scarce and any means to optimise them was welcome. An RTOS provided a way to carefully control the use of CPU time. Fast forward to 2017 and things have not necessarily changed. Many systems still have limited resources. They may be considerably more powerful than anything in the 1980s, but embedded systems still often have just enough memory and CPU power to get the job done. Mostly these constraints are driven by the need to minimise power consumption and production cost. An RTOS still gives a means to optimise resource usage. It can be argued that, in some systems, there is so much CPU power, that we have no need to manage time – it is so powerful that everything will be done fast enough. This fails to appreciate what “real time” means. It does not mean “real fast” – it means “fast [or slow] enough” – ultimately, predictable or deterministic. This is how an RTOS provide value.
There are a number of mainstream, widely-used RTOS products on the market, which are supplied and supported by independent software companies, who are not tied to any specific silicon. Mentor Embedded’s Nucleus is a very good example. When a new embedded design is considered, all aspects of that design – hardware and software – should be reviewed. Reuse of existing IP and skills is very wise, where that is optimal. If you have a choice between reuse of hardware design or software, which should you choose? The answer is easy: the software is by far the bigger job, so this IP/expertise is most valuable. Reusing software that ties you to specific silicon is not an acceptable constraint.
Many people favor the use open source operating system products. Although they should never be considered to be “free” [as I wrote about recently], they may be a good choice for many applications. Although a “roll your own” approach may be taken – i.e. download the code and perform all the integration etc. yourself – this is rarely a wise move, as many vendors can supply all the support required to successfully deploy the chosen OS and mitigate risks.
So, that is my 10¢ worth. Comments are welcome …