avrdude/atmel-docs/EDBG/protocoldocs/ch04s02.html

228 lines
33 KiB
HTML
Raw Permalink Normal View History

<!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 content="IE=edge" http-equiv="X-UA-Compatible" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Framing - - Atmel EDBG-based Tools Protocols</title><meta content="DocBook XSL Stylesheets V1.78.1" name="generator" /><link rel="home" href="index.html" title="Atmel EDBG-based Tools Protocols" /><link rel="up" href="protocoldocs.avrprotocol.Overview.html" title="AVR communication protocol" /><link rel="prev" href="ch04s01.html" title="Overview" /><link rel="next" href="ch04s03.html" title="Protocol sub-set overview" /><meta content="Framing" name="Section-title" /><script type="text/javascript">
//The id for tree cookie
var treeCookieId = "treeview-10619";
var language = "en";
var w = new Object();
//Localization
txt_filesfound = 'Results';
txt_enter_at_least_1_char = "You must enter at least one character.";
txt_browser_not_supported = "JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.";
txt_please_wait = "Please wait. Search in progress...";
txt_results_for = "Results for: ";
</script><link type="image/x-icon" href="../favicon.ico" rel="shortcut icon" /><link href="../common/css/positioning.css" type="text/css" rel="stylesheet" /><link href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css" type="text/css" rel="stylesheet" /><link href="../common/jquery/treeview/jquery.treeview.css" type="text/css" rel="stylesheet" /><style type="text/css">
#noscript{
font-weight:bold;
background-color:#55AA55;
font-weight:bold;
height:25spx;
z-index:3000;
top:0px;
width:100%;
position:relative;
border-bottom:solid 5px black;
text-align:center;
color:white;
}
input{
margin-bottom:5px;
margin-top:2px;
}
.folder{
display:block;
height:22px;
padding-left:20px;
background:transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
}
.dochome{
display:block;
margin:10px 0 0 0;
padding-left:20px;
background:transparent url(../common/images/Library.png) 0 0px no-repeat;
}
.root{
display:block;
margin:10px 0 0 2px;
padding-left:20px;
background:transparent url(../common/images/Book_Open.png) 0 0px no-repeat;
}
.dochome a,
.root a {
text-decoration:none;
font-size:12px;
color:#517291;
}
span.contentsTab{
padding-left:20px;
background:url(../common/images/toc-icon.png) no-repeat 0 center;
}
span.searchTab{
padding-left:20px;
background:url(../common/images/search-icon.png) no-repeat 0 center;
}
/* Overide jquery treeview's defaults for ul. */
.treeview ul{
background-color:transparent;
margin-top:4px;
}
#webhelp-currentid{
background-color:#D8D8D8 !important;
}
.treeview .hover{
color:black;
}
.filetree li span a{
text-decoration:none;
font-size:12px;
color:#517291;
}
.filetree span.file {
background: url(../common/images/Document_Text.png) 0 0 no-repeat;
}
/* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
.ui-widget-content{
border:0px;
background:none;
color:none;
}
.ui-widget-header{
color:#e9e8e9;
border-left:1px solid #e5e5e5;
border-right:1px solid #e5e5e5;
border-bottom:1px solid #bbc4c5;
border-top:4px solid #e5e5e5;
border:medium none;
background:#F4F4F4; /* old browsers */
background:-moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #F4F4F4), color-stop(100%, #E6E4E5)); /* webkit */
font-weight:none;
}
.ui-widget-header a{
color:none;
}
.ui-state-default,
.ui-widget-content .ui-state-default,
.ui-widget-header .ui-state-default{
border:none;
background:none;
font-weight:none;
color:none;
}
.ui-state-default a,
.ui-state-default a:link,
.ui-state-default a:visited{
color:black;
text-decoration:none;
}
.ui-state-hover,
.ui-widget-content .ui-state-hover,
.ui-widget-header .ui-state-hover,
.ui-state-focus,
.ui-widget-content .ui-state-focus,
.ui-widget-header .ui-state-focus{
border:none;
background:none;
font-weight:none;
color:none;
}
.ui-state-active,
.ui-widget-content .ui-state-active,
.ui-widget-header .ui-state-active{
border:none;
background:none;
font-weight:none;
color:none;
}
.ui-state-active a,
.ui-state-active a:link,
.ui-state-active a:visited{
color:black;
text-decoration:none;
background:#C6C6C6; /* old browsers */
background:-moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #C6C6C6), color-stop(100%, #D8D8D8)); /* webkit */
-webkit-border-radius:15px;
-moz-border-radius:10px;
border:1px solid #f1f1f1;
}
.ui-corner-all{
border-radius:0 0 0 0;
}
.ui-tabs{
padding:.2em;
}
.ui-tabs .ui-tabs-panel {
padding-top: 6px;
}
.ui-tabs .ui-tabs-nav li{
top:0px;
margin:-2px 0 1px;
text-transform:uppercase;
font-size:10.5px;
}
.ui-tabs .ui-tabs-nav li a{
padding:.25em 2em .25em 1em;
margin:.5em;
text-shadow:0 1px 0 rgba(255, 255, 255, .5);
}
/**
* Basic Layout Theme
*
* This theme uses the default layout class-names for all classes
* Add any 'custom class-names', from options: paneClass, resizerClass, togglerClass
*/
.ui-layout-resizer{ /* all 'resizer-bars' */
background:#DDD;
top:100px
}
.ui-layout-toggler{ /* all 'toggler-buttons' */
background:#AAA;
}
</style><!--[if IE]>
<link rel="stylesheet" type="text/css" href="../common/css/ie.css"/>
<![endif]--><script src="../common/browserDetect.js" type="text/javascript"><!----></script><script src="../common/jquery/jquery-1.7.2.min.js" type="text/javascript"><!----></script><script src="../common/jquery/jquery.ui.all.js" type="text/javascript"><!----></script><script src="../common/jquery/jquery.cookie.js" type="text/javascript"><!----></script><script src="../common/jquery/treeview/jquery.treeview.min.js" type="text/javascript"><!----></script><script src="../common/jquery/layout/jquery.layout.js" type="text/javascript"><!----></script><script src="search/l10n.js" type="text/javascript"><!----></script><script src="search/htmlFileInfoList.js" type="text/javascript"><!----></script><script src="search/nwSearchFnt.js" type="text/javascript"><!----></script><script src="search/stemmers/en_stemmer.js" type="text/javascript" /><script src="search/index-1.js" type="text/javascript"><!----></script><script src="search/index-2.js" type="text/javascript"><!----></script><script src="search/index-3.js" type="text/javascript"><!----></script><meta name="date" content="" /><meta name="dc.date.created" content="" /><link rel="stylesheet" type="text/css" href="../common/css/docbook.css" /><link media="print" rel="stylesheet" type="text/css" href="../common/css/print.css" /><script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-41389295-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script></head><body><noscript><link rel="stylesheet" type="text/css" href="../common/css/print.css" /><div id="noscript">JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</div></noscript><div id="header"><a href="http://www.atmel.com/webdoc"><img id="logo" alt="Atmel Logo" src="../common/images/logo.png" /></a><h1>Atmel EDBG-based Tools Protocols<br />AVR communication protocol</h1><div id="navheader"><!----><table class="navLinks"><tr><td><a title="Hide TOC tree" tabindex="5" class="pointLeft" onclick="myLayout.toggle('west')" href="#" id="showHideButton">Sidebar
</a></td><td><a tabindex="5" class="navLinkPrevious" accesskey="p" href="ch04s01.html">Prev</a>
|
<a tabindex="5" class="navLinkUp" accesskey="u" href="protocoldocs.avrprotocol.Overview.html">Up</a>
|
<a tabindex="5" class="navLinkNext" accesskey="n" href="ch04s03.html">Next</a></td></tr></table></div></div><div id="content"><!----><div class="section"><div xmlns="" class="titlepage"><div><div><h2 xmlns="http://www.w3.org/1999/xhtml" class="title" style="clear: both"><a id="N10A0B" />Framing</h2></div></div></div><p xmlns="http://www.w3.org/1999/xhtml">This section outlines the general frame format used by all sub-protocols.</p><p>The protocol handler ID field identifies which sub-protocol to decode the packet
by, and this which command handler to forward the packet to. </p><p>In general, <code class="code">ID == 0x00</code> is used as a &ldquo;query&rdquo; function in order for
the host to &ldquo;discover&rdquo; the feature set of the tool. </p><p>
</p><div class="table"><a id="N10A19" /><p class="title"><strong>Table&nbsp;44.&nbsp;Command frame format</strong></p><div class="table-contents"><table summary="Command frame format" border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>Field</th><th>Size</th><th>Value</th></tr></thead><tbody><tr><td>SOF</td><td>1 byte</td><td>0x0E</td></tr><tr><td>Protocol version</td><td>1 byte</td><td>0x00 in this version (all packets)</td></tr><tr><td>Sequence ID</td><td>2 bytes</td><td>Incrementing from 0x00 (least significant byte sent first)</td></tr><tr><td>Protocol handler ID</td><td>1 byte</td><td>Destination sub-protocol handler ID</td></tr><tr><td>Payload</td><td>N bytes</td><td>Data</td></tr></tbody></table></div></div><p><br class="table-break" />
</p><p>
</p><div class="table"><a id="N10A54" /><p class="title"><strong>Table&nbsp;45.&nbsp;Response frame format</strong></p><div class="table-contents"><table summary="Response frame format" border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>Field</th><th>Size</th><th>Value</th></tr></thead><tbody><tr><td>SOF</td><td>1 byte</td><td>0x0E</td></tr><tr><td>Sequence ID</td><td>2 bytes</td><td>Echo of incoming ID (least significant byte sent first)</td></tr><tr><td>Protocol handler ID</td><td>1 byte</td><td>Source sub-protocol handler ID</td></tr><tr><td>Payload</td><td>N bytes</td><td>Data</td></tr></tbody></table></div></div><p><br class="table-break" />
</p><p>
</p><div class="table"><a id="N10A88" /><p class="title"><strong>Table&nbsp;46.&nbsp;Event frame format</strong></p><div class="table-contents"><table summary="Event frame format" border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>Field</th><th>Size</th><th>Value</th></tr></thead><tbody><tr><td>SOF</td><td>1 byte</td><td>0x0E</td></tr><tr><td>Protocol version</td><td>1 byte</td><td>0x00 in this version (all packets)</td></tr><tr><td>Sequence ID</td><td>2 bytes</td><td>Incrementing from 0x00 (least significant byte sent first)</td></tr><tr><td>Protocol handler ID</td><td>1 byte</td><td>Source sub-protocol handler ID</td></tr><tr><td>Payload</td><td>N bytes</td><td>Data</td></tr></tbody></table></div></div><p><br class="table-break" />
</p><p>The protocol handler ID field identifies which sub-protocol to decode the packet
by, and this which command handler to forward the packet to. </p><p>In general, <code class="code">ID == 0x00</code> is used as a &ldquo;query&rdquo; function in order for
the host to &ldquo;discover&rdquo; the feature set of the tool. </p><p>If there is a condition where the EDBG AVR command handler expects more data
for a command than is available, then the next incoming command will be rejected and an
error response (<code class="code">RSP_FAILED</code> with failure code
<code class="code">FAILURE_USB_PREVIOUS_UNDERRUN</code>) will be returned . Note that such an
underrun situation will result in unknown values for the parameters of the failing
command and the host will have to do the necessary cleanup to undo any undesired
behaviour. The underrun error reporting is done by transport layer and is independent of
the sub-protocol being used.</p></div><script src="../common/main.js" type="text/javascript"><!----></script><script src="../common/splitterInit.js" type="text/javascript"><!----></script><div class="navfooter"><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ch04s01.html">Prev</a>&nbsp;</td><td align="center" width="20%"><a accesskey="u" href="protocoldocs.avrprotocol.Overview.html">Up</a></td><td align="right" width="40%">&nbsp;<a accesskey="n" href="ch04s03.html">Next</a></td></tr><tr><td valign="top" align="left" width="40%">&nbsp;</td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td valign="top" align="right" width="40%">&nbsp;</td></tr></table></div></div><div id="sidebar"><div style="padding-top:3px;" id="leftnavigation"><div id="tabs"><ul><li><a tabindex="1" style="outline:0;" href="#treeDiv"><span class="contentsTab">Contents</span></a></li><li><a onclick="doSearch()" tabindex="1" style="outline:0;" href="#searchDiv"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img style="display:block;" id="tocLoading" alt="loading table of contents..." src="../common/images/loading.gif" /><span class="dochome"><a href="../index.html" tabindex="1">Documentation Home</a></span><span class="root"><a href="index.html" tabindex="1">Atmel EDBG-based Tools Protocols</a></span><div style="display:none" id="ulTreeDiv"><ul class="filetree" id="tree"><li><span class="file"><a tabindex="1" href="pr01.html">Preface</a></span></li><li><span class="file"><a tabindex="1" href="protocoldocs.Introduction.html">Introduction</a></span><ul><li><span class="file"><a tabindex="1" href="ch01s01.html">EDBG interface overview</a></span></li><li><span class="file"><a tabindex="1" href="ch01s02.html">Atmel EDBG-based tool implementations</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="protocoldocs.cmsis_dap.html">CMSIS-DAP</a></span><ul><li><span class="file"><a tabindex="1" href="ch02s01.html">CMSIS-DAP protocol</a></span></li><li><span class="file"><a tabindex="1" href="ch02s02.html">CMSIS-DAP vendor commands</a></span><ul><li><span class="file"><a tabindex="1" href="ch02s02s01.html">AVR-target specific vendor commands</a></span></li><li><span class="file"><a tabindex="1" href="ch02s02s02.html">ARM-target specific vendor commands</a></span><ul><li><span class="file"><a tabindex="1" href="ch02s02s02s01.html">Erase pin</a></span></li><li><span class="file"><a tabindex="1" href="ch02s02s02s02.html">Serial trace</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch02s02s03.html">EDBG-specific vendor commands</a></span><ul><li><span class="file"><a tabindex="1" href="ch02s02s03s01.html">Get configuration</a></span></li><li><span class="file"><a tabindex="1" href="ch02s02s03s02.html">Set configuration</a></span></li><li><span class="file"><a tabindex="1" href="ch02s02s03s03.html">EDBG GET request</a></span></li><li><span class="file"><a tabindex="1" href="ch02s02s03s04.html">EDBG SET request</a></span></li></ul></li></ul></li><li><span class="file"><a tabindex="1" href="section_serial_trace.html">Serial trace commands</a></span><ul><li><span class="file"><a tabindex="1" href="ch02s03s01.html">Set transport mode</a></span></li><li><span class="file"><a tabindex="1" href="ch02s03s02.html">Set capture mode</a></span></li><li><span class="file"><a tabindex="1" href="ch02s03s03.html">Set baud rate</a></span></li><li><span class="file"><a tabindex="1" href="ch02s03s04.html">Start</a></span></li><li><span class="file"><a tabindex="1" href="ch02s03s05.html">Stop</a></span></li><li><span class="file"><a tabindex="1" href="ch02s03s06.html">Get data</a></span></li><li><span class="file"><a tabindex="1" href="ch02s03s07.html">Get status</a></span></li><li><span class="file"><a tabindex="1" href="ch02s03s08.html">Get buffer size</a></span></li><li><span class="file"><a tabindex="1" href="ch02s03s09.html">Signon</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch02s04.html">Enveloped AV
Hints and tips
</a></span></li><li><span class="file"><a tabindex="1" href="ch04s05s10.html">Housekeeping ID definitions</a></span></li></ul></li></ul></li><li><span class="file"><a tabindex="1" href="protocoldocs.avr32protocol.html">AVR32 generic protocol</a></span><ul><li><span class="file"><a tabindex="1" href="ch05s01.html">Protocol commands</a></span><ul><li><span class="file"><a tabindex="1" href="ch05s01s01.html">QUERY</a></span><ul><li><span class="file"><a tabindex="1" href="section_qhb_x1c_sl.html">AVR32 QUERY contexts</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch05s01s02.html">SET</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s03.html">GET</a></span><ul><li><span class="file"><a tabindex="1" href="section_avr32_setget_params.html">SET/GET parameters</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch05s01s04.html">Activate Physical</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s05.html">Deactivate Physical</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s06.html">Get ID</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s07.html">Erase</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s08.html">Halt</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s09.html">Reset</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s10.html">Step</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s11.html">Read</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s12.html">Write</a></span><ul><li><span class="file"><a tabindex="1" href="section_avr32_memtypes.html">Memory Types</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch05s01s13.html">TAP</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s14.html">Is protected</a></span></li><li><span class="file"><a tabindex="1" href="ch05s01s15.html">Erase Section</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch05s02.html">Responses</a></span><ul><li><span class="file"><a tabindex="1" href="ch05s02s01.html">OK</a></span></li><li><span class="file"><a tabindex="1" href="ch05s02s02.html">LIST</a></span></li><li><span class="file"><a tabindex="1" href="ch05s02s03.html">ID</a></span></li><li><span class="file"><a tabindex="1" href="ch05s02s04.html">PC</a></span></li><li><span class="file"><a tabindex="1" href="ch05s02s05.html">DATA</a></span></li><li><span class="file"><a tabindex="1" href="ch05s02s06.html">FAILED</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch05s03.html">Hints and tips</a></span><ul><li><span class="file"><a tabindex="1" href="ch05s03s01.html">Configuration</a></span></li><li><span class="file"><a tabindex="1" href="ch05s03s02.html">Activate and deactivate physical</a></span></li><li><span class="file"><a tabindex="1" href="ch05s03s03.html">Programming and debugging commands</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch05s04.html">AVR32GENERIC ID definitions</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="protocoldocs.avr8protocol.html">AVR8 generic protocol</a></span><ul><li><span class="file"><a tabindex="1" href="ch06s01.html">Protocol Commands</a></span><ul><li><span class="file"><a tabindex="1" href="ch06s01s01.html">QUERY</a></span><ul><li><span class="file"><a tabindex="1" href="section_avr8_query_contexts.html">AVR8 QUERY contexts</a></span></li></ul></li><li><span class="file"><a tabindex="1" href="ch06s01s02.html">SET</a></span></li><li><span class="file"><a tabindex="1" href="ch06s01s03.html">GET</a></span><ul><li><span class="file"><a tabindex="1" href="section_avr8_setget_params.html">SET/GET parameters</a></span><ul><li><span class="file"><a tabindex="1" href="section_avr8_setget_params.html#N11932">Device context: debugWIRE targets</a></span></li><li><span class="file"><a tabindex="1" href="section_avr8_setget_params.html#N119D3">Device context: megaAVR JTAG targets</a></span></li><li><span class="file"><a tabindex="1" href