MCUXpresso_LPC55S69/docs/MCUXpresso SDK API Referenc.../a00271.html

183 lines
11 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>MCUXpresso SDK API Reference Manual: SWO</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.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>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</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: 56px;">
<td id="projectlogo"><img alt="Logo" src="fs_logo.gif"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">MCUXpresso SDK API Reference Manual
&#160;<span id="projectnumber">Rev 2.15.000</span>
</div>
<div id="projectbrief">NXP Semiconductors</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<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&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>API&#160;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('a00271.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>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><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">SWO<div class="ingroups"><a class="el" href="a00268.html">Debug Console</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Serial wire output is a mechanism for ARM targets to output signal from core through a single pin. Some IDEs also support SWO, such IAR and KEIL, both input and output are supported, see below for details.</p>
<h1><a class="anchor" id="SWOSDKGrps"></a>
Guide SWO for SDK</h1>
<p><b>NOTE:</b> After the setting both "printf" and "PRINTF" are available for debugging, JlinkSWOViewer can be used to capture the output log.</p>
<h2>Step 1: Setting up the environment</h2>
<ol type="1">
<li>Define SERIAL_PORT_TYPE_SWO in your project settings.</li>
<li>Prepare code, the port and baudrate can be decided by application, clkSrcFreq should be mcu core clock frequency: <div class="fragment"><div class="line"><a class="code" href="a00268.html#ga12e50ee0450679fd8ca950a89338d366">DbgConsole_Init</a>(instance, baudRate, <a class="code" href="a00054.html#gga37012d03963b0a7aac96cda088362180af6a37935b2767a9ae22825f0bc49ef77">kSerialPort_Swo</a>, clkSrcFreq);</div>
</div><!-- fragment --></li>
<li>Use PRINTF or printf to print some thing in application. <h2>Step 2: Building the project</h2>
</li>
</ol>
<h2>Step 3: Download and run project</h2>
<h1><a class="anchor" id="SWOIARGrps"></a>
Guide SWO for IAR</h1>
<p><b>NOTE:</b> After the setting both "printf" and "scanf" are available for debugging.</p>
<h2>Step 1: Setting up the environment</h2>
<ol type="1">
<li>Choose project -&gt; "Options" -&gt; "Debugger" -&gt; "J-Link/J-Trace".</li>
<li>Choose tab "J-Link/J-Trace" -&gt; "Connection" tab -&gt; "SWD".</li>
<li>Choose tab "General Options" -&gt; "Library Configurations", select Semihosted, select Via SWO.</li>
<li>To configure the hardwares generation of trace data, click the SWO Configuration button available in the SWO Configuration dialog box. ●The value of the CPU clock option must reflect the frequency of the CPU clock speed at which the application executes. Note also that the settings you make are preserved between debug sessions. ●To decrease the amount of transmissions on the communication channel, you can disable the Timestamp option. Alternatively, set a lower rate for PC Sampling or use a higher SWO clock frequency.</li>
<li>Open the SWO Trace window from J-LINK,and click the Activate button to enable trace data collection.</li>
<li>There are three cases for this SDK_DEBUGCONSOLE_UART whether or not defined. a: if use uppercase PRINTF to output log,The SDK_DEBUGCONSOLE_UART defined or not defined will not effect debug function. b: if use lowercase printf to output log and defined SDK_DEBUGCONSOLE_UART to zero,then debug function ok. c: if use lowercase printf to output log and defined SDK_DEBUGCONSOLE_UART to one,then debug function ok.</li>
</ol>
<p><b>NOTE:</b> Case a or c only apply at example which enable swo function,the SDK_DEBUGCONSOLE_UART definition in fsl_debug_console.h. For case a and c, Do and not do the above third step will be not affect function.</p>
<ol type="1">
<li>Start the project by choosing Project&gt;Download and Debug. <h2>Step 2: Building the project</h2>
</li>
</ol>
<h2>Step 3: Starting swo</h2>
<ol type="1">
<li>Download and debug application.</li>
<li>Choose View -&gt; Terminal I/O to display the output from the I/O operations.</li>
<li>Run application.</li>
</ol>
<h1><a class="anchor" id="SWOKeilGrps"></a>
Guide SWO for Keil µVision</h1>
<p><b>NOTE:</b> After the setting both "printf" and "scanf" are available for debugging.</p>
<h2>Step 1: Setting up the environment</h2>
<ol type="1">
<li>There are three cases for this SDK_DEBUGCONSOLE_UART whether or not defined. a: if use uppercase PRINTF to output log,the SDK_DEBUGCONSOLE_UART definition does not affect the functionality and skip the second step directly. b: if use lowercase printf to output log and defined SDK_DEBUGCONSOLE_UART to zero,then start the second step. c: if use lowercase printf to output log and defined SDK_DEBUGCONSOLE_UART to one,then skip the second step directly.</li>
</ol>
<p><b>NOTE:</b> Case a or c only apply at example which enable swo function,the SDK_DEBUGCONSOLE_UART definition in fsl_debug_console.h.</p>
<ol type="1">
<li>In menu bar, click Management Run-Time Environment icon, select Compiler, unfold I/O, enable STDERR/STDIN/STDOUT and set the variant to ITM.</li>
<li>Open Project&gt;Options for target or using Alt+F7 or click.</li>
<li>Select “Debug” tab, select “J-Link/J-Trace Cortex” and click “Setting button”.</li>
<li>Select “Debug” tab and choose Port:SW, then select "Trace" tab, choose "Enable" and click OK, please make sure the Core clock is set correctly, enable autodetect max SWO clk, enable ITM Stimulus Ports 0.</li>
</ol>
<h2>Step 3: Building the project</h2>
<ol type="1">
<li>Compile and link the project by choosing Project&gt;Build Target or using F7.</li>
</ol>
<h2>Step 4: Run the project</h2>
<ol type="1">
<li>Choose “Debug” on menu bar or Ctrl F5.</li>
<li>In menu bar, choose "Serial Window" and click to "Debug (printf) Viewer".</li>
<li>Run line by line to see result in Console Window.</li>
</ol>
<h1><a class="anchor" id="SWOMCUXGrps"></a>
Guide SWO for MCUXpresso IDE</h1>
<p><b>NOTE:</b> MCUX support SWO for LPC-Link2 debug probe only.</p>
<h1><a class="anchor" id="SWOARMGCCGrps"></a>
Guide SWO for ARMGCC</h1>
<p><b>NOTE:</b> ARMGCC has no library support SWO. </p>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul class="foot">
<li class="footer">&copy; 2016 NXP Semiconductors. All rights reserved.
</li>
</ul>
</div>
</body>
</html>