Apr. 14, 2008
The open-source Eclipse Foundation announced four initiatives that address embedded and mobile device development. The new Device Software Development Project (DSDP) initiatives include a framework for communications among debugging and monitoring devices, and a Texas Instruments (TI)-sponsored project devoted to creating and configuring C/C++ tools for "highly constrained" devices.
In brief, the four new initiatives include:
- Real-time System Components (RTSC) -- This TI-led project will create a programming model and Eclipse tools for developing and configuring C and C++ applications for highly constrained devices such as digital signal processors (DSPs) and microcontrollers (more info below).
- Target Communications Framework (TCF) -- The TCF is a lightweight extensible communications protocol for communications between devices and development tools, including debugging, monitoring, analysis, and test tools (more below).
- Device Debugging (DD) -- Release 1.0 will be made available as part of the Ganymede release in June, says the Eclipse Foundation. The project defines an extensible Debugger Services Framework (DSF) for enabling commercial tool vendors to build debugger integrations in Eclipse. The 1.0 release adds a reference implementation that supports the GDB debug engine.
Wind River's Doug Gaff, who leads the DSDP's project management committee, observed, "We needed a customized debugger implementation to deal with multicore, hardware-software agent connections, and so on. Wind River has adopted it commercially already, and it's starting to get community pickup as well." - Target Management (TM) with support for Windows Embedded (formerly Windows CE) -- The ETM project will add support for Windows Embedded (formerly Windows CE, enabling developers to remotely edit, update, and delete files directly on remote devices or development targets. Gaff explained that the project came about because, "We had a contributor who has to use Windows CE in a remote system, and needed the capability to manipulate it."
TM for CE aims to let developers mount, browse, edit, and sync remote filesystems as if they were local. It uses Windows's filesystem interface, and so is filesystem agnostic.
Gaff proudly notes, "Microsoft's tools only allow read-only access [to remote filesystems], so you have to manually re-upload during edit, compile, debug. We have something that's better, and that's kind of exciting."
Gaff noted that TM does not yet support remotely debugging CE systems, however. For that, developers still have to use Cygwin or the WinCW emulator. However, Microsoft has published its debug services API, he adds, so there's no technical obstacle to adding remote debug support. "You can download the APIs from Microsoft. Someone just needs to do the work."
Asked whether Microsoft might be interested in contributing that work, Gaff replied, "Actually, my preference would be for Microsoft to show up to the Eclipse Project."
He quickly added, "That's a bit tongue-in-cheek. But Microsoft is taking steps in the right direction. Sam Ramji, who directs the Open Source Lab at Microsoft, spoke at EclipseCon. And they are involved in SWT (standard widget set). So, they are engaging directly with Eclipse now on a couple of areas where there's clear opportunity with open source."
The four highlighted projects are all part of the Eclipse Device Software Development Platform (DSDP) Project. Founded in 2005, the DSDP was spearheaded by Wind River, and now boasts seven sub-projects, with an eighth EDA-related project also proposed. Three projects are led by Wind River employees. One, the Eclipse C/C++ Development Tooling (CDT) Project, has been downloaded over a million times in the last year, the Foundation claims.
The sub-projects are aimed at creating plugins for the modular, open-source, Eclipse IDE (integrated development environment). The IDE has been widely adopted by embedded tools vendors, in part because it runs on Linux, Windows, Solaris, and Macintosh development hosts, saving vendors the trouble of maintaining their tools on multiple platforms.
The next milestone for the Eclipse Foundation is the yearly coordinated code release in June. Based on version 3.4 of the Eclipse Framework, and code-named "Ganymede," the coordinated release is a kind of snapshot that allows tool and application vendors to evaluate available project software as a single, more or less pre-integrated collection, albeit one mixing mature and pre-1.0 code.
The previous major release of DSDP project software took place last June, with the 21-project Europa release, which comprised 17 million lines of code. Previous to that, the DSDP was represented by a more modest release in November 2006, when 1.0 versions of the Target Management and Embedded Rich Client Platform plugins launched, alongside a release of the Mobile Tools for Java plugin.
The new projects: RTSC and TCF
The RTSC project is intended to generate a new Eclipse development model and tools for C/C++ embedded real-time software components for DSPs and 16-bit microcontrollers. The project is led by Dave Russo, TI's CTO of target software infrastructure.
Russo explains, "In 25 words or less, we're defining a C-based component model, and providing a set of supporting tools for developing, delivering, and deploying real-time software for a diverse set of platforms, from 16-bit MCUs like the MSP430 and Intel 8051 to traditional DSPs."
Russo adds, "On these resource constrained processors, most people still write in C. But we'd like to have the benefits of 'component-ization' that the Java community enjoys. Write-once-deploy in many places, for example, where one group defines an interface, another implements it, and another uses it. It's aimed at allowing C to scale the way Java has been able to scale -- like with the Eclipse project, for example."
In addition to contributing RTSC to the Eclipse project, TI has actually adopted the Eclipse framework for the newest version 4 releases of Code Composer Studio, Russo notes. He adds that RTSC is based on extremely mature technology that has been used by TI internally for many years. "We started developing it in 2000, and have fielded a number of embedded products that use it. For example, DSP BIOS, that's an RTSC component."
TI hopes RTSC will see adoption by other tools vendors, and component makers such as codec suppliers, so as to start a "feedback cycle." And, he adds, "Now that it's open in Eclipse, we've had some discussion with Freescale. We're also hoping for adoption by tools vendors and components vendors."
RTSC will require little or no pre-deployed infrastructure, as would a Java runtime, says the group. Aside from a component's C/C++ runtime, all that is needed for each component is JavaScript code that runs in both the component's development environment during application assembly, as well as in rich client platforms for execution monitoring.
Eclipse-based tools will specify components using an ANTLR-based IDL, then implement the components using both C/C++ and JavaScript. The JavaScript is part of a component that runs on top of Rhino, enabling the component to actively participate in all stages of its lifecycle, from assembly to real-time monitoring.
RTSC components can leverage "traditional" Java-based component environments as well as "satisfying the resource constraints of its embedded C/C++ element running within the embedded device," says the group. This "dual existence," spanning assembly and rich-client implementations, should enable integration with the following projects:
- CDT
- TPTP (Test Performance and Tools Platform Project)
- SODA (Service Oriented Device Architecture), for the Device Kit portion of the project
- COSMOS (Community-driven Systems Management in Open Source) monitoring and data collection components
- EMF (Eclipse Modeling Framework), enabling UML tools to specify components that generate resource-efficient RTSC components
Target Communications Framework (TCF)
The lofty goal of the TCF project, which is led by Wind River, Freescale, and Power.org, is to be the "Eclipse 'Explorer of the Network Neighborhood,'" offering "pluggable information providers under a single, consistent UI," says the group. The idea is to enable developers to use the lightweight protocol to interactively discover, drill down, and analyze remote systems.
The protocol is designed to work with a variety of debugging, monitoring, analysis, and test tools, including target agents, JTAG probes, and target simulators. The intent is to streamline testing and development of heterogeneous, multiple-vendor device configurations such as are commonly found with multicore and system-on-a chip (SoC) processors.
The TCF toolkit includes a core Remote System Explorer (RSE) framework that is said to integrate heterogeneous remote resources via pluggable subsystems. The toolkit also includes a "Remote Files" subsystem that enables transparent operation on remote computers, as well as a shell and a processes subsystem. The toolkit also provides a lightweight terminal and a "Network Discovery" framework.
Stated Steve Furr, Freescale Semiconductor, "As the embedded industry moves to ever more complex SoC's, including the extensive use of multiple symmetric cores, getting all of the various tools required to do effective development connected to the appropriate data collection mechanisms is the next big issue that needs to be addressed. TCF is a great way for the community to work together to solve this problem."
All four projects will be demonstrated by the Foundation at the Embedded Systems Conference in San Jose this week.