Design Article

Standardizing on a common embedded Eclipse IDE

Martin Whitbread

9/2/2009 4:23 PM EDT

Major embedded systems tools providers are now supporting the Eclipse IDE as a development environment. With so many commercial rivals involved it is not surprising that there are disagreements over the approach.

Wind River seems to favour an enhanced version, tailored to the task of embedded code development and debug, while others are happy to leave Eclipse to the supporting committees and keep to a single freely available version.

If multiple versions appear, it starts to detract from the original concept of a single open source product enhanced by commercial and free plug-ins. On the other hand there are different ports of Linux around, all based on the open-source code.

The Wind River approach
The Eclipse Board has approved the Device Software Development Platform that has been proposed by Wind River. The goal of the DSDP project is to extend the Eclipse platform in order to establish a common framework for the integration of the complete set of capabilities required by device software developers and a common set of base functionality that can be enhanced and extended by the Eclipse community.

A common platform makes plug-in development more efficient and allows developers to target a greater number of operating systems and devices. As leader of this project, Wind River is leading a group of vendors that will collaborate on the definition and implementation of this project, which includes two sub-projects:
  • Target Management: The goal of this project is to develop a common framework to manage remote systems, their connections and services. It will provide an abstraction layer to launch and control applications on the device without requiring specific knowledge of the underlying architecture and operating system.
  • Device Debugging: The goal here is to create a better API to support the debugging of the software running on the target device. The project will extend the Eclipse platform with a debug model, interfaces and views that work with many different debug engines to support conventional DSP and network processors.

Other vendors have been invited to propose additional sub-projects to further enhance Eclipse as a vehicle for device software development tools. A key aspect of the project will be to improve the available support for C and C++. It has been stated that Wind River will be working alongside QNX Software Systems; which overseas the Eclipse CDT (C/C++ Development Tools) project, to deliver a C and C++ IDE. Currently Eclipse is more suited to Java development than C/C++. Wind River joins QNX, IBM, Intel and Montavista as major Eclipse supporters.

Green Hills' open approach
Green Hills has taken the approach of using Eclipse as it is, without customisation. It has integrated the MULTI development environment and related C/C++ compilers with the standard version of Eclipse 3.1 and CDT 3.0. Green Hills is making the source code to its Eclipse plug-ins available to MULTI compiler customers so that they can customise it if they need to.

The compilers have been integrated with the new project wizard, to automate the starting of a new project using Eclipse CDT's "managed Make". The GUI has been configured with Green Hills compiler options. Parsing error and warning messages have been set up so that the related source lines are automatically identified.

Any of the MULTI tools can either be launched natively, or from within the Eclipse interface. This includes the MULTI source-level debugger and instruction set simulators. The output from applications can be viewed using the standard Eclipse console.

LynuxWork's Luminosity
LynuxWorks provides a Java-based IDE for cross-development that is founded on the Eclipse IDE. This product is known as Luminosity and provides the user with a means to create, compile, manage and debug C/C++ embedded and real-time applications.

Support is provided for different cross-platform environments with OS targets such as BlueCat 5.x, LynxOS 4.x and LynxOS-178 2.x being the more obvious targets. As Luminosity is Java-based, it runs on Solaris, Linux or Windows hosts.

Developers can select the New Project Wizard to create a project coding framework for C or C++. All process and thread activity on the target application can be monitored using the System Viewer tool. A project can be quickly created from a variety of templates, including POSIX, or an empty project can be created and loaded with existing code.

Luminosity supports LynuxWorks C/C++ projects for users who want to directly edit/manage their makefiles, giving users control over their build options. Here the debuggers are either based on GDB or the LynuxWorks tools TotalView (for debugging LynxOS and LynxOS-178) and Spyker. The GDB tools consist of GDB with its command line interface, TotalDB which opens GDB with a TCL/TK based GUI, or Built-in which opens the GDB session with the Eclipse IDE�½s interface.

