Embedded Software Trends

Embedded Software Trends Expand in 2020-21

Design News editor Jacob Beningo expected two game-changing developments for the embedded systems room in the 2020s at the end of 2019: #1 – The emergence of Python as a dominant language, and #2 – Machine learning at the edge. To the 2020 list, I'd like to add some background.

1. Python is now the most common programming language used by software developers outside of the embedded systems industry, as Beningo pointed out. In reality, according to an IEEE survey conducted in 2019, Python is the most common programming language among engineers, followed by Java and then C. According to the Aspencore 2019 Embedded Markets Report, the number of projects has increased in the last two years, the number of projects programmed in Python in the embedded space has doubled! Keep in mind the study also found that there was no change in the number of projects using C, noted Beningo.

A recent study in 2020 by Northeastern University confirms the popularity of Python, Java, and C/C++. The study notes that Python is widely regarded as a programming language that’s easy to learn, due to its simple syntax, a large library of standards and toolkits, and integration with other popular programming languages such as C and C++. Python is the first language that students learn in the Northeastern University Align program, a course of study specifically designed for students who want to transition into computer science from another field of study.

Top 10 Most Popular Programming Languages.

No alt text provided for this image

Python is used in a wide variety of applications, including artificial intelligence, financial services, and data science. Social media sites such as Instagram and Pinterest are also built on Python. The one major drawback with Python is its unsuitability for mobile application development.

2. The second game-changing trend in the embedded space on Beningo’s list was machine learning, especially for IoT edge applications. As he pointed out, machine learning holds a lot of potential for embedded systems developers as the new decade begins.

How important is it for software developers and programmers to gain machine learning skills? To answer this question, consider the comments from Andrew Feldman, co-founder and CEO of Cerebras Systems Inc., from his virtual keynote presentation during the 2020 Design Automation Conference (DAC). “… the requirements to train the largest deep learning models increased by 300,000x between 2012-2018. This represents a doubling every 3.5 months or 25,000 times faster than Moore’s Law.”

To highlight this point, Feldman shared a recent poster he found at a bus stop in Palo Alto, CA, offering courses in AI for third graders. (Image Source: DAC 2020 Andrew Feldman)

No alt text provided for this image

Software for Spaceships

The rise of the number of commercial space flights in the last decade has prompted renewed interest in engineering careers, including EE, ME, CS, and software programmers-engineers. Highlighting the growing interest in the software side of space and similar mission-critical applications was an ecosystem talk during the Arm DevSummit.

Keenan Johnson, Head of Robotics Software Engineering at Bedrock Ocean Exploration, talked about his experience with software development at SpaceX, NASA, and on electronic aircraft systems and deep-sea drones. One of the biggest challenges he saw in developing software for the space industry stemmed from unreliability and the high failure rate of applications in the consumer market. Most people simply don’t trust software to work all of the time. While a software failure in most consumer apps is inconvenient, it’s often fixed by simply rebooting the computer, cell phone, or other devices.

“GIT” and Versioning Control

In the automobile industry, there are a lot of designs going on. In the hardware and software design phase, the automotive specification ISO 26262 demands a higher degree of traceability and practical safety knowledge. Standards now have a greater impact on IP functional protection than they did previously. As a reminder, functional protection identifies the requirements for avoiding unacceptably high danger from hazards caused by malfunctioning behaviour of electrical and electronic automotive systems. For both mission-critical and non-mission-critical applications, version control and intellectual property (IP) management have become essential. GIT and other versioning techniques have been used by many embedded (and chip-level) software developers. GIT interfaces are being integrated into the device specifications and simulation tools of many tool vendors, including Methodics and others.

Security Issues with Outdated IP

Given the value of intellectual property in electronic hardware, software, and mechatronic design and manufacturing, you'd think it'd be a cherished and well-managed asset. According to a new 2020 Open Source Security and Risk Analysis (OSSRA) study, this is not the case. One of the report's main findings, which was developed by the Synopsys Cybersecurity Research Center (CyRC) and based solely on cybersecurity, was that 91% of commercial applications contain outdated or abandoned open-source components —a potentially serious security threat and legal concern. Further, the report revealed that 99% of the 1,250 commercial codebases audited contained open-source code, with open source comprising 70% of the code overall. According to a press release, what was, “more notable is the continued widespread use of aging or abandoned open source components, with 91% of the codebases containing components that either was more than four years out of date or had seen no development activity in the last two years.

RISC Open Software

The free and open RISC-V Instruction Set Architecture (ISA) has been grabbing more and more headlines lately. One reason is that RISC-V might become a less expensive yet viable competitor to global processor leader Arm, especially if the latter is acquired by GPU-giant Nvidia. RISC-V is provided by open-source projects such as GCC and Linux. RISC-V, on the other hand, is generating a sizable commercial tech ecosystem. The beauty of RISC-V is that it serves as a bridge between two open specifications. Asanovic explained, this means that hardware processor developers can take advantage of the vast software ecosystem as long as they obey the spec. Similarly, the software developers understand that their tools will work across all the hybrid implementations from many different vendors. John Blyler is a senior editor at Design News, where he covers the electronics and advanced manufacturing industries. He has years of experience as an editor and engineer within the advanced manufacturing, IoT, and semiconductor industries, with a BS in Engineering Physics and an MS in Electrical Engineering. John has co-authored books on device engineering and electrical engineering for IEEE, Wiley, and Elsevier.

Ready to discuss your project? Let's Talk Contact Us