As 2023 begins, many of you have probably reflected on what worked and what didn’t work in 2022. You are probably looking to the future and wondering what this year will look like. Technology is constantly evolving, creating new methodologies and techniques to improve software quality, cost, and delivery schedules. 2022 has brought many exciting trends to the surface, some expected and some not. In this post, we’ll take a look at some of the embedded software trends to watch in 2023.
Trend #1 – Container Adoption
Embedded developers often run into some problems that cause real problems. First, each developer installs the development toolchain separately on each development computer. Minor differences in toolchains and libraries can lead to different results, leading to bugs that are hard to track down. Second, embedded software applications, especially microcontroller-based systems, are an all-or-nothing monolithic single-binary image of him. Creating updates, adding new features, etc. requires flashing the entire application, which can make workload isolation difficult even for development.
Containers are a popular tool that has revolutionized web, server, and distributed applications. However, there are also many different ways that embedded software developers can help alleviate some pain points. For example, instead of having each developer install a development environment, you can create a container that automatically installs the correct versions of tools and libraries. Additionally, using containers ensures that each developer uses the same tools and that the host operating system or configuration is removed from the chain of culprits.
Containers can also play a role on the device. Yes you read that correctly. The container and container runtime are small enough to run on medium-sized microcontrollers. Once this is done, developers have a fully abstracted microcontroller available. Applications can become service-oriented and use more modern architectures. Updating applications no longer requires a full device flash, but requires replacing or adding individual services.
It’s an interesting technology, so I think it will gain momentum next year.
Trend 2 – Rekindling the Programming Language Wars
When I started developing embedded systems in the late 1990s, the industry was at war with developers in favor of C or C++. It was a heated discussion with good points on both sides and many misunderstandings. As time went on, the discussion simmered and the developers moved forward with the language that made the most sense. Even today, the debate remains largely silent.
Over the past few months, I’ve seen the programming language wars for embedded devices revive. But this time it’s not a discussion between C and C++, it’s a discussion between C++ and Rust. The growing number of Rust advocates is partly due to the Rust memory safety model, which can improve device security.
As the number of embedded developers interested in using Rust grows, I think there will be a debate about whether Rust is ready for production devices. During that time, there has been a significant migration from C to C++ within the industry. So while there is a lot of debate about which language is appropriate, it really depends on what the goals of the system are, the languages in which the team has expertise, and the level of risk associated with the language used. increase.
Trend #3 – Focus on Security
There is a strong demand in many industries to connect embedded systems. The IoT is growing rapidly, opening up a wide range of business cases to deliver value to businesses and customers. The most widely used form of device attack is a remote attack. Any device connected to the internet is a potential target. All his IoT devices need security, and many industries that have so far neglected security are, or are being forced to, consider how to secure their systems. In the coming year, we can see that several technologies will be essential for securing embedded systems.
First, we’re seeing a huge push to use memory-safe programming languages such as Rust. You may find that using a memory-safe language doesn’t make sense based on the cost of learning the language, and also the risks of using the language from a maintenance or evolutionary perspective. If you are forced to move to a memory-safe programming language, remember that you can achieve similar results by following best practices for languages such as C/C++. Memory-safe languages are much easier to work with.
Next, we see the evolution of microcontrollers with more and more features targeting security. Embedded software developers typically have no security experience. As such, microcontroller vendors are facilitating security by adding on-chip features and backing them with software frameworks. While these features ease the security burden, developers still face an uphill battle to ensure they are used correctly and protect devices and data for their specific needs.
Finally, I think we’ll see a trend of security reconformance where device makers who ignored security from the start are now legally compelled to implement security into their devices to protect user data. .
Trend #4 – Adopting Agile Methodologies
Agile values have been around for over 20 years. Over that time, over 40 different methodologies and systems have been developed to help software developers adopt and adopt these values to deliver more robust software “on time”. Unfortunately, it’s not uncommon for embedded teams to adopt techniques like his SCRUM, but they lag behind in adopting other useful tools such as DevOps.
The trend we will see in 2023 and beyond is the adoption of more advanced agile methodologies. Teams around the world leverage concepts like continuous integration and deployment in their process flows. CI/CD helps automate builds, software analysis, unit testing, hardware-in-loop testing, deployment, and more.
Please note that these improvements are gradual. If you’re adopting modern Agile methodologies in 2023, start slow. Trying to rush things can lead to inadequate pipelines and frustrating developers who decide “it just won’t work.” Then things get worse than when you started.
Trend #5 – Multicore Microcontrollers
More and more applications require parallel processing in embedded systems. For example, an IoT application might have one processing core that runs as a secure processor and another manages standard application code. A team might use one core as a real-time processor to collect sensor data, and another core to perform display or machine learning inference.
Multicore processors allow teams to create execution domains beyond the single domain that embedded developers are accustomed to. Even running the network stack separately from the application code helps the product meet real-time deadlines and simplifies debugging and software development for teams.
Over the next year or more, we can expect to see more and more low-cost multicore microcontrollers, especially once the chip shortage is resolved. The possibilities of multi-core microcontrollers and how they enhance the value delivered by products are amazing.
Software trend conclusion
We explored five trends that will be prevalent among embedded software developers in 2023. These trends are taken from a general perspective of the embedded software industry. But our industry is not alone. Where embedded software goes in the future depends on business pressures and where the more important software industry goes. Moreover, different teams have different needs. So it’s imperative to see your particular team and where they need to get to in the new year to be successful.