620 lines
36 KiB
HTML
620 lines
36 KiB
HTML
<!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>Kinetis SDK v.2.0 API Reference Manual: XBAR: Inter-Peripheral Crossbar Switch</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">Kinetis SDK v.2.0 API Reference Manual
|
|
 <span id="projectnumber">Rev. 0</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 Page</span></a></li>
|
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
|
<li><a href="modules.html"><span>API 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__xbar.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>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><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="#nested-classes">Data Structures</a> |
|
|
<a href="#define-members">Macros</a> |
|
|
<a href="#enum-members">Enumerations</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">XBAR: Inter-Peripheral Crossbar Switch</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
|
|
<p>The SDK provides Peripheral driver for the Inter-Peripheral Crossbar Switch (XBAR) block of Kinetis devices.</p>
|
|
<p>The XBAR peripheral driver configures the XBAR (Inter-Peripheral Crossbar Switch) and handles initialization and configuration of the XBAR module.</p>
|
|
<p>XBAR driver has two parts:</p>
|
|
<ul>
|
|
<li>Signal connection - This part interconnects input and output signals.</li>
|
|
<li>Active edge feature - Some of the outputs provides active edge detection. If an active edge occurs, an interrupt or a DMA request can be called. APIs handle user callbacks for the interrupts. The driver also includes API for clearing and reading status bit.</li>
|
|
</ul>
|
|
<h1><a class="anchor" id="XbarFunctionalGroups"></a>
|
|
Function groups</h1>
|
|
<h2><a class="anchor" id="XBARInit"></a>
|
|
XBAR Initialization</h2>
|
|
<p>To initialize the XBAR driver, a state structure has to be passed into the initialization function. This block of memory keeps pointers to user's callback functions and parameters to these functions. The XBAR module is initialized by calling the <a class="el" href="group__xbar.html#ga41b25fdb5bc0e373618918fda8dbd85a" title="Initializes the XBAR modules. ">XBAR_Init()</a> function.</p>
|
|
<h2><a class="anchor" id="XBARCallDiagram"></a>
|
|
Call diagram</h2>
|
|
<ol type="1">
|
|
<li>Call the "XBAR_Init()" function to initialize the XBAR module.</li>
|
|
<li>Optionally, call the "XBAR_SetSignalsConnection()" function to Set connection between the selected XBAR_IN[*] input and the XBAR_OUT[*] output signal. It connects the XBAR input to the selected XBAR output. A configuration structure of the "xbar_input_signal_t" type and "xbar_output_signal_t" type is required.</li>
|
|
<li>Call the "XBAR_SetOutputSignalConfig" function to set the active edge features, such interrupts or DMA requests. A configuration structure of the "xbar_control_config_t" type is required to point to structure that keeps configuration of control register.</li>
|
|
<li>Finally, the XBAR works properly.</li>
|
|
</ol>
|
|
<h1><a class="anchor" id="XbarExample"></a>
|
|
Typical use case</h1>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
|
Data Structures</h2></td></tr>
|
|
<tr class="memitem:structxbar__control__config__t"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbar.html#structxbar__control__config__t">xbar_control_config_t</a></td></tr>
|
|
<tr class="memdesc:structxbar__control__config__t"><td class="mdescLeft"> </td><td class="mdescRight">Defines the configuration structure of the XBAR control register. <a href="group__xbar.html#structxbar__control__config__t">More...</a><br/></td></tr>
|
|
<tr class="separator:structxbar__control__config__t"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
|
|
Macros</h2></td></tr>
|
|
<tr class="memitem:ga8338db67c722cffad9ac1c43b4058335"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbar.html#ga8338db67c722cffad9ac1c43b4058335">FSL_XBAR_DRIVER_VERSION</a>   (<a class="el" href="group__flash__driver.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 0, 2))</td></tr>
|
|
<tr class="memdesc:ga8338db67c722cffad9ac1c43b4058335"><td class="mdescLeft"> </td><td class="mdescRight">Version 2.0.2. <a href="#ga8338db67c722cffad9ac1c43b4058335">More...</a><br/></td></tr>
|
|
<tr class="separator:ga8338db67c722cffad9ac1c43b4058335"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga59db33cff6c5100dc55e877eb2efa749"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbar.html#ga59db33cff6c5100dc55e877eb2efa749">XBAR_SELx</a>(base, output)</td></tr>
|
|
<tr class="memdesc:ga59db33cff6c5100dc55e877eb2efa749"><td class="mdescLeft"> </td><td class="mdescRight">Macros for entire XBAR_SELx register. <a href="#ga59db33cff6c5100dc55e877eb2efa749">More...</a><br/></td></tr>
|
|
<tr class="separator:ga59db33cff6c5100dc55e877eb2efa749"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga31533c856b1c89e7cbdcb9f08e64cf2e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbar.html#ga31533c856b1c89e7cbdcb9f08e64cf2e">XBAR_WR_SELx_SELx</a>(base, input, output)</td></tr>
|
|
<tr class="memdesc:ga31533c856b1c89e7cbdcb9f08e64cf2e"><td class="mdescLeft"> </td><td class="mdescRight">Set the XBAR_SELx_SELx field to a new value. <a href="#ga31533c856b1c89e7cbdcb9f08e64cf2e">More...</a><br/></td></tr>
|
|
<tr class="separator:ga31533c856b1c89e7cbdcb9f08e64cf2e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
|
|
Enumerations</h2></td></tr>
|
|
<tr class="memitem:ga3b00a90c8ea09b5e9bde4e9569dd6acd"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbar.html#ga3b00a90c8ea09b5e9bde4e9569dd6acd">xbar_active_edge_t</a> { <br/>
|
|
  <a class="el" href="group__xbar.html#gga3b00a90c8ea09b5e9bde4e9569dd6acda001de2a19209982e62911110501c7c39">kXBAR_EdgeNone</a> = 0U,
