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.
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:
• FlexLM license manager
• Luminosity
• LynxOS cdk
• LynxOS ode
The first step is to install the FlexLM license manager and have it retrieve a host ID number. This turns out to be the MAC address of your eth0 port. Send that to LynuxWorks and they will send back a license file with limited-time licenses for both Luminosity and LynxOS. Before starting Luminosity, you must start the FlexLM daemon.
Actually, you can run Luminosity without a license, in which case it simply reverts to standard Eclipse 3.2. Figure 9.1 is the initial perspective for Luminosity. There are several additional icons in the tool bar, most of which represent items in the LynuxWorks menu. Note also a set of shortcuts for selecting perspectives.
Figure 9.1: Luminosity initial perspective.
In order to create and run embedded projects with Luminosity, you must register a cross-development platform (Figure 9.2). In this case it’s LynxOS for the x86.
Figure 9.2: Register a cross-development platform.
Luminosity offers several LynuxWorks-specific project types, as shown in Figure 9.3. A LynuxWorks C project gives you complete control over the Makefile. Luminosity generates a template Makefile that you are allowed to edit. By contrast, the Managed Make project generates a makefile that you’re not supposed to edit. The same distinction is true of Device Driver and Managed Device Driver projects. The Kernel project builds a LynxOS bootable kernel image.
Figure 9.3: New Project dialog and wizard selection.
Having selected and named a LynuxWorks C project, clicking Nexta couple of times brings up the Project Code Generator dialog, shown in Figure 9.4. Here you have the choice of creating an empty project, a Hello World project, or one of several sample projects that illustrate various operational features of LynxOS.
Figure 9.4: Code Generator dialog.
Clicking Finish creates the project and brings up the LW C/C++ perspective. This is very much like the standard C/C++ perspective with the addition of a LW C/C++ Projects view and a LW Make Targets view. The Projects view is similar to the standard Navigator view with a slightly different look. LW Make Targets seems to take the place of the standard Make Targets view.
9.2.3 Debugging With Luminosity
LynuxWorks doesn’t support any kind of simulator for LynxOS, so you need a real target running LynxOS in order to test code. That’s the bad news. The good news is that just about any old 486 box you have lying around as a doorstop should work as a target. There is a tool to build a bootable CD with a LynxOS kernel image.
Luminosity uses a proprietary method for managing remote targets. Select LynuxWorks→Set Remote Targetto bring up the Targets view, which is initially empty. Right-click in the Targets view and select New Target. This brings up the dialog of Figure 9.5. The Connection tab is fairly self-explanatory. Once you enter the parameters, the Validate button will attempt to resolve the target IP address and then check all connection types that Luminosity uses.
Читать дальше