15 years of open source embedded tools at Eclipse
Eclipse CDT is the industry standard C/C++ IDE powering the design and development of embedded systems worldwide. In this article, Tracy Miranda goes over why Eclipse CDT has been so successful for so long.
Smart cities swarming with autonomous vehicles while intelligent robots work away at every corner. This is the direction technology is taking us. At the heart of these trends are the embedded systems: the hardware, the integrated circuits, the silicon chips. And the enabling technology for these embedded systems are of course the embedded tools, something we know a lot about in the Eclipse community.
The Eclipse C/C++ development tools (CDT) is the industry standard C/C++ IDE powering the design and development of embedded systems worldwide. This year it celebrates its 15th anniversary. And in those 15 years, thanks to its highly customizable nature and industrial strength, Eclipse CDT has been adopted and customized by every silicon vendor and more out there. Eclipse CDT has been a dominant driver in the birth of highly-effective, open source embedded software tools that in turn have enabled both hardware and software innovations in this space. Here are just some of the CDT-based products out there being used by developers around the world to build powerful embedded systems.
Building on Eclipse CDT’s success, we have seen more and more valuable embedded tools follow the same open-source, collaborative model. Eclipse Trace Compass provides tooling for interpreting the behavior of complex systems by viewing or analyzing any types of logs or traces.
The Eclipse Linux Tools project provides a collection of useful plug-ins for functionality such as profiling and code coverage. Eclipse Linux Tools is about developing Linux for any target, especially embedded ones, so don’t misunderstand the name – most of these plug-ins work on Windows too.
There are lots of ongoing interesting developments in the CDT and related projects space. One of the most exciting new features is Docker tooling support, including the upcoming support to build C/C++ projects in a Docker container.
In addition to the CDT ecosystem, there are a number of other embedded tools hosted in the Eclipse community. Eclipse APP4MC is a platform for engineering embedded multi- and many-core software systems. With the megatrend that is the internet-of-things, Eclipse Vorto provides a way to create and manage technology agnostic, abstract device descriptions, so called information models.
Challenges for embedded tools
Going forward embedded tools face theses three main challenges:
1. Tool Complexity – As complexity of the underlying systems-on-chip grow, so do the requirements for the tools – there is a great deal of functionality to contend with for the tools of the future. Multicore debugging is just one example of very complex interactions that have to be presented to users in an easy to understand, fast and robust way.
2. Sophisticated Users – today’s users are increasingly sophisticated. They have specific notions of what tools should look like and how they should work. Often embedded tools suffer from usability issues as they have not spent enough effort focusing on the end-users needs and optimizing key task flows.
3. Integration Demands – an extra burden is put on developers to get integration right. Today tools cannot exist in a vacuum and must play nicely with the existing systems out there, whether they are other developer tools or devops tools for build systems and revision control. Dealing with integration issues complicates the lives of tool developers as these requirements often arise further down the project life cycle and require a high level of adaptability.
Future of embedded tools
EclipseCon Europe provided the setting for developers to work together to overcome these challenges in practice. The Embedded Tools Summit provided the unconference for sharing ideas, discussing complexity, user needs and integration demands, seeing demos of tools in action and thoughts on the future.
At the main conference, there were several talks following the embedded theme:
- Docker Container Build/Run/Debug Support for C/C++ Projects
- Eclipse APP4MC – embedded multicore optimization
- Taming complex chip designs with beautiful diagrams
- The Importance of Open Source Tooling for ADAS and Automated Driving
- CDT: Where are we? Where do we go from here?
- Make your ideas fly – Developing software for quadcopters with Eclipse
- What about a Common Debug Protocol?
Embedded tools are building systems for societal-scale applications, and as a result, we need new ways to support this large-scale innovation. Open source is a proven model for innovating across established companies, institutions and start-ups. Open source provides a way to free developers from the day-to-day drudgery and help elevate them to the next level of problem-solving. Eclipse CDT is one of the best examples of that and sets the tone for the next generation of innovative embedded system tools that will build our future worlds.
This post was originally published in the October 2017 issue of the Eclipse Newsletter: Utility Belt: Projects and Tools
For more information and articles check out the Eclipse Newsletter.