|
|
<br/>
|
|
  <a class="el" href="group__xbar.html#gga3b00a90c8ea09b5e9bde4e9569dd6acdaae4613950fea4fb1c196c9c52e55183b">kXBAR_EdgeRising</a> = 1U,
|
|
<br/>
|
|
  <a class="el" href="group__xbar.html#gga3b00a90c8ea09b5e9bde4e9569dd6acdaf66d5366d5d58c6b07b637899ebff6d4">kXBAR_EdgeFalling</a> = 2U,
|
|
<br/>
|
|
  <a class="el" href="group__xbar.html#gga3b00a90c8ea09b5e9bde4e9569dd6acda40bc235b95d4a0af62dcbf9dbe173993">kXBAR_EdgeRisingAndFalling</a> = 3U
|
|
<br/>
|
|
}</td></tr>
|
|
<tr class="memdesc:ga3b00a90c8ea09b5e9bde4e9569dd6acd"><td class="mdescLeft"> </td><td class="mdescRight">XBAR active edge for detection. <a href="group__xbar.html#ga3b00a90c8ea09b5e9bde4e9569dd6acd">More...</a><br/></td></tr>
|
|
<tr class="separator:ga3b00a90c8ea09b5e9bde4e9569dd6acd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga579edfe82d85753cf07d8ee2a886c8b3"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbar.html#ga579edfe82d85753cf07d8ee2a886c8b3">xbar_request_t</a> { <br/>
|
|
  <a class="el" href="group__xbar.html#gga579edfe82d85753cf07d8ee2a886c8b3add9828910fd04b4ed7fdabf9acd17bce">kXBAR_RequestDisable</a> = 0U,
|
|
<br/>
|
|
  <a class="el" href="group__xbar.html#gga579edfe82d85753cf07d8ee2a886c8b3ab393bdbdf99104eb65d914a13a1ed9f4">kXBAR_RequestDMAEnable</a> = 1U,
|
|
<br/>
|
|
  <a class="el" href="group__xbar.html#gga579edfe82d85753cf07d8ee2a886c8b3a07fc500930d3db5da5473567863b09ef">kXBAR_RequestInterruptEnalbe</a> = 2U
