TCF

From eLinux.org
Revision as of 20:17, 22 February 2013 by Adushistova (Talk | contribs)

Jump to: navigation, search

Definition

TCF (Target Communications Framework) is a universal, extensible, simple, lightweight, vendor agnostic framework for tools and targets to communicate for purpose of debugging, profiling, code patching and performing other device software development tasks. It requires just a single configuration per target (not per tool per target as today in most cases), or no configuration at all when possible. It is designed to have small overhead and footprint on target side, operates over the transport-agnostic channel abstraction and supports auto-discovery of targets and services.

Licensing

All TCF code is licensed under Eclipse Public License (EPL). C agent code is also licensed under Eclipse Distribution License (EDL) (dual-licensing).

Project contents

1.0 version has the following:

  • A plain-C implementation of a lightweight extendable target agent
  • Java client API (usable standalone or on top of Eclipse)
  • Python and Lua client APIs
  • A complete debugger UI implementation in Eclipse

Tcfdebug-top-sources.png

  • A CDT integration for debugger launching
  • A Target Management / Remote Systems Explorer integration for file system and process browsing
  • Target Explorer – A lightweight UI for remote file system and process browsing, terminal access and debugger launch

TE-tcfTerminal1.png

  • Documentation and usage examples

Currently implemented services

  • Locator Service
  • Memory Service
  • Processes Service
  • Run Control Service
  • Registers Service
  • Stack Trace Service
  • Breakpoints Service
  • Memory Map Service
  • Path Map Service
  • File System Service
  • System Monitor Service
  • Terminals Service
  • Streams Service
  • Disassembly Service
  • Context Query Service

Note, that the debugger services are arch and OS specific, the open source implementation is x86 only. Without these services, agent can be cross compiled for other architectures.

Currently implemented transport channels

The only channel implementation available at the moment is TCP/IP, and the autodiscovery implementation is based on UDP broadcasting.

Useful links

FAQ

Documentation

TCF Agent Porting Guide