Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'docs/TCF Project.html')
-rw-r--r--docs/TCF Project.html141
1 files changed, 141 insertions, 0 deletions
diff --git a/docs/TCF Project.html b/docs/TCF Project.html
new file mode 100644
index 000000000..0071e96fc
--- /dev/null
+++ b/docs/TCF Project.html
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
+<HTML lang=en-us>
+<HEAD>
+<TITLE>Target Communication Framework</TITLE>
+</HEAD>
+
+<BODY>
+
+<H1>Target Communication Framework project</H1>
+
+<P>
+<H2><A name=Index></A>Index</H2>
+
+<UL>
+ <LI><A href="#Summary">Summary</A>
+ <LI><A href="#Goals">Goals</A>
+ <LI><A href="#Features">Features</A>
+ <LI><A href="#Agent">Reference implementation of a target agent</A>
+ <LI><A href="#Debugger">Prototype of a debugger based on Eclipse Debug Framework and TCF</A>
+ <LI><A href="#RSE">Prototype of a system monitor and remote file access based on Remote System Explorer and TCF</A>
+</UL>
+
+<P>
+<H2><A name=Summary></A>Summary </H2>
+
+<P>Today almost every device software development tool on the market has its own
+method of communication with target system. Communication methods often conflict
+with each other, require individual setup, configuration and maintenance, impose
+all kinds of unnecessary limitations. Target Communication Framework is designed
+to establish common ground in the area of communication protocols between
+development tools and embedded devices.
+
+<P>
+<H2><A name=Goals></A>Goals </H2>
+<P>
+<UL>
+ <LI>Universal, extensible, simple, lightweight, vendor agnostic framework for
+ tools and targets to communicate for purpose of debugging, profiling, code
+ patching and other device software development needs.
+ <LI>Single configuration per target (not per tool per target as today in most
+ cases), or no configuration when possible.
+ <LI>Small overhead and footprint on target side. </LI></UL>
+<P>
+
+<H2><A name=Features></A>Features </H2>
+<P><A href="TCF Specification.html">Target Communication Framework Specification</A> is a document
+describing design goals, requirements and format of TCF communication protocol,
+as well as framework API and software design considerations.
+<P>TCF communication model is based on the idea of services. A service is a group
+of related commands, events and semantics. A service can be discovered,
+added or removed as a group at communication endpoint. Service definitions are
+not part of the framework specification, and new services are expected to be
+defined by developers of tools and target agents. However, standardization of
+common services is needed to achieve certain level of compatibility of
+tools/targets, see <A href="TCF Services.html">TCF Services Specification</A>
+as starting point of this work.
+
+<H2><A name=Agent></A>Reference implementation of a target agent</H2>
+
+<P>Current reference implementation of TCF target agents is fully functional,
+can run on Windows, Linux and VxWorks, and provides the following services:
+<UL>
+ <LI>Run Control - provides threads and processes run control functionality
+ sufficient for debugging of user space programs. On Linux it is implemented
+ using PTRACE, on VxWorks is uses vxdbgLib, on Windows it is not currently supported.
+
+ <LI>Breakpoints - provides basic breakpoints support. On Linux it is
+ implemented using PTRACE, on VxWorks is uses vxdbgLib,
+ on Windows it is not currently supported.
+
+ <LI>Registers - allows inspection and modification of CPU registers.
+ Implemented for Linux and VxWorks, on Windows it is not currently supported.
+
+ <LI>Stack Trace - execution thread stack back-tracing.
+ Implemented for Linux and VxWorks, on Windows it is not currently supported.
+
+ <LI>Memory - program memory access.
+ Implemented for Linux and VxWorks, on Windows it is not currently supported.
+
+ <LI>Processes - provides access to the target OS's process
+ information, allows starting new and terminating existing processes,
+ and allows attaching and detaching processes for debugging.
+ Implemented for Linux and VxWorks, on Windows it is not currently supported.
+
+ <LI>Line Numbers - provides mapping between locations in the source files
+ and corresponding machine instruction addresses in the executable object.
+ Implemented for Linux only.
+
+ <LI>Sys Monitor - provides list of processes, process attributes and
+ CPU/memory utilization data. On Linux it is implemented using /proc file
+ system, on Windows and VxWorks it is not currently supported.
+
+ <LI>File System - provides access to remote file system.
+
+ <LI>Diagnostics - allows testing of communication channel and agent
+ functionality.
+</UL>
+
+<P>The agent code is designed to be easily extensible by adding new command
+handler implementations. The code separates machine dependences, common TCF
+logic and service implementations, which allows easy porting to a new OS or a
+target and reconfiguring of the agent for specific needs. The code is written in
+ANSI C. See <A href="TCF Linux Agent Prototype.html">TCF Linux Agent Prototype</A>
+for more details about the agent code.
+
+<H2><A name=Debugger></A>Prototype of a debugger based on Eclipse Debug Framework and TCF</H2>
+
+<P>The prototype code connects Eclipse Debug Framework and Target Communication
+Framework. It allows to launch Eclipse debug session by connecting to a target
+running TCF agent, and then perform basic debugging tasks, like resuming,
+suspending, single-stepping, setting/removing breakpoints, etc. Since current
+reference implementation of target agent does not support line number
+information access, source level debugging is not supported.
+<P>The prototype launch configuration autodetects TCF targets on a local network
+and allows a user to connect to a target by simply selecting it from a list
+without a need for any further configuration or setup. TCF launch configuration
+dialog also offers controls to run a built-in diagnostics on a selecting target,
+which perform stress testing of communication channel, agent and target itself:
+<P><IMG alt="TCF launch configuration dialog" src="TCF_Launch_Dialog.jpg">
+
+<P>The prototype makes use of flexible debug model element hierarchy support,
+which is available in Eclipse debug framework since Eclipse 3.2. The flexible
+hierarchy allows debugger views to be "data driven" or, in other words, dynamically
+adapt to a given targets capabilities and structure, without a need to modify
+debugger code to support a new target.
+
+<H2><A name=RSE></A>Prototype of a system monitor and remote file access based on Remote System Explorer and TCF</H2>
+
+<P>Remote System Explorer is an Eclipse based component that allows users to
+create connections to remote machines and explore their file systems, see list
+of processes and access some other resources, like remote shells. Remote System
+Explorer has been designed as a flexible, extensible framework to which Eclipse
+plug-in developers can contribute their own system definitions, actions, etc.
+<P>The prototype enables use of Processes and Files subsystems of Remote System
+Explorer over TCF. It also extends Processes subsystem to include CPU
+utilization data and some other process attributes in RSE views:
+<P><IMG alt="Remote System Explorer: Files subsystem over TCF" src="TCF_RSE_Files.jpg">
+<P><IMG alt="Remote System Explorer: Processes subsystem over TCF" src="TCF_RSE_Processes.jpg">
+
+</BODY>
+</HTML> \ No newline at end of file

Back to the top