|
|
<br/>
|
|
}</td></tr>
|
|
<tr class="memdesc:ga579edfe82d85753cf07d8ee2a886c8b3"><td class="mdescLeft"> </td><td class="mdescRight">Defines the XBAR DMA and interrupt configurations. <a href="group__xbar.html#ga579edfe82d85753cf07d8ee2a886c8b3">More...</a><br/></td></tr>
|
|
<tr class="separator:ga579edfe82d85753cf07d8ee2a886c8b3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga098d5e1c5216d155ac0a0864451ba1d4"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbar.html#ga098d5e1c5216d155ac0a0864451ba1d4">xbar_status_flag_t</a> { <br/>
|
|
  <a class="el" href="group__xbar.html#gga098d5e1c5216d155ac0a0864451ba1d4a5c419df19b41112832d7b3b6c89a079f">kXBAR_EdgeDetectionOut0</a>,
|
|
<br/>
|
|
  <a class="el" href="group__xbar.html#gga098d5e1c5216d155ac0a0864451ba1d4af46f9c5140e82c0affe31d4bb1ebe646">kXBAR_EdgeDetectionOut1</a>,
|
|
<br/>
|
|
  <a class="el" href="group__xbar.html#gga098d5e1c5216d155ac0a0864451ba1d4af155f74a014b08d3cbee29118680a9ba">kXBAR_EdgeDetectionOut2</a>,
|
|
<br/>
|
|
  <a class="el" href="group__xbar.html#gga098d5e1c5216d155ac0a0864451ba1d4a0fc6bd04cc0480fa1090adfbda8ffc61">kXBAR_EdgeDetectionOut3</a>
