I recently attended a preview of UBM's latest annual survey of embedded developers. The survey provides a valuable opportunity to see trends by comparing year-on-year changes. Much of the data is unsurprising and many factors never seem to change. Embedded developers tend to be quite cautious and conservative: they subscribe to the ‘If it ain't broke, don't fix it’ school of thought. So, when something does change, it tends to get my attention.
One question asked which kernels or operating systems were being deployed in new projects. Respondents could check several boxes, one of which was ‘custom/in-house’. This year, the number choosing this option increased noticeably; it had been in steady decline for many years.
This is quite a surprise and a bit of a mystery, as the acceptance of commercial [or, at least, off-the-shelf] operating systems has been steadily rising. I have found that the ‘make versus buy’ dilemma is a popular topic at conferences, but the conclusions are usually quite clear.
I can think of a few reasons why things may now be trending in the other direction:
• Developers are dissatisfied with the products on the market.
• They are unaware of the vast choice of products, both in terms of their technical features and business models.There is a perception (or rather, misconception) that this might be a way of saving money
All are possible, but there may be yet another explanation.
Although 32bit CPUs have become very well established for embedded system design in recent years, there remains significant utilization of 8 and 16bit devices where less computing power is needed and cost or power is an issue. This is changing, however, as very low cost 32bit MCUs are become available. They give developers the option of an elegant 32bit architecture (as well as access to sophisticated tools etc.) and very modest power consumption, at a price that is competitive with 8 and 16bit alternatives. But there are two challenges that face developers at 32bit who need a kernel of some kind:
1. The available memory for the device may be very small indeed, compared with conventional 32bit systems. Although some commercial OSes (like Mentor Graphics' Nucleus) can scale down to a very small memory footprint, developers may be unaware of this option.
2. Developers used to working with 8 and 16bit technology may just be unaccustomed to viable off-the-shelf options being available, so a ‘do it yourself’ approach seems natural.
Certainly, it’s a topic that I anticipate will be discussed further in many forums during the weeks and months ahead, including at my blog on mentor.com, where I discuss embedded software matters – and whatever happens to be on my mind.