As critical as embedded systems software is to system functionality, You'd think that companies would place greater value on it. But no, they hate to spend money developing it since they just give it away.
Over the past few years, the ratio of software engineers to hardware engineers has shifted to the extent that in manyperhaps mostelectronics systems companies, software engineers are in the majority. Yet here's a conundrum: though systems require software to run, it seems to have no market value.
Case in point: Nvidia engineering VP Chris Malachowsky notes that in his company software engineers outnumber hardware engineers. He acknowledges that Nvidia doesn't sell software, but it can't sell graphics products without drivers and other software. Hence, the company gives away software to sell hardware, a strategy that's been common in the electronics industry for over two decades.
Note that over the course of that time, software's role in electronics systems has burgeoned. Embedded softwareor firmware , since it usually resides in ROMis now a major component of system functionality and features. Firmware developers are required to have intimate familiarity with the underlying hardware, far beyond what's required to develop applications code for desktop systems.
Increasingly, embedded software is the hard part of the designas you well know. The amount of code systems incorporate has escalated over the years, thanks to cheaper memory and more powerful processors. Software makes hardware function, and moreover, provides product differentiation, particularly in an era when platform-based design is emerging (and by platform I mean highly integrated systems on silicon targeted at multiple products in related product areas). Software offers features and flexibility and even the ability to fix hardware flaws.
Despite the increased importance of software in electronics systems, embedded software development tools command far lower prices than, say, the electronic design automation tools required to design digital hardware. Like EDA companies, embedded software tool vendors have a mutually beneficial relationship with the huge semiconductor industry in much the same way that pilot fish have with sharks. Both EDA and embedded software tool companies are relatively small compared to their symbiotic partners.
There's an unwillingness to invest in anything that's not demonstrably a product. Throughout the rapid evolution in the electronics industry, companies still have been giving away software to sell hardware, a phenomenon that assures companies won't pay as much for software development tools as they do for hardware tools. Consequently, the tools to develop reliable embedded software have not progressed as rapidly as those for hardware development.
If you consider the industry trends toward higher integration that we've seen over the past 20 years, you'd have to conclude that software content in embedded systems will continue to increase, given still cheaper memory and faster processors, which allow ever more functionality to move to software without sacrificing performance.
As editor-in-chief Michael Barr once aptly pointed out, an embedded system without software makes a good doorstop. It's a good point to remember.
As an embedded software engineer, I agree wholeheartedly that software development is becoming much more difficult. There is one point that we need to remember: the documentation for software is much greater than hardware documentation. I am in the aerospace business, and therefore must deal with the FAA's DO-178b standard. Adhering to this standard usually generates 1 page of documentation for every 50 lines of code! Our last product that we released had a verification procedure that was over 3400 pages. That was only 1 of several documents that are needed by the FAA. Never knew when I entered this job market that I would become a tech writer…
Project Engineer, Software Development
Displays and Electronics