The Eclipse Device Software Development Platform Top-Level Project Charter


Overview
The Eclipse Device Software Development Platform Project is an open source collaborative software development project dedicated to providing an extensible, standards-based platform to address a broad range of needs in the device software development space using the Eclipse platform.

This document describes the composition and organization of the project, roles and responsibilities of the participants, and development process for the project.

Mission
The mission of the Device Software Development Platform is to create an open, extensible, scalable, and standards-based development platform to address the needs of the device software market by enabling developers and vendors to create differentiated, specialized, and interoperable solutions to help customers and users of Eclipse-based products develop device software faster, better, and at lower cost.

Scope
Device software is software that runs on an embedded operating system inside a larger physical product. Device software applications are typically cross-compiled and deployed on a custom hardware target that is based on a different configuration than the development host. These custom targets are often constrained by processor type, processor speed, available memory, and hard real-time responsiveness. The embedded operating system is usually optimized for these constraints and is also designed to deal with on-chip peripherals such as communication modules, high-resolution timers, memory controllers, etc.

Device software development typically involves three distinct phases.

The Device Software Development Platform (DSDP) will provide extensible frameworks and exemplary tools to support activities in each of these development phases.

The sweet-spot for device software applications are medical devices (blood-test machines, EKG's), network equipment (routers, switches), consumer electronics (digital cameras, mobile phones), automotive applications (car infotainment, engine controllers), military applications (cruise missiles, combat systems) and industrial devices (manufacturing robots, process instrumentation).

The needs and requirements for the Application Software Development phase above are an extension of the requirements for Enterprise software development. We envision that the Device Software Development Platform will provide a home for embedded extensions across a wide range of existing and future Eclipse projects. Projects like CDT, JDT, and TPTP provide general-purpose functionality that appeals to a large audience, whereas DSDP will create complementary extensions, e.g. Target Management, to increase the usefulness of these projects for embedded development.

The DSDP project will cooperate and assist other Eclipse projects that wish to become more applicable for embedded development. For example, the DSDP project relies on the build system provided by CDT and will help drive requirements and will contribute code to support multiple tool chains for different processor variants.

Projects
The Device Software Development Platform initially has two projects: Target Management and Device Debugging.

Target Management
In device software development, the end product can contain multiple targets. Each target can contain multiple processors, and each processor can contain multiple cores. The application software running on a core can contain multiple processes and threads. Each of the entities can often be independently controlled. Targets can be located in a developer's office, in a board lab, or even deployed in the field. A single target may have multiple control channels, such as local serial or JTAG connections, or remote socket connections.

The goal of the Target Management project is to create data models and frameworks to configure and manage these systems, their connections, and their services. Target Management must support downloading software and data, launching single or multiple configurations, starting and stopping cores, debugging processes and threads, querying target information, etc.

Device Debugging
The goal of the Device Debugging project is to create new frameworks and extensions to the existing platform debug framework to support the three device software development phases described above. Today's platform debug API's and views are geared towards developing a single application on a fast workstation with a simple debug model (processor, thread, stack frame). Since the debug scenarios in device software are more complex and varied, the Device Debugging project will build enhanced debug models, API's, and views to provide greater visibility into and control over device software targets. These enhancements will be powerful enough to support debugging engines for conventional processors, DSP's, and network and I/O processors.

The list of projects under the Device Software Development Platform PMC will be maintained as part of the Device Software Development Platform project home.

Other Terms
This Charter inherits all terms not otherwise defined herein from the "Eclipse Standard Charter v1.0". This includes, but is not limited to, sections on the Program Management Committee, Roles, Project Organization, The Development Process, and Licensing.