blob: a7ee87269ccd425d4d9aeb26e6db91a35a4103f5 (
plain)
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>CMSIS-DAP Commands</title>
<title>CMSIS-DAP: CMSIS-DAP Commands</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="cmsis.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="printComponentTabs.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 46px;">
<td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">CMSIS-DAP
 <span id="projectnumber">Version 2.0.0</span>
</div>
<div id="projectbrief">Interface Firmware for CoreSight Debug Access Port</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<div id="CMSISnav" class="tabs1">
<ul class="tablist">
<script type="text/javascript">
<!--
writeComponentTabs.call(this);
//-->
</script>
</ul>
</div>
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="pages.html"><span>Usage and Description</span></a></li>
<li><a href="modules.html"><span>Reference</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__DAP__Commands__gr.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#groups">Content</a> </div>
<div class="headertitle">
<div class="title">CMSIS-DAP Commands</div> </div>
</div><!--header-->
<div class="contents">
<p>Commands between Debug Unit and host computer.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
Content</h2></td></tr>
<tr class="memitem:group__DAP__genCommands__gr"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DAP__genCommands__gr.html">General Commands</a></td></tr>
<tr class="memdesc:group__DAP__genCommands__gr"><td class="mdescLeft"> </td><td class="mdescRight">Information and Control commands for the CMSIS-DAP Debug Unit. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:group__DAP__swj__gr"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DAP__swj__gr.html">Common SWD/JTAG Commands</a></td></tr>
<tr class="memdesc:group__DAP__swj__gr"><td class="mdescLeft"> </td><td class="mdescRight">Set SWD/JTAG clock and control/monitor SWD/JTAG I/O pins. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:group__DAP__swd__gr"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DAP__swd__gr.html">SWD Commands</a></td></tr>
<tr class="memdesc:group__DAP__swd__gr"><td class="mdescLeft"> </td><td class="mdescRight">Configure the parameters for SWD mode. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:group__DAP__swo__gr"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DAP__swo__gr.html">SWO Commands</a></td></tr>
<tr class="memdesc:group__DAP__swo__gr"><td class="mdescLeft"> </td><td class="mdescRight">Configure the parameters for SWO mode. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:group__DAP__jtag__gr"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DAP__jtag__gr.html">JTAG Commands</a></td></tr>
<tr class="memdesc:group__DAP__jtag__gr"><td class="mdescLeft"> </td><td class="mdescRight">Detect and configure the JTAG device chain. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:group__DAP__transfer__gr"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DAP__transfer__gr.html">Transfer Commands</a></td></tr>
<tr class="memdesc:group__DAP__transfer__gr"><td class="mdescLeft"> </td><td class="mdescRight">Read and Writes to CoreSight registers. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:group__DAP__atomic__gr"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DAP__atomic__gr.html">Atomic Commands</a></td></tr>
<tr class="memdesc:group__DAP__atomic__gr"><td class="mdescLeft"> </td><td class="mdescRight">Execute atomic commands. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:group__DAP__Response__Status"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DAP__Response__Status.html">Response Status</a></td></tr>
<tr class="memdesc:group__DAP__Response__Status"><td class="mdescLeft"> </td><td class="mdescRight">Status Information in Response Data. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
<p>Commands between Debug Unit and host computer. </p>
<p>This section explains each command that is exchanged between the Debug Unit and the host computer. Every Command starts with a Command-ID and optional data. Depending on the Command, the CMSIS-DAP firmware replies with a Response that repeats the Command-ID and delivers additional data.</p>
<p>Command and Response data have a package size limitation that is defined with <a class="el" href="group__DAP__Config__Debug__gr.html#gaa28bb1da2661291634c4a8fb3e227404">DAP_PACKET_SIZE</a>. This configuration setting can be obtained with the command <a class="el" href="group__DAP__Info.html">DAP_Info</a> and is used to optimize the performance for Full-Speed or High-Speed USB. The debugger must ensure that each data package fits within the limitations of the configured <a class="el" href="group__DAP__Config__Debug__gr.html#gaa28bb1da2661291634c4a8fb3e227404">DAP_PACKET_SIZE</a>.</p>
<dl class="section note"><dt>Note</dt><dd>Commands that are not implemented reply with 0xFF instead of repeating the command byte.</dd></dl>
<h2>Conventions and Command Structure </h2>
<p>The following conventions describe the command semantic used in the following documentation:</p>
<table class="doxtable">
<tr>
<th>Symbol </th><th>Description </th></tr>
<tr>
<td>> </td><td>Prefix indicating the direction: Command from host to Debug Unit. </td></tr>
<tr>
<td>< </td><td>Prefix indicating the direction: Response from Debug Unit to host. </td></tr>
<tr>
<td>BYTE </td><td>8-bit value. </td></tr>
<tr>
<td>SHORT </td><td>16-bit value (low byte first). </td></tr>
<tr>
<td>WORD </td><td>32-bit value (low byte first). </td></tr>
<tr>
<td>LWORD </td><td>64-bit value (low byte first). </td></tr>
<tr>
<td>FLOAT </td><td>32-bit single precision floating point value (LSB first). </td></tr>
<tr>
<td>0x01 </td><td>Fixed HEX value in C notation. Used for example to identify a command. </td></tr>
<tr>
<td>Reserved </td><td>The field above is reserved for future extension. </td></tr>
<tr>
<td>**** </td><td>The field above has exactly one occurrence. </td></tr>
<tr>
<td>++++ </td><td>The field above has a variable length. </td></tr>
<tr>
<td>////// </td><td>The field above is repeated and may appear 0..n times. </td></tr>
</table>
<p>The commands are described in a structure consisting of three lines.</p>
<ul>
<li>The first line indicates the field type.</li>
<li>The second line indicates the communication direction and the command structure.</li>
<li>The third line indicates the occurrence of the field.</li>
</ul>
<p><b>Examples:</b> </p>
<div class="fragment"><div class="line">| BYTE | SHORT *| WORD ***|</div>
<div class="line">> 0x99 | RecLen | Data |</div>
<div class="line">|******|********|+++++++++| </div>
</div><!-- fragment --><p>The Command with the Command-ID <em>0x99</em> is sent from the host computer to the Debug Unit. The value of <em>RecLen</em> indicates the number of WORDS that follow with <em>Data</em>. <em>Data</em> is repeated several times depending on the value of <em>RecLen</em>.</p>
<p>Depending on the Command the Debug Unit may send a <b>Response</b>. </p>
<div class="fragment"><div class="line">| BYTE ***| WORD***********|</div>
<div class="line">< 0 | Register Value |</div>
<div class="line">|*Reserved|****************|</div>
</div><!-- fragment --> </div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Wed Jul 10 2019 15:20:28 for CMSIS-DAP Version 2.0.0 by Arm Ltd. All rights reserved.
<!--
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
-->
</li>
</ul>
</div>
</body>
</html>
|