QNX and CDT 3.0
Developed under the leadership of QNX Software Systems, CDT 3.0 provides improved scalability, performance and extensibility of earlier versions. It has been adopted as a C/C++ tools platform by major embedded and Linux vendors, including IBM, Intel, MontaVista, Novell SUSE, PalmSource, QNX, Tensilica, TI and TimeSys. New CDT 3.0 features include:
  • Faster Parsing - The C/C++ parser has improved speed and performance.
  • DOM-based Language Backend - The upgrade includes a more powerful language model in the form of a document object model (DOM), making everything from the C/C++ outliner to searching and refactoring more accessible to plug-in developers.
  • Indexer Selection - Source indexers are now pluggable components, allowing users to select from indexing, CTags utility-based indexing, and CDT parser-based indexing.
  • Enhanced Managed Build System Configuration - CDT 3.0 improves the experience and workflow for developers and integrators. It offers full control over the output artefact and extension, pre- and post-build command execution as well as per-project and configuration environment variable settings.
  • Build Environment Control - CDT 3.0 allows developers to fully configure environmental variables when launching external build commands. The settings are configurable through the standard make and managed build C/C++ project properties, or can be set when creating new projects from the new C/C++ project wizard.
  • Increased Support for Tool Integrators - The CDT 3.0 managed build system provides better support for those who extend CDT, including ISVs and OEMs.
Mentor Graphic's Nucleus Edge
Nucleus EDGE from Mentor Graphics is an Eclipse based embedded development tool suite. It takes advantage of the various new productivity enhancements that the Eclipse 3.0 platform offers.

Developers benefit from a more intuitive GUI that includes tutorials and demos to guide them through the development process. "Cheat sheets" are provided to help users step through new features and plug-ins to the Eclipse framework.

New multithreaded enhancements to Eclipse also allow the Nucleus EDGE user interface to be more responsive, permitting users to interact with the GUI while the Nucleus EDGE software is running a background task. This is particularly useful when debugging large applications with multiple cores, as engineers may need to focus on different parts of the application at the same time.

The Nucleus EDGE software is available for the ARM7, ARM9 and XScale processor cores on Windows. It supports the ARM GNU, RedHat GNU and ARM Realview C and C++ compilers. MinGW, a compiler for Windows, is also provided for use with the host-based debugging feature, giving users basic application prototyping capabilities on Windows.

End view
It is clear that a number of tool suppliers have managed very well to integrate their tool suites with Eclipse without the need for customizing. The question arises though, are there other user needs now, or in the immediate future not yet met by these combinations?

If so then we need the new DSDP project to focus on the specific needs of embedded developers. Time will tell if it comes up an appropriate solution that the industry can adopt with confidence.





bkinsella

10/10/2011 3:57 PM EDT

I haven't used the above-mentioned tools, but I have used Eclipse-based tools like CodeWarrior from Freescale and Code Composer Studio from TI. Each of these tools works well when used in isolation. The problem arises when a developer needs to develop for multiple targets. Or needs to develop embedded C at the same time as Java or Python. Ideally, Eclipse should allow easy switching from one target and tool-chain to another.
Please correct me if I'm wrong, but the vendors don't seem to want to allow this, because it would mean relinquishing some control.

Sign in to Reply



MindTech

10/11/2011 11:58 AM EDT

One of the founding ideas of Eclipse was to provide a framework that vendors could hang their IDE systems on. Eclipse would provide the backbone, and vendors would provide plug-ins that would extend the basic capabilities to their platforms and needs. That way users could simply add functionality based on their needs.
Sadly this has fallen by the wayside in favour of vendors creating independent releases for simple installation without considering plug-in development from a multi-platform approach. Which means that you wind up with multiple installations of Eclipse, one for each vendor; a situation that is less than ideal.
I remember an earlier version of the Adobe Flex platform that offered a full Eclipse download OR an Eclipse plugin package if you already used the Eclipse IDE. This, in my opinion, is the right way to do it. That way I can setup a single install of Eclipse to manage multiple development platforms and targets without managing multiple installations and configurations.
That being said, Eclipse still has a long way to go before it beats out something like Visual Studio for pure IDE functionality and ease-of-use.

Sign in to Reply



Duane Benson

10/11/2011 12:26 PM EDT

This article makes me think about a recent XKCD comic (http://www.xkcd.com/927/). Open source delivers many benefits, but the fragmentation of implementation as described above really holds it back at times. That's probably why Linux as a desktop platform hasn't gained broad adoption outside of the technical community.

Eclipse seems to have a lot of potential, but when I've tried to use it, the issues involved in set up and use often outweigh its advantages.

Sign in to Reply



Please sign in to post comment

Navigate to related information

Datasheets.com Parts Search

185 million searchable parts
(please enter a part number or hit search to begin)

Feedback Form