Software development isn’t for wimps. Today’s developers have to deal with an intensifying pace of innovation, ever-growing code bases, and increasingly complex hardware. One of the best ways to deal with these challenges is to focus on software interoperability. A highly interoperable platform can make it much easier to start coding faster, migrate legacy code, and future proof software. For example, a platform with a strong history of interoperability will gather OS, tool, and middleware support that can make it much easier to start coding.
Intel® architecture (IA) processors are an excellent example of a platform that emphasizes software interoperability, as well as a great example of a well-supported platform. In the embedded space, IA processors are supported by the Intel® Embedded Alliance, whose 200-plus members collaborate closely with Intel to create optimized software, tools, and services that can speed and simplify software developments.
To see how the Alliance ecosystem support benefits software development, I recommend the white paper Five Keys to Software Success. This paper shows how developers can:
- Take advantage of solutions for GUIs, connectivity, business integration, security, cloud computing, and more.
- Apply pre-integrated solutions to shorten time to market.
- Use virtualization to preserve legacy software.
- Employ tuning and debugging tools for faster development and better results.
- Engage integrators and services companies to speed up product delivery.
Let’s explore a few of these points in detail, starting with integrated solutions. The growing complexity of embedded applications is leading more developers to look for off-the-shelf, commercial software components that they can use as the foundation of their design. The benefit of this approach is that it can save developers from doing a lot of redundant, non-value-added work. However, it can still be a major challenge to get all of these components integrated and working smoothly on your chosen hardware. In fact, just getting your hardware to boot can be a major challenge!
Fortunately, the Alliance offers a number of integrated solutions that make it easier to start development. For example, Wind River has partnered with several board vendors to create out-of-the-box starter kits that integrate the key hardware, software, and tools you need to get started (see Figure 1). It’s worth noting that these kits do more than simply package components together – instead, they pre-integrate the components so that you can start development in a matter of minutes.
Figure 1. The Wind River Embedded Development Kits offer a fully configured solution to help developers begin development quickly.
(Click image to enlarge)
Another major hurdle for embedded software is the need to incorporate legacy code. Virtualization can make this challenge significantly easier. This technology enables multiple OSs to run on a single hardware platform, creating interesting possibilities for software migration and hardware consolidation. For example, you could use virtualization to combine legacy software written for a single-threaded OS with new software written to take advantage of multi-core IA processors. To dive deeper into this topic, check out my recent round-up of virtualization articles.
Regardless of your starting point, testing and debugging are huge parts of most embedded projects – so much so that they are usually the most time-consuming element of the development process. This is a particularly important challenge for open-source projects, which often contain thousands of packages. Developers can overcome this challenge with automated testing tools for open source. Whatever OS you choose, you can also take advantage of a broad range of software tools and JTAG debuggers from Alliance members like Arium, Green Hills Software, Lauterbach, Macgraigor Systems, and Wind River.
Finally, let’s take a moment to consider the future – more specifically, the merits of future-proofing your code. Most designs undergo multiple updates after their initial deployment to accommodate new technology and customer demands. For example, designs are often updated with new features over time. Software changes are easier to deal with when you base your design on a flexible software framework that uses standards-based interfaces, as explained in the Eurotech article Future Proofing through Portable Software. It’s also a good idea to follow programming best practices, as outlined in our blog Structure Software to Ease Porting.
The links I’ve listed here only scratch the surface of what the Alliance has to offer. To learn more about building interoperable, standards-based solutions, visit intel.com/go/embedded-interoperability.
Eurotech and Wind River are Associate members of the Intel® Embedded Alliance. Green Hills Software, Lauterbach, and Macgraigor Systems, are Affiliate members of the Alliance.
Roving Reporter (Intel Contractor), Intel® Embedded Alliance
Editor-In-Chief, Embedded Innovator magazine
Follow me on Twitter: @kentonwilliston