blob: 353f24722eb75955745fe15d46e634a59ccbedfa [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
<title>Device Software Development Platform Charter</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="/proposals/eclipse-dsdp/dsdp/eclipse.css" rel="stylesheet" type="text/css">
<COL WIDTH=252*>
<P ALIGN=LEFT><FONT COLOR="#ffffff"><FONT FACE="Arial, Helvetica"><B>The Eclipse Device Software Development Platform Top-Level Project Charter</B></FONT></FONT></P>
<br><strong>Overview </strong><br>
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. <br>
This document describes the composition and organization of the project, roles and responsibilities of the participants, and development process for the project.
<p><strong>Mission </strong><br>
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. </p>
<p><strong>Scope </strong><br>
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. </p>
<p>Device software development typically involves three distinct phases. </p>
<li><b>Hardware Bring-up</b> - In this phase developers test prototype
hardware by verifying basic functionality of the target processor(s),
memory, and peripherals. They run hardware-oriented diagnostics and confirm
the ability to run simple software applications. They provide Platform
developers with a stable target. </li>
<li><b>Platform Software Development</b> - In this phase developers create the
software foundation that sits closest to the hardware, including device
drivers and board support packages. They configure the target operating
system and services providing connectivity, management, and security. They
provide Application developers with a stable platform. </li>
<li><b>Application Software Development</b> - In this phase developers create
the applications for the combination of hardware and software that comprise
the end product. These developers build, download, and debug applications
running on a target system.</li>
<p>The Device Software Development Platform (DSDP) will provide extensible
frameworks and exemplary tools to support activities in each of these
development phases. </p>
<p>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). </p>
<p>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. </p>
<p>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. </p>
</b>The Device Software Development Platform initially has two projects: Target
Management and Device Debugging. </p>
<p><i>Target Management <br>
</i>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. </p>
<p>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. </p>
<p><i>Device Debugging <br>
</i>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. </p>
<p>The list of projects under the Device Software Development Platform PMC will
be maintained as part of the <a href="/proposals/eclipse-dsdp/index.html">Device Software Development Platform </a> project
home. </p>
<p><b>Other Terms <br>
</b>This Charter inherits all terms not otherwise defined herein from the &quot;<a href="/org/processes/Eclipse_Standard_TopLevel_Charter_v1.0.html">Eclipse
Standard Charter v1.0</a>&quot;. This includes, but is not limited to, sections
on the Program Management Committee, Roles, Project Organization, The
Development Process, and Licensing.</p>