For completeness, we’ll also go through the process of checking a project out of the repository. In the C/C++ perspective, delete the thermostat project. When prompted, check Delete project contents on disk. Now go back to the CVS Repository Exploring perspective and right-click on thermostat. Select Check Out. The project is copied to your workspace and built.
8.2.5 Branching
To wrap up our exploration of CVS, we’ll look at the branching process. There may be any number of reasons why you would want to create branches for a project in addition to HEAD. Maybe there are multiple versions of a product, in which the software builds differently for each version. Make each one a branch. You might want to establish a developmental branch separate from the production branch.
In the C/C++ perspective, right-click the thermostat project and select Team→Branch…. Give the branch some sensible name (Figure 8.26) and leave the Start working in the branch box checked. CVS proposes a Version Name. The version name identifies the point at which the branch was created, and is necessary later on when you want to merge the branch.
Figure 8.26: Create CVS branch.
The branch name shows up next to the project name. Back in the CVS Repositories view, expand the Branches node of your local repository. You’ll see the branch you just created and under it, the thermostat project. Now, when you do a checkout or a commit, you’re working with the newly created branch and not HEAD.
Summary
In this chapter we’ve looked at two advanced features of Eclipse, one built-in, and the other an add-on, that can greatly improve software productivity and reliability. UML is a powerful tool for visualizing complex software and deriving code templates from the graphical models. Although most open source UML tools tend to be oriented to Java, there’s nothing to prevent tools that have a C++ flavor. Eclipse plug-in Central lists 35 plug-ins in its UML category. It might be worth checking some of them out.
CVS is an integral part of Eclipse that brings some order to the potential chaos of team development. Project resources are checked in and out of a central repository in an orderly fashion, and conflicting changes can be easily identified for resolution. CVS tracks every change so that the code can be rolled back to any previous version if necessary.
In the next and final chapter we’ll look at how three embedded Linux vendors have adapted the open source Eclipse platform to build commercial products that address various aspects of the embedded development process.
UML
Fowler, Martin. 2003. UML Distilled: A brief guide to the Standard Object Modeling Language. (3rd ed.) Addison-Wesley.
Miles, Russ, and Kim Hamilton. 2006. Learning UML 2.0. O’Reilly.
Bruce Powell Douglass has been particularly prolific in writing about UML for embedded and real-time applications. His titles, all published by Addison-Wesley, include:
Douglass, Bruce P. 1999. Doing hard time: Developing real-time systems with UML, objects, frameworks, and patterns. Addison Wesley.
Douglass, Bruce P. 2004. Real-time UML: Advances in the UML for real-time systems. (3rd ed.) Addison Wesley.
Douglass, Bruce P. 2006. Real-time UML workshop for embedded systems. Addison Wesley.
CVS
Bar, Moshe, and Karl Fogel. 2003. Open source development with CVS. (3rd ed.) Paraglyph.
Cederqvist, Per. 2002. Version management with CVS. Network Theory Ltd.
Vesperman, Jennifer. 2006. Essential CVS. O’Reilly.
CHAPTER 9
Eclipse-Based Development Products
An interesting feature of the Eclipse ecosystem is that it explicitly encourages the development of proprietary commercial products on top of the base platform. In the embedded Linux world, several vendors have migrated from proprietary development environments to tools based on Eclipse.
This chapter takes a look at how three of the leading embedded Linux vendors have extended Eclipse with value-added software to create their own unique products. The information is based on evaluation versions of the tools, and for the most part are my personal impressions of what seemed most interesting about each one. This is in no way intended to be a “competitive analysis,” or to say that one product is “better” than another. The intention is simply to show how these three vendors have approached the issue.
9.1 Why Buy It?
You may be wondering, why should I pay money for something I can get for free? The most common reason is because open source software vendors have gone through an extensive testing and integration process to make sure that the various software packages from different sources actually do work together as advertised.
The goal of most open source projects is not to create production-ready code, but to push the technology envelope. That’s less true of Eclipse with its annual major release of the platform and a large number of related projects. This is, in turn, accompanied by quarterly maintenance releases. The result is code that is quite stable, and for the most part, bug free.
But of course, embedded software development is more than just an IDE. You also need an operating system, tool chain, boot loader, file system, and so on. The quality and stability of open source implementations of these elements varies widely. The Linux kernel, for example, changes daily. Unless you want to be a kernel developer yourself, trying to keep up with that is futile and counter-productive.
The vendors discussed in this chapter offer complete embedded development tool suites that include, at a minimum, the Eclipse platform with proprietary plug-ins, one or more GNU tool chains for cross development, a Linux kernel, and a boot loader of some form. This doesn’t come cheap, but if your objective is to get a stable, reliable product out the door on time, it’s probably worth it.
9.2 LynuxWorks — Luminosity
Having been in business for some 20-odd years, LynuxWorks predates the Linux craze, selling its own Unix-like real-time operating system called LynxOS. Variants of LynxOS include:
• LynxOS-SE. Based on a virtual machine architecture that supports “medium robustness” security as defined by the US Government.
• LynxOS-Secure. A separation kernel and embedded system hypervisor for very high security, mission-critical applications
• LynxOS-178. Meets the requirements of DO-178B Level A for safety-critical systems
LynuxWorks also offers its own version of Linux called BlueCat Linux.
Luminosity, the company’s Eclipse-based IDE, supports the full range of operating system products. The current version of Luminosity, 3.0, is based on Eclipse version 3.2.
9.2.1 Getting the Evaluation
The product page for Luminosity on the LynuxWorks website doesn’t offer a link for an evaluation, but the RTOS product pages do offer such a link. This takes you to a request form. The RTOS evaluation will include Luminosity.
My evaluation version of Luminosity was delivered as four ISO image files: