Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 38377555cafbcde32c08bef4425dc785202081d6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Target Communication Framework Services</title>
</head>

<body lang='EN-US'>
  
<h1>Target Communication Framework Services</h1>
 
<p>Copyright (c) 2007 Wind River Systems, Inc. Made available under the EPL v1.0
<p>Direct comments, questions to the <a href="mailto:dsdp-tm-dev@eclipse.org">dsdp-tm-dev@eclipse.org</a> mailing list
 
<h2>Table of Contents</h2>
<ul>
    <li><a href='#Overview'>Overview</a>
    <li><a href='#Syntax'>Syntax Rules Notation</a>
    <li><a href='#ErrorFormat'>Error Report Format</a>
    <li><a href='#Services'>Services</a>
</ul>

<h2><a name='Overview'>Overview</a></h2>

TCF communication model is based on the idea of services. A service is a group of related commands, events and semantics.
For example, <a href='TCF Service - Memory.html'>Memory Service</a> defines group of command and events for
reading and writing target memory.
Service definitions are not part of the <a href='TCF Specification.html'>framework specification</a>, and new services
are expected to be defined by developers of tools and target agents.
Defenitions of standard services are provided to achieve certain level of compatibility between tools and targets. 
 
<h2><a name='Syntax'>Syntax Rules Notation</a></h2>
 
<p>Format of the protocol messages is defined by syntax rules. Syntax is described
using a simple variant of Backus-Naur Form. In particular:</p>
 
<ul type='disc'>
    <li>Italic lower case words in a courier font, enclosed into angular brackets, are
    used to denote syntactic categories, for example:&nbsp;<b><i><font face="Courier New" size=2 color=#333399>&lt;token&gt;.
    </font></i></b>Category name can be followed by colon and a text, which explains semantics
    of the category, for example: <b><i><font face="Courier New" size=2 color=#333399>&lt;int:
    error code&gt;</font></i></b> has same meaning as <b><i><font face="Courier New" size=2 color=#333399>&lt;int&gt;</font></i></b>,
    but denotes that the integer number used to indicate an "error code".
 
    <li>A syntax rule consists of a category designation followed by one or more syntax
    definitions for the category. The category name and each definition are placed on
    separate lines, bullets are used to denote definitions, for example:
</ul>
 
<pre><b><font face="Courier New" size=2 color=#333399>
<i>&lt;chars&gt;</i>
    <font face=Wingdings></font> <i>&lt;char&gt;</i>
    <font face=Wingdings></font> <i>&lt;chars&gt; &lt;char&gt;</i>
</font></b></pre>

<ul type='disc'>
    <li>Spaces are added for readability only and they are not part of the syntax.
 
    <li>All text in the category definition, other than categories and spaces, is UTF-8
    based representation of a message bytes.
 
    <li>The symbol  designates a zero byte. 
</ul>

<h2><a name='ErrorFormat'>Error Report Format</a></h2>

<p>Most of TCF standard services use same format for error reporting:</p>
 
<pre><b><font face="Courier New" size=2 color=#333399>
<i>&lt;error report&gt;</i>
    <font face=Wingdings></font> <i>&lt;int: error code&gt;</i>  <i>&lt;error description&gt;</i>
</font></b></pre>

<p>Error code zero means success. Error description provides a short, localizable,
human readable explanation of error.</p>
 
<pre><b><font face="Courier New" size=2 color=#333399>
<i>&lt;error description&gt;</i>
    <font face=Wingdings></font> null
    <font face=Wingdings></font> <i>&lt;string&gt;</i>
    <font face=Wingdings></font> { "format" : <i>&lt;string&gt;</i> , "params" : [ <i>&lt;params&gt;</i> ] }
  
<i>&lt;params&gt;</i>
    <font face=Wingdings></font> <i>&lt;value&gt;</i>
    <font face=Wingdings></font> <i>&lt;params&gt;</i> , <i>&lt;value&gt;</i>
</font></b></pre>

<p>For <b><i><font face="Courier New" size=2 color=#333399>&lt;string&gt;</font></i></b>
and <b><i><font face="Courier New" size=2 color=#333399>&lt;value&gt;</font></i></b> encoding see
<a href='TCF Specification.html#JSON'>JSON - Preferred Marshaling</a>.
Error description format supports separation between constant and variable parts
of the message ("format" and "params"). This is done to support localization. See
Java class <b><font face="Courier New" size=2>java.text.MessageFormat</font></b> for details.</p>

<h2><a name='Services'>Services</h2>
<ul>
    <li><a href='TCF Service - Memory.html'>Memory Service</a>
    <li><a href='TCF Service - Processes.html'>Processes Service</a>
    <li><a href='TCF Service - Run Control.html'>Run Control Service</a>
    <li><a href='TCF Service - Registers.html'>Registers Service</a>
    <li><a href='TCF Service - Stack Trace.html'>Stack Trace Service</a>
    <li><a href='TCF Service - Breakpoints.html'>Breakpoints Service</a>
    <li><a href='TCF Service - File System.html'>File System Service</a>
    <li><a href='TCF Service - System Monitor.html'>System Monitor Service</a>
</ul>

</body>
</html>
 

Back to the top