One of my favorite activities in the embedded industry is tracking and analyzing trends and news in this market. I love to watch or participate in the implementation of modern technologies on the market. Today I would like to share my opinion on the observed trends in the embedded software industry.
The development of microprocessor systems for embedded systems is really dynamic. Every year, larger, stronger, more energy-efficient microprocessor systems will arise. Below, I’ve presented two, which, in my opinion, are the most interesting development directions for microprocessor systems that I have recently observed.
The amazing development of devices and the entire IoT market as well as the demand of high users who care about connecting all devices to the internet have revealed a new threat awaiting embedded devices – the risk of hacker attacks.
The response of the microcontroller manufacturers is the introduction of newer, faster, and more complicated mechanisms that protect the devices, code, and communication interfaces. The latest microcontrollers cannot do without such elements as a trust zone and random number generators (RNG), cryptographic accelerators, tamper resistance, or secure key storage. All these components are to provide the system with an appropriate level of security. This fight, however, seems very uneven – since hackers only have to find one hole and engineers have to patch all of them. Nevertheless, the end result of this battle is a big advantage for the user. The level of security that microcontrollers offer is growing every year.
Personally, I am very happy with the constantly growing trend of implementing security solutions into embedded systems. I believe that we are at the beginning of this path and that the direction of the producers is right. In my opinion, in the near future, most microcontrollers and processors will have crypto peripherals, and security in embedded systems will become a standard.
We cannot skip the new, ubiquitous AI – Artificial Intelligence. This trend strongly came to embedded systems when it turned out that not always being online is something good. A sensor with simple AI elements built into it is no longer science-fiction. Microcontrollers with peripherals accelerating the calculations needed for artificial intelligence or peripherals enabling the implementation of HW neural networks have become a part of the product portfolio of semiconductor manufacturers.
In addition, of course, all kinds of libraries and tools supporting the implementation, learning, and testing of created solutions support and accelerate the work on solutions using artificial intelligence. AI is an incredibly fascinating field of engineering, and using it with today’s systems seems even more exciting. In the future, it will probably surprise us more than once, because the solutions available for this technology are amazing. However, there seems to be a lot of work to be done in this field. Therefore, in my opinion, its development in the embedded industry will be happening at least throughout the next ten years.
Changes in programming trends in embedded systems are certainly not as dynamic as the ones in hardware. However, although they are slower, they do occur. Sometimes some changes are just a temporary trend (new programming languages, for example). Sometimes what happens is that these novelties revolutionize certain branches of the industry due to the fact that they translate directly or indirectly into the profit of producers or generate new opportunities on the market. Following the news from the embedded software industry for some time, I have noticed the following interesting facts.
The first trend that I noticed a few years ago was the slowly growing awareness of the embedded industry itself – what software quality is and how it can be optimally achieved. We have to admit one thing: the embedded industry is a bit behind in using the latest trends in code quality, which is at the expense of software development.
This is because most of the tests are done manually on the final hardware. In addition to this, a lot of IoT devices are unstable in operation or have security vulnerabilities, which are partly the result of a lack of care for software quality. However, you can see a small light at the end of the tunnel.
On the internet, you can find an increasing number of blogs, courses, and webinars on how to properly create software in C/C++ for embedded platforms. Additionally, embedded conferences set the main guidelines for code quality.
At the same time, the awareness of the importance of code quality among young engineers who team on new projects every year seems to be higher. We shouldn’t forget that the knowledge of end-users is growing year by year and one of the factors in the selection of devices begins to be the reliability and security of the software.
All this means that manufacturers of embedded devices are faced with new requirements regarding the quality of software with a strong emphasis on data security. I am very happy about this because I am a promoter of software quality. I hope that the group of embedded products with high-quality software will grow every year.
Another curiosity that I have noticed is quite surprising. I did not expect a language such as Python to find its way into the embedded industry and stay there for a long time. However, the annual ranking of the popularity of programming languages IEEE (The Top Programming Languages 2019) shows that for many years Python has continually been in the top three most popular programming languages.
The low popularity of languages such as C among the new generation engineers, in some way, forces the creators of modern solutions to look for alternative paths enabling quick firmware development.
In addition, the very rapid development of IoT technology raises the standard in this area. Therefore, solutions such as MicroPython (MicroPython – Python for microcontrollers) are becoming increasingly popular. As you probably know, this solution won’t work for all systems, especially in those where the time response must be deterministic. Therefore, do not expect such solutions in computers that manage car or airplane engine operations in the near future.
Popular IoT or infotainment solutions are no longer so demanding in terms of response time or reliability. In addition to this, adapting such a solution to the project means that almost every Python developer can create the required software. As a result, you do not need to look for specialists with knowledge of the C language, which are apparently hard to find these days.
In addition, the free Python database of ready-made libraries/solutions is disproportionately larger than the C language ones. The popularity of this solution is confirmed by a large group of developers interested in this project on Github.
A large number of websites describing projects that use MicroPython, such as WIFI access points, drone flight controllers, home heating controllers, or the use of this technology in LEGO MINDSTORMS software, prove the increasing popularity of this solution.
I predict that with such a growing interest in MicroPython, we can expect more and more commercial projects. As a result, the share of Python in the group of languages used in the embedded industry will increase.
I hope you’ve found this bunch of information interesting. I am very curious to know what the future of the presented trends and solutions will be and what they will evolve. I will surely follow the news and inform you about them.
Piotr Strzałkowski, the author of this article, has been the Embedded Domain Manager at Solwit for over 10 years. He has worked on many projects for clients from various industries, but he feels best in automotive industry systems. He is an expert in implementing cybersecurity solutions in embedded software; the main power of the team responsible for implementing IoT solutions.
Latest blog posts