|
|
<br/>
|
|
}</td></tr>
|
|
<tr class="memdesc:ga098d5e1c5216d155ac0a0864451ba1d4"><td class="mdescLeft"> </td><td class="mdescRight">XBAR status flags. <a href="group__xbar.html#ga098d5e1c5216d155ac0a0864451ba1d4">More...</a><br/></td></tr>
|
|
<tr class="separator:ga098d5e1c5216d155ac0a0864451ba1d4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
|
|
XBAR functional Operation</h2></td></tr>
|
|
<tr class="memitem:ga41b25fdb5bc0e373618918fda8dbd85a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbar.html#ga41b25fdb5bc0e373618918fda8dbd85a">XBAR_Init</a> (XBAR_Type *base)</td></tr>
|
|
<tr class="memdesc:ga41b25fdb5bc0e373618918fda8dbd85a"><td class="mdescLeft"> </td><td class="mdescRight">Initializes the XBAR modules. <a href="#ga41b25fdb5bc0e373618918fda8dbd85a">More...</a><br/></td></tr>
|
|
<tr class="separator:ga41b25fdb5bc0e373618918fda8dbd85a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gaa458e8bb7a0286a51e78fcbca14d9533"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbar.html#gaa458e8bb7a0286a51e78fcbca14d9533">XBAR_Deinit</a> (XBAR_Type *base)</td></tr>
|
|
<tr class="memdesc:gaa458e8bb7a0286a51e78fcbca14d9533"><td class="mdescLeft"> </td><td class="mdescRight">Shutdown the XBAR modules. <a href="#gaa458e8bb7a0286a51e78fcbca14d9533">More...</a><br/></td></tr>
|
|
<tr class="separator:gaa458e8bb7a0286a51e78fcbca14d9533"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga9ce80cdb4eea9a9488cce44d143cf2d8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbar.html#ga9ce80cdb4eea9a9488cce44d143cf2d8">XBAR_SetSignalsConnection</a> (XBAR_Type *base, xbar_input_signal_t input, xbar_output_signal_t output)</td></tr>
|
|
<tr class="memdesc:ga9ce80cdb4eea9a9488cce44d143cf2d8"><td class="mdescLeft"> </td><td class="mdescRight">Set connection between the selected XBAR_IN[*] input and the XBAR_OUT[*] output signal. <a href="#ga9ce80cdb4eea9a9488cce44d143cf2d8">More...</a><br/></td></tr>
|
|
<tr class="separator:ga9ce80cdb4eea9a9488cce44d143cf2d8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga80d10fdf0ae04e067a836173c749dd72"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbar.html#ga80d10fdf0ae04e067a836173c749dd72">XBAR_ClearStatusFlags</a> (XBAR_Type *base, uint32_t mask)</td></tr>
|
|
<tr class="memdesc:ga80d10fdf0ae04e067a836173c749dd72"><td class="mdescLeft"> </td><td class="mdescRight">Clears the the edge detection status flags of relative mask. <a href="#ga80d10fdf0ae04e067a836173c749dd72">More...</a><br/></td></tr>
|
|
<tr class="separator:ga80d10fdf0ae04e067a836173c749dd72"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga715e07e5320e35dab4b8a4880dba414a"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbar.html#ga715e07e5320e35dab4b8a4880dba414a">XBAR_GetStatusFlags</a> (XBAR_Type *base)</td></tr>
|
|
<tr class="memdesc:ga715e07e5320e35dab4b8a4880dba414a"><td class="mdescLeft"> </td><td class="mdescRight">Gets the active edge detection status. <a href="#ga715e07e5320e35dab4b8a4880dba414a">More...</a><br/></td></tr>
|
|
<tr class="separator:ga715e07e5320e35dab4b8a4880dba414a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gae12741c51e1d552157021a4ae482d55e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbar.html#gae12741c51e1d552157021a4ae482d55e">XBAR_SetOutputSignalConfig</a> (XBAR_Type *base, xbar_output_signal_t output, const <a class="el" href="group__xbar.html#structxbar__control__config__t">xbar_control_config_t</a> *controlConfig)</td></tr>
|
|
<tr class="memdesc:gae12741c51e1d552157021a4ae482d55e"><td class="mdescLeft"> </td><td class="mdescRight">Configures the XBAR control register. <a href="#gae12741c51e1d552157021a4ae482d55e">More...</a><br/></td></tr>
|
|
<tr class="separator:gae12741c51e1d552157021a4ae482d55e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
|
|
<a name="structxbar__control__config__t" id="structxbar__control__config__t"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">struct xbar_control_config_t</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<div class="textblock"><p>This structure keeps the configuration of XBAR control register for one output. Control registers are available only for a few outputs. Not every XBAR module has control registers. </p>
|
|
</div><table class="memberdecls">
|
|
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
|
|
<tr class="memitem:a737f4e6be7802e177107dd9b970078e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__xbar.html#ga3b00a90c8ea09b5e9bde4e9569dd6acd">xbar_active_edge_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbar.html#a737f4e6be7802e177107dd9b970078e9">activeEdge</a></td></tr>
|
|
<tr class="memdesc:a737f4e6be7802e177107dd9b970078e9"><td class="mdescLeft"> </td><td class="mdescRight">Active edge to be detected. <a href="#a737f4e6be7802e177107dd9b970078e9">More...</a><br/></td></tr>
|
|
<tr class="separator:a737f4e6be7802e177107dd9b970078e9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a91b6e383eb2242de8ca3d809fde387ba"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__xbar.html#ga579edfe82d85753cf07d8ee2a886c8b3">xbar_request_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbar.html#a91b6e383eb2242de8ca3d809fde387ba">requestType</a></td></tr>
|
|
<tr class="memdesc:a91b6e383eb2242de8ca3d809fde387ba"><td class="mdescLeft"> </td><td class="mdescRight">Selects DMA/Interrupt request. <a href="#a91b6e383eb2242de8ca3d809fde387ba">More...</a><br/></td></tr>
|
|
<tr class="separator:a91b6e383eb2242de8ca3d809fde387ba"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<h4 class="groupheader">Field Documentation</h4>
|
|
<a class="anchor" id="a737f4e6be7802e177107dd9b970078e9"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="group__xbar.html#ga3b00a90c8ea09b5e9bde4e9569dd6acd">xbar_active_edge_t</a> xbar_control_config_t::activeEdge</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a91b6e383eb2242de8ca3d809fde387ba"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="group__xbar.html#ga579edfe82d85753cf07d8ee2a886c8b3">xbar_request_t</a> xbar_control_config_t::requestType</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Macro Definition Documentation</h2>
|
|
<a class="anchor" id="ga8338db67c722cffad9ac1c43b4058335"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define FSL_XBAR_DRIVER_VERSION   (<a class="el" href="group__flash__driver.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 0, 2))</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga59db33cff6c5100dc55e877eb2efa749"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define XBAR_SELx</td>
|
|
<td>(</td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">base, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">output </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line">(*(<span class="keyword">volatile</span> uint16_t *)((uintptr_t) & \</div>
|
|
<div class="line"> (base->SEL0) + ((output) / 2U) * 2U))</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga31533c856b1c89e7cbdcb9f08e64cf2e"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define XBAR_WR_SELx_SELx</td>
|
|
<td>(</td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">base, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">input, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">output </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line">(<a class="code" href="group__xbar.html#ga59db33cff6c5100dc55e877eb2efa749">XBAR_SELx</a>((base), (output)) = \</div>
|
|
<div class="line"> ((<a class="code" href="group__xbar.html#ga59db33cff6c5100dc55e877eb2efa749">XBAR_SELx</a>((base), (output)) & ~(0xFFU << (XBAR_SEL0_SEL1_SHIFT * ((output) % 2U)))) | \</div>
|
|
<div class="line"> ((input) << (XBAR_SEL0_SEL1_SHIFT * ((output) % 2U)))))</div>
|
|
<div class="ttc" id="group__xbar_html_ga59db33cff6c5100dc55e877eb2efa749"><div class="ttname"><a href="group__xbar.html#ga59db33cff6c5100dc55e877eb2efa749">XBAR_SELx</a></div><div class="ttdeci">#define XBAR_SELx(base, output)</div><div class="ttdoc">Macros for entire XBAR_SELx register. </div><div class="ttdef"><b>Definition:</b> fsl_xbar.h:47</div></div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Enumeration Type Documentation</h2>
|
|
<a class="anchor" id="ga3b00a90c8ea09b5e9bde4e9569dd6acd"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">enum <a class="el" href="group__xbar.html#ga3b00a90c8ea09b5e9bde4e9569dd6acd">xbar_active_edge_t</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<table class="fieldtable">
|
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga3b00a90c8ea09b5e9bde4e9569dd6acda001de2a19209982e62911110501c7c39"></a>kXBAR_EdgeNone</em> </td><td class="fielddoc">
|
|
<p>Edge detection status bit never asserts. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><em><a class="anchor" id="gga3b00a90c8ea09b5e9bde4e9569dd6acdaae4613950fea4fb1c196c9c52e55183b"></a>kXBAR_EdgeRising</em> </td><td class="fielddoc">
|
|
<p>Edge detection status bit asserts on rising edges. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><em><a class="anchor" id="gga3b00a90c8ea09b5e9bde4e9569dd6acdaf66d5366d5d58c6b07b637899ebff6d4"></a>kXBAR_EdgeFalling</em> </td><td class="fielddoc">
|
|
<p>Edge detection status bit asserts on falling edges. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><em><a class="anchor" id="gga3b00a90c8ea09b5e9bde4e9569dd6acda40bc235b95d4a0af62dcbf9dbe173993"></a>kXBAR_EdgeRisingAndFalling</em> </td><td class="fielddoc">
|
|
<p>Edge detection status bit asserts on rising and falling edges. </p>
|
|
</td></tr>
|
|
</table>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga579edfe82d85753cf07d8ee2a886c8b3"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">enum <a class="el" href="group__xbar.html#ga579edfe82d85753cf07d8ee2a886c8b3">xbar_request_t</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<table class="fieldtable">
|
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga579edfe82d85753cf07d8ee2a886c8b3add9828910fd04b4ed7fdabf9acd17bce"></a>kXBAR_RequestDisable</em> </td><td class="fielddoc">
|
|
<p>Interrupt and DMA are disabled. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><em><a class="anchor" id="gga579edfe82d85753cf07d8ee2a886c8b3ab393bdbdf99104eb65d914a13a1ed9f4"></a>kXBAR_RequestDMAEnable</em> </td><td class="fielddoc">
|
|
<p>DMA enabled, interrupt disabled. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><em><a class="anchor" id="gga579edfe82d85753cf07d8ee2a886c8b3a07fc500930d3db5da5473567863b09ef"></a>kXBAR_RequestInterruptEnalbe</em> </td><td class="fielddoc">
|
|
<p>Interrupt enabled, DMA disabled. </p>
|
|
</td></tr>
|
|
</table>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga098d5e1c5216d155ac0a0864451ba1d4"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">enum <a class="el" href="group__xbar.html#ga098d5e1c5216d155ac0a0864451ba1d4">xbar_status_flag_t</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>This provides constants for the XBAR status flags for use in the XBAR functions. </p>
|
|
<table class="fieldtable">
|
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga098d5e1c5216d155ac0a0864451ba1d4a5c419df19b41112832d7b3b6c89a079f"></a>kXBAR_EdgeDetectionOut0</em> </td><td class="fielddoc">
|
|
<p>XBAR_OUT0 active edge interrupt flag, sets when active edge detected. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><em><a class="anchor" id="gga098d5e1c5216d155ac0a0864451ba1d4af46f9c5140e82c0affe31d4bb1ebe646"></a>kXBAR_EdgeDetectionOut1</em> </td><td class="fielddoc">
|
|
<p>XBAR_OUT1 active edge interrupt flag, sets when active edge detected. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><em><a class="anchor" id="gga098d5e1c5216d155ac0a0864451ba1d4af155f74a014b08d3cbee29118680a9ba"></a>kXBAR_EdgeDetectionOut2</em> </td><td class="fielddoc">
|
|
<p>XBAR_OUT2 active edge interrupt flag, sets when active edge detected. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><em><a class="anchor" id="gga098d5e1c5216d155ac0a0864451ba1d4a0fc6bd04cc0480fa1090adfbda8ffc61"></a>kXBAR_EdgeDetectionOut3</em> </td><td class="fielddoc">
|
|
<p>XBAR_OUT3 active edge interrupt flag, sets when active edge detected. </p>
|
|
</td></tr>
|
|
</table>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Function Documentation</h2>
|
|
<a class="anchor" id="ga41b25fdb5bc0e373618918fda8dbd85a"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void XBAR_Init </td>
|
|
<td>(</td>
|
|
<td class="paramtype">XBAR_Type * </td>
|
|
<td class="paramname"><em>base</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>This function un-gates the XBAR clock.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">base</td><td>XBAR peripheral address. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="gaa458e8bb7a0286a51e78fcbca14d9533"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void XBAR_Deinit </td>
|
|
<td>(</td>
|
|
<td class="paramtype">XBAR_Type * </td>
|
|
<td class="paramname"><em>base</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>This function disables XBAR clock.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">base</td><td>XBAR peripheral address. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga9ce80cdb4eea9a9488cce44d143cf2d8"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void XBAR_SetSignalsConnection </td>
|
|
<td>(</td>
|
|
<td class="paramtype">XBAR_Type * </td>
|
|
<td class="paramname"><em>base</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">xbar_input_signal_t </td>
|
|
<td class="paramname"><em>input</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">xbar_output_signal_t </td>
|
|
<td class="paramname"><em>output</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>This function connects the XBAR input to the selected XBAR output. If more than one XBAR module is available, only the inputs and outputs from the same module can be connected.</p>
|
|
<p>Example: </p>
|
|
<div class="fragment"><div class="line"><a class="code" href="group__xbar.html#ga9ce80cdb4eea9a9488cce44d143cf2d8">XBAR_SetSignalsConnection</a>(XBAR, kXBAR_InputTMR_CH0_Output, kXBAR_OutputXB_DMA_INT2);</div>
|
|
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">base</td><td>XBAR peripheral address </td></tr>
|
|
<tr><td class="paramname">input</td><td>XBAR input signal. </td></tr>
|
|
<tr><td class="paramname">output</td><td>XBAR output signal. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga80d10fdf0ae04e067a836173c749dd72"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void XBAR_ClearStatusFlags </td>
|
|
<td>(</td>
|
|
<td class="paramtype">XBAR_Type * </td>
|
|
<td class="paramname"><em>base</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint32_t </td>
|
|
<td class="paramname"><em>mask</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">base</td><td>XBAR peripheral address </td></tr>
|
|
<tr><td class="paramname">mask</td><td>the status flags to clear. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga715e07e5320e35dab4b8a4880dba414a"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">uint32_t XBAR_GetStatusFlags </td>
|
|
<td>(</td>
|
|
<td class="paramtype">XBAR_Type * </td>
|
|
<td class="paramname"><em>base</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>This function gets the active edge detect status of all XBAR_OUTs. If the active edge occurs, the return value is asserted. When the interrupt or the DMA functionality is enabled for the XBAR_OUTx, this field is 1 when the interrupt or DMA request is asserted and 0 when the interrupt or DMA request has been cleared.</p>
|
|
<p>Example: </p>
|
|
<div class="fragment"><div class="line">uint32_t status;</div>
|
|
<div class="line"></div>
|
|
<div class="line">status = <a class="code" href="group__xbar.html#ga715e07e5320e35dab4b8a4880dba414a">XBAR_GetStatusFlags</a>(XBAR);</div>
|
|
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">base</td><td>XBAR peripheral address. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>the mask of these status flag bits. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="gae12741c51e1d552157021a4ae482d55e"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void XBAR_SetOutputSignalConfig </td>
|
|
<td>(</td>
|
|
<td class="paramtype">XBAR_Type * </td>
|
|
<td class="paramname"><em>base</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">xbar_output_signal_t </td>
|
|
<td class="paramname"><em>output</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="group__xbar.html#structxbar__control__config__t">xbar_control_config_t</a> * </td>
|
|
<td class="paramname"><em>controlConfig</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>This function configures an XBAR control register. The active edge detection and the DMA/IRQ function on the corresponding XBAR output can be set.</p>
|
|
<p>Example: </p>
|
|
<div class="fragment"><div class="line"><a class="code" href="group__xbar.html#structxbar__control__config__t">xbar_control_config_t</a> userConfig;</div>
|
|
<div class="line">userConfig.<a class="code" href="group__xbar.html#a737f4e6be7802e177107dd9b970078e9">activeEdge</a> = <a class="code" href="group__xbar.html#gga3b00a90c8ea09b5e9bde4e9569dd6acdaae4613950fea4fb1c196c9c52e55183b">kXBAR_EdgeRising</a>;</div>
|
|
<div class="line">userConfig.<a class="code" href="group__xbar.html#a91b6e383eb2242de8ca3d809fde387ba">requestType</a> = <a class="code" href="group__xbar.html#gga579edfe82d85753cf07d8ee2a886c8b3a07fc500930d3db5da5473567863b09ef">kXBAR_RequestInterruptEnalbe</a>;</div>
|
|
<div class="line"><a class="code" href="group__xbar.html#gae12741c51e1d552157021a4ae482d55e">XBAR_SetOutputSignalConfig</a>(XBAR, kXBAR_OutputXB_DMA_INT0, &userConfig);</div>
|
|
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">base</td><td>XBAR peripheral address </td></tr>
|
|
<tr><td class="paramname">output</td><td>XBAR output number. </td></tr>
|
|
<tr><td class="paramname">controlConfig</td><td>Pointer to structure that keeps configuration of control register. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
</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">© 2016 Freescale Semiconductor, Inc. All rights reserved.
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|