If you or your software developers have had to choose a software tool for a new project or perused software development magazines or websites, chances are you've come read about Eclipse and how everyone is jumping in on this new platform. Many are heralding praises for it but the context in which it is mentioned differ (Java, C/C++ IDE, etc). So what is Eclipse and how can you benefit?
What is Eclipse?
Eclipse is a number of concepts.
- A non-profit, open-source community – Eclipse Foundation
- An extensible application framework for the development of software tools – Eclipse Platform
- A collection of open-source projects providing solutions for multiple development applications
- An extensible Integrated Development Environment (IDE)
Unlike many other open-source communities, the Eclipse Foundation has a strong organizational structure complete with a Board of Directors and full-time vestment from its main Strategic Developers and Consumers.
The strategic members herald from many top tier engineering firms such as IBM, Intel, Motorola, Nokia, Wind River Systems, Google and Computer Associates. Additionally, HP and SAP are noted as begin major Strategic Consumers as major users of the Eclipse platform. This type of backing guarantees that the development of and support for Eclipse can rival that of commercial, fee-based products from singular companies.
The Eclipse Platform is a Java-based application platform that is extended through the use of plug-ins. At the core of the Eclipse Platform is the Rich Client Platform (RCP) which provides the basic Eclipse GUI and plug-in detection interfaces. Through this, developers can add functionality by creating Java-based plug-ins, such as editors, GUIs, batch processors, etc.
The Eclipse projects extend upon the Eclipse Platform by adding features local to the direction of each project. These core projects are developed by the Eclipse Strategic Developers for use as a starting point for other open-source or commercial plug-ins and projects. For instance, the CDT project extends the Eclipse Platform by including a C/C++ editor, parsers, debugger and build mechanism.
Eclipse in it's most common form is a highly extensible IDE. It has many familiar and useful features such as including a context-sensing editor, source code control and file management. More importantly, it provides a common interface that carries through all Eclipse-based projects and products. This reduces the learning curve that most developers experience when switching between different company-specific IDEs, ie, MSVC to MPLAB IDE.
Many other Eclipse Foundation-supported projects exist most of which are based upon the RCP project. Of most interest to embedded developers is the the C/C++ Development Tools (CDT) project. This project uses the Eclipse Platform and workbench plug-ins as its IDE and adds features to automate build and make operations with embedded target cross-compilers.
Included in the CDT is a C/C++ context specific editor with content assist, generic makefile generator and debugger. What is not included is the toolchain and cross-compiler for the intended embedded target. These must be provided.
Also of interest to embedded developers is the Embedded Rich Client Platform (eRCP). The purpose of this project is to provide an application framework for Eclipse Platform projects that can be run on embedded targets. This allows developers who build RCP-based projects, which are typically run on general purpose hosts, the ability to port them to an embedded target.
How can you leverage Eclipse for your project/product?
The Eclipse platform with workbench plug-ins can be used to build a customized IDE to provide a graphical interface and automate the build process. Optionally, a new or existing toolchain for a specific embedded target can be incorporated into a customized IDE. Why hack through a commercial IDE which was meant only for the packaged compiler and which results in a sloppy integration? Instead, easily deploy a pre-configured and branded product using Eclipse.
Additionally, it is possible develop applications for your embedded target using the Eclipse eRCP (embedded rich client platform), greatly simplifying application development on Java-enabled systems.
RightHand Case Study: How We've Used the Eclipse Platform
Our Client's Challenge: Allow product partners the flexibility to modify firmware using a customized IDE that prevents the breaking of basic device functionality and protects the integrity of the device. In this particular IDE, there was a requirement to switch from a BASIC-based interpreted language to a structured language C/ C++ so that our client’s partners could more easily customize features and functionality.
RightHand's Solution: RightHand engineers developed a full cross-compiler toolchain (make, compiler, strip, linker) as well as an IDE with customized plug-ins. Our client’s partners could now code, compile and load customized firmware with one single tool.
The new development environment created with Eclipse:
- Automates the build process, eliminating the need for tedious command-line development.
- Provides a more intuitive interface.
- Shortens the learning curve for customizing firmware.
- Reduces support time.
- Gets products to market faster.
- Protects the product’s basic functionality... so that core product features won't stop working.
The completed IDE product is a seamless, branded, stand-alone package that is easy to maintain and support. Because the IDE was developed with the Eclipse Platform, additional Eclipse plug-ins may be added as needed.