Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: for the plan.

Jump to: navigation, search


What is the Target Communication Framework (TCF)?

The Target Communication Framework (TCF) is a proposed addition to the Eclipse Target Management Project and/or the Eclipse Communication Framework Project (ECF). Until accepted by the Eclipse Legal IP Clearance process, TCF as well as discussions regarding it are available from bugzilla on bug 210751 under the Eclipse Public License (EPL).

TCF is a vendor-neutral, lightweight, extensible protocol mainly for communicating with embedded systems (targets). The protocol is transport-agnostic, so it does not depend on any specific transport such as TCP/IP, Serial Line, SSH tunnel or other. It uses JSON as preferred data marshalling language, supports auto-discovery and transparent forwarding of services on top of it. The initial contribution also includes a plain-C reference implementation of a target agent with small footprint, as well as a Java client API, documentation and usage examples.

For more details, see the PPT presentation on TCF Concepts and Vision (PPT, 500K).

What is included in the TCF contribution?

In addition to the core Protocol and associated documentation, the initial contribution also consists of:

  • Definition of some core services:
    • Locator (for addressing)
    • Remote File Access (File System Service)
    • Remote Process List (System Monitor Service)
    • Several Debug Services (Memory, Run Control, Registers, Stacktrace, Breakpoints).
  • A reference agent implementation in plain C, tested on Linux, Windows and VxWorks
  • A reference client implementation in Java
  • Example tools using the services:
    • Remote System Explorer (RSE) file service implementation, for remote file browsing
    • RSE process service implementation, for remote process browsing
    • Eclipse Debug Platform integration for debug demo
    • DSDP-DD integration of core DD services.

Where can I get TCF, and how do I get started?

Get the contribution archive from bug 210751 and look at the index.html documentation and/or the TCF Getting Started document.

How is TCF licensed?

The initial TCF contribution is being made under the Eclipse Public License (EPL) v1.0. This license is valid even before the Eclipse Foundation finished their IP review, so you can start using it right away.

What other components does TCF depend on?

The core TCF protocol is just a specification, so it does not depend on anything -- the protocol can be implemented in any language within any environment.

The reference agent can currently be built on Linux, Windows and VxWorks and uses POSIX services only. Depending on what Services the agent should implement, an ELF reader (libelf) is required to perform debug line number translation. Currently, this is done on Linux only.

The Java core protocol client also does not have any particular dependencies.

The RSE, Platform Debug, and DSDP-DD example tools depend on the RSE, Platform Debug and DSDP-DD components respectively.

Where can I ask questions about TCF?

Write an E-Mail to the mailing list.

How does TCF compare to ECF?

This is currently being investigated.

How can I contribute to this FAQ?

This is a collaborative FAQ. Feel free to correct anything you think may be wrong, not clearly answered, or has a Typo. Also feel free to add more questions and answers to this document.

The idea is that through collaborative editing, the document will eventually evolve. We welcome all contributions, anybody is invited to edit this Wiki page. Don't be shy about breaking anything - the page is being monitored and obvious mis-edits will be cleared by all the knowledgeable people monitoring the page.

To monitor the page yourself, click on the "Watch" link in the left-hand navigation pane.

Back to the top