summaryrefslogtreecommitdiff
path: root/docs/DAP/html/index.html
blob: 2cf16a60d6d16005b71907abd258554b16eccdf6 (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
<!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>Firmware for CoreSight Debug Access Port</title>
<title>CMSIS-DAP: Firmware for CoreSight Debug Access Port</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
   &#160;<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 class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Usage&#160;and&#160;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('index.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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</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="headertitle">
<div class="title">Firmware for CoreSight Debug Access Port </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p><b>CMSIS-DAP</b> is a specification and a implementation of a <b>Firmware</b> that supports access to the CoreSight <b>Debug Access Port</b> (DAP).<br/>
<br/>
 The various Arm Cortex processors provide <a href="http://www.arm.com/products/system-ip/coresight/index.php" target="_blank"><b>CoreSight Debug and Trace</b></a>. CMSIS-DAP supports target Devices that contain one or more Cortex processors. A Device provides a Debug Access Port (DAP) typically either with a 5-pin JTAG or with a 2-pin Serial Wired Debug (SWD) interface that connects to a Debug Unit. CMSIS-DAP is the interface firmware for a Debug Unit that connects the Debug Port to USB. Debuggers that execute on a host computer connect via USB and the Debug Unit to the Device which runs the application software.</p>
<div class="image">
<img src="CMSIS_DAP_INTERFACE.png" alt="CMSIS_DAP_INTERFACE.png"/>
<div class="caption">
CMSIS-DAP Overview</div></div>
 <h2>Configuration of CMSIS-DAP Firmware </h2>
<p>The CMSIS-DAP Firmware version 2 can be configured in two different USB interface modes:</p>
<ul>
<li>Version 1 configuration uses USB HID as interface to the host PC.</li>
<li>Version 2 configuration uses WinUSB as interface to the host PC and provides high-speed SWO trace streaming.</li>
</ul>
<h2>Benefits of CMSIS-DAP </h2>
<ul>
<li>Provides a standardized interface for debuggers. Interfaces to many standard debuggers is available.</li>
<li>Access to CoreSight registers of all Cortex processor architectures (Cortex-A/R/M).</li>
<li>Connects via 5-pin JTAG or 2-pin Serial Wire Debug (SWD).</li>
<li>Supports multi-core debugging.</li>
<li>Supports Serial Wire Output of Cortex-M devices (new in CMSIS-DAP Version 1.1.0).</li>
<li>Easy to deploy to Debug Units based on Cortex-M microcontrollers.</li>
<li>Debug Unit may be integrated on an evaluation board.</li>
<li>USB using HID (Human Interface Device) driver class that avoids driver installation on host PC.</li>
<li>Supports time-critical JTAG or SWD command execution (new in CMSIS-DAP Version 1.10).</li>
<li>Supports Test Domain Timer for time measurement using the debug unit (new in CMSIS-DAP Version 1.2.0)</li>
</ul>
<h1>CMSIS-DAP Firmware </h1>
<p>The CMSIS-DAP Firmware is provided as source code and is fully configurable to a new Debug Unit. A source code template and several reference implementations for popular Debug Units are provided. Refer to <a class="el" href="group__DAP__Config__gr.html">Firmware Configuration</a> for more information.</p>
<p>The CMSIS-DAP Software Stack is composed of the following components:</p>
<ul>
<li>CMSIS-DAP Firmware that interfaces to JTAG or SWD Debug pins using standard I/O pins of the Cortex-M device.</li>
<li>CMSIS-Driver USART that connects the UART of the Cortex-M device to the SWO output from the target.</li>
<li>USB Communication Stack that interfaces to the USB Port of the Host Computer using the HID or custom class.</li>
<li>The USB Device middleware may require CMSIS-RTOS and a CMSIS-Driver USB.</li>
</ul>
<div class="image">
<img src="CMSIS_DAP_SWStack.png" alt="CMSIS_DAP_SWStack.png"/>
<div class="caption">
CMSIS-DAP Software Stack</div></div>
<p> In the examples provided the MDK Version 5 USB Communication Stack has been used. However it is possible to use alternative USB stacks instead.</p>
<p>The CMSIS-DAP Firmware is provided in the following directory structure.</p>
<table class="doxtable">
<tr>
<th align="left">Directory </th><th align="left">Description  </th></tr>
<tr>
<td align="left">.\CMSIS\DAP\Firmware\Config </td><td align="left">CMSIS-DAP Firmware configuration </td></tr>
<tr>
<td align="left">.\CMSIS\DAP\Firmware\Examples </td><td align="left">CMSIS-DAP Firmware adapted to various Debug Units </td></tr>
<tr>
<td align="left">.\CMSIS\DAP\Firmware\Include </td><td align="left">CMSIS-DAP Firmware header file </td></tr>
<tr>
<td align="left">.\CMSIS\DAP\Firmware\Source </td><td align="left">CMSIS-DAP Firmware source code </td></tr>
<tr>
<td align="left">.\CMSIS\DAP\Firmware\Template </td><td align="left">Interface Templates for MDK Version 5 middleware </td></tr>
</table>
<h2>Debug Access </h2>
<dl class="section note"><dt>Note</dt><dd>Arm plans to provide the <b>RDDI-DAP Access DLL</b> that connects a debugger to the CMSIS-DAP Firmware. However as the DAP registers are standard in all Cortex devices, the debug access is well understood by the industry.</dd></dl>
<h2>Validation </h2>
<p>CMSIS-DAP compliant Debug Units must be validated using the scripts provided in <a class="el" href="group__DAP__Validate__gr.html">Validate Debug Unit</a>.</p>
<hr/>
 </div></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>