I’ve just come across an Embedded System Study by UBM published in April 2012. The company surveyed over 1,700 professionals working on embedded systems who are mainly based in the US (56%), but also in Europe (21%) and Asia (12%). The report is 87 long, but I found some of the slides are particularly interesting in regards to programming languages, operating systems and software life cycle, as well as processor/micro-controller choices.
Unsurprisingly C (65%), C++ (20%) and assembler (5%) are still the main languages used for embedded software development.
In this report, we also learn that the average team is composed of 14.5 members including 5.6 software engineers, 5.6 hardware engineers and 3.3 firmware engineers. 2012 was the first year they included QA Engineers and system integrators both with 2.6 members on average working on projects lasting from less than 6 months to over 25 months.
UBM survey also provides a breakdown of the project life cycle which shows most of time is spent on implementation and debugging, and documentation is basically an after thought.
Embedded projects currently use as much Commercial OSes as open source OSes (with or without commercial support), but the trend appears to be favorable for open-source OS without commercial support.
That’s a relief (to me) to learn that the operating system choice is mainly influenced by software engineering staff & managers. The top three reasons for OS selection are full source code availability (41%), real-time performance (31%) and no royalties (31%). 56% of respondents are currently using or consider using embedded Linux in their next project because it is low cost (72%) and easily adaptable and extensible (54%), but 44% would not use embedded Linux mainly because of software/app/driver incompatibility (39%) and memory usage (25%). There are also 14% who cited legal reasons for not using embedded Linux.
As discussed by Linux.com, Android is clearly popular in smartphones and tablets, but is also experiencing tremendous growth in embedded systems with 34% of respondents considering using Android in one of their next project within 12 months.
Note that 4 of the top 5 operating systems (Android, FreeRTOS, Ubuntu and Micrium) are all open source, so there’s clearly an irreversible move in this direction. The Linux based operating systems listed above (Ubuntu, Debian, Red Hat, Angstrom and MontaVista) represent 36% of the total, and 70% if we include Android in the total.
Most embedded projects use 32-bit micro-processors / micro-controllers (63%), following by 16% who use 16-bit tech, 13% 8-bit and 7% for 64-bit. The trend for 8-bit and 64-bit is stable, 16-bit usage is declining, and 32-bit usage is growing slowly. Most embedded projects have a main processor clock rate below 250 MHz.
Finally, when asked to cite ONE vendor with the best ecosystem for the needs of the respondent, Texas Instruments took the lead (19%), followed by Freescale (11%) and Microchip (10%).
Those are just the a few parts I found the most interesting, but you can read the full survey for more details.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Matlab??? :s
@onebir
Right, Matlab is the 6th most used “language”. According to the report, Matlab is the number one tool used for “system level design”, before System C. It suppose this is for simulation, before the hardware is ready. I don’t really know about this part, as I’ve never had to use such tools at work.
I assume in most cases, generated code from Matlab is used for control engineering parts of the software.