MCUXpresso_MIMXRT1021xxxxx/docs/MCUXpresso SDK API Referenc.../a00021.html

3403 lines
199 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>MCUXpresso SDK API Reference Manual: eDMA: Enhanced Direct Memory Access (eDMA) Controller Driver</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('a00021.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="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">eDMA: Enhanced Direct Memory Access (eDMA) Controller Driver</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>The MCUXpresso SDK provides a peripheral driver for the enhanced Direct Memory Access (eDMA) of MCUXpresso SDK devices.</p>
<h1><a class="anchor" id="EDMATypicalUseCase"></a>
Typical use case</h1>
<h2><a class="anchor" id="EDMAOper"></a>
eDMA Operation</h2>
<p>Refer to the driver examples codes located at &lt;SDK_ROOT&gt;/boards/&lt;BOARD&gt;/driver_examples/edma </p>
<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:a00335"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a00335">_edma_config</a></td></tr>
<tr class="memdesc:a00335"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA global configuration structure. <a href="a00021.html#a00335">More...</a><br/></td></tr>
<tr class="separator:a00335"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00339"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a00339">_edma_transfer_config</a></td></tr>
<tr class="memdesc:a00339"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA transfer configuration <a href="a00021.html#a00339">More...</a><br/></td></tr>
<tr class="separator:a00339"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00334"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a00334">_edma_channel_Preemption_config</a></td></tr>
<tr class="memdesc:a00334"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA channel priority configuration <a href="a00021.html#a00334">More...</a><br/></td></tr>
<tr class="separator:a00334"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00337"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a00337">_edma_minor_offset_config</a></td></tr>
<tr class="memdesc:a00337"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA minor offset configuration <a href="a00021.html#a00337">More...</a><br/></td></tr>
<tr class="separator:a00337"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00338"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a00338">_edma_tcd</a></td></tr>
<tr class="memdesc:a00338"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA TCD. <a href="a00021.html#a00338">More...</a><br/></td></tr>
<tr class="separator:a00338"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00336"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a00336">_edma_handle</a></td></tr>
<tr class="memdesc:a00336"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA transfer handle structure <a href="a00021.html#a00336">More...</a><br/></td></tr>
<tr class="separator:a00336"><td class="memSeparator" colspan="2">&#160;</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:ga6f2ecddbfb5e68cd1c9243dc141ec275"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6f2ecddbfb5e68cd1c9243dc141ec275"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga6f2ecddbfb5e68cd1c9243dc141ec275">DMA_DCHPRI_INDEX</a>(channel)&#160;&#160;&#160;(((channel) &amp; ~0x03U) | (3U - ((channel)&amp;0x03U)))</td></tr>
<tr class="memdesc:ga6f2ecddbfb5e68cd1c9243dc141ec275"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the offset unit from DCHPRI3. <br/></td></tr>
<tr class="separator:ga6f2ecddbfb5e68cd1c9243dc141ec275"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga3cd26ca8831986959f668621f2e52d32"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3cd26ca8831986959f668621f2e52d32"></a>
typedef enum <a class="el" href="a00021.html#ga4ffcbd8f86285f5c162ae70a6fe155bd">_edma_transfer_size</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga3cd26ca8831986959f668621f2e52d32">edma_transfer_size_t</a></td></tr>
<tr class="memdesc:ga3cd26ca8831986959f668621f2e52d32"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA transfer configuration <br/></td></tr>
<tr class="separator:ga3cd26ca8831986959f668621f2e52d32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga567f4aba444f1fb55ac796ea3c12b1f6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga567f4aba444f1fb55ac796ea3c12b1f6"></a>
typedef enum <a class="el" href="a00021.html#ga1a7d7ef429d6168ce7c9e43cee40d539">_edma_modulo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga567f4aba444f1fb55ac796ea3c12b1f6">edma_modulo_t</a></td></tr>
<tr class="memdesc:ga567f4aba444f1fb55ac796ea3c12b1f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA modulo configuration <br/></td></tr>
<tr class="separator:ga567f4aba444f1fb55ac796ea3c12b1f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad89636a4c3415f4135e6bba5a2c9ef05"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad89636a4c3415f4135e6bba5a2c9ef05"></a>
typedef enum <a class="el" href="a00021.html#ga273a47c42205f63e7a5457114d5b1e21">_edma_bandwidth</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gad89636a4c3415f4135e6bba5a2c9ef05">edma_bandwidth_t</a></td></tr>
<tr class="memdesc:gad89636a4c3415f4135e6bba5a2c9ef05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bandwidth control. <br/></td></tr>
<tr class="separator:gad89636a4c3415f4135e6bba5a2c9ef05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga50827ea4b70cafb243ce0d3c7bc3b22e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga50827ea4b70cafb243ce0d3c7bc3b22e"></a>
typedef enum <br class="typebreak"/>
<a class="el" href="a00021.html#ga3c4715f55d4d2460fa6ea7e579088eb3">_edma_channel_link_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga50827ea4b70cafb243ce0d3c7bc3b22e">edma_channel_link_type_t</a></td></tr>
<tr class="memdesc:ga50827ea4b70cafb243ce0d3c7bc3b22e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Channel link type. <br/></td></tr>
<tr class="separator:ga50827ea4b70cafb243ce0d3c7bc3b22e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga48adc39f62293fe6079c4d3d6c46478f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga48adc39f62293fe6079c4d3d6c46478f"></a>
typedef enum <a class="el" href="a00021.html#ga4b9e8a6e5ac90d2b80f8b995a9e8e7ef">_edma_interrupt_enable</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga48adc39f62293fe6079c4d3d6c46478f">edma_interrupt_enable_t</a></td></tr>
<tr class="memdesc:ga48adc39f62293fe6079c4d3d6c46478f"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA interrupt source <br/></td></tr>
<tr class="separator:ga48adc39f62293fe6079c4d3d6c46478f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa83dd6eee540d7e11857adad93262ea2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa83dd6eee540d7e11857adad93262ea2"></a>
typedef enum <a class="el" href="a00021.html#ga2ff12bc109f968bb2841fca1a9d3499e">_edma_transfer_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gaa83dd6eee540d7e11857adad93262ea2">edma_transfer_type_t</a></td></tr>
<tr class="memdesc:gaa83dd6eee540d7e11857adad93262ea2"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA transfer type <br/></td></tr>
<tr class="separator:gaa83dd6eee540d7e11857adad93262ea2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf1d2168d9617f37e639bc4d7c516ad09"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00021.html#a00335">_edma_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gaf1d2168d9617f37e639bc4d7c516ad09">edma_config_t</a></td></tr>
<tr class="memdesc:gaf1d2168d9617f37e639bc4d7c516ad09"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA global configuration structure. <a href="#gaf1d2168d9617f37e639bc4d7c516ad09">More...</a><br/></td></tr>
<tr class="separator:gaf1d2168d9617f37e639bc4d7c516ad09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaf79d8c43b2777cfae8cfa4f2c6ed80f"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
<a class="el" href="a00021.html#a00339">_edma_transfer_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gaaf79d8c43b2777cfae8cfa4f2c6ed80f">edma_transfer_config_t</a></td></tr>
<tr class="memdesc:gaaf79d8c43b2777cfae8cfa4f2c6ed80f"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA transfer configuration <a href="#gaaf79d8c43b2777cfae8cfa4f2c6ed80f">More...</a><br/></td></tr>
<tr class="separator:gaaf79d8c43b2777cfae8cfa4f2c6ed80f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab24fe9738be9cca448dec8bb98dfdd83"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab24fe9738be9cca448dec8bb98dfdd83"></a>
typedef struct <br class="typebreak"/>
<a class="el" href="a00021.html#a00334">_edma_channel_Preemption_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gab24fe9738be9cca448dec8bb98dfdd83">edma_channel_Preemption_config_t</a></td></tr>
<tr class="memdesc:gab24fe9738be9cca448dec8bb98dfdd83"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA channel priority configuration <br/></td></tr>
<tr class="separator:gab24fe9738be9cca448dec8bb98dfdd83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad566af76d80682c94afb6c305eae9e0a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad566af76d80682c94afb6c305eae9e0a"></a>
typedef struct <br class="typebreak"/>
<a class="el" href="a00021.html#a00337">_edma_minor_offset_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gad566af76d80682c94afb6c305eae9e0a">edma_minor_offset_config_t</a></td></tr>
<tr class="memdesc:gad566af76d80682c94afb6c305eae9e0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA minor offset configuration <br/></td></tr>
<tr class="separator:gad566af76d80682c94afb6c305eae9e0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacff054f9816fb678fc49f5e66a4d7649"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00021.html#a00338">_edma_tcd</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a></td></tr>
<tr class="memdesc:gacff054f9816fb678fc49f5e66a4d7649"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA TCD. <a href="#gacff054f9816fb678fc49f5e66a4d7649">More...</a><br/></td></tr>
<tr class="separator:gacff054f9816fb678fc49f5e66a4d7649"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ee3a34d12fbb39bc972f62ba6357022"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga9ee3a34d12fbb39bc972f62ba6357022">edma_callback</a> )(struct <a class="el" href="a00021.html#a00336">_edma_handle</a> *handle, void *userData, bool transferDone, uint32_t tcds)</td></tr>
<tr class="memdesc:ga9ee3a34d12fbb39bc972f62ba6357022"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define callback function for eDMA. <a href="#ga9ee3a34d12fbb39bc972f62ba6357022">More...</a><br/></td></tr>
<tr class="separator:ga9ee3a34d12fbb39bc972f62ba6357022"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga00acb9562f35755920b20fde1bc9973e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga00acb9562f35755920b20fde1bc9973e"></a>
typedef struct <a class="el" href="a00021.html#a00336">_edma_handle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a></td></tr>
<tr class="memdesc:ga00acb9562f35755920b20fde1bc9973e"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA transfer handle structure <br/></td></tr>
<tr class="separator:ga00acb9562f35755920b20fde1bc9973e"><td class="memSeparator" colspan="2">&#160;</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:ga4ffcbd8f86285f5c162ae70a6fe155bd"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga4ffcbd8f86285f5c162ae70a6fe155bd">_edma_transfer_size</a> { <br/>
&#160;&#160;<a class="el" href="a00021.html#gga4ffcbd8f86285f5c162ae70a6fe155bdacb4e50cd0e23c0d36edf958be77c8dc2">kEDMA_TransferSize1Bytes</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga4ffcbd8f86285f5c162ae70a6fe155bda589480546c8db2d1372e62a7946fbb2c">kEDMA_TransferSize2Bytes</a> = 0x1U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga4ffcbd8f86285f5c162ae70a6fe155bda4d91559541642b997418406ec927c454">kEDMA_TransferSize4Bytes</a> = 0x2U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga4ffcbd8f86285f5c162ae70a6fe155bda3c361ee4008e6ba8097557e3d4a55ce8">kEDMA_TransferSize8Bytes</a> = 0x3U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga4ffcbd8f86285f5c162ae70a6fe155bda0d4cdfd536f2985eea3e8111eecd3c43">kEDMA_TransferSize16Bytes</a> = 0x4U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga4ffcbd8f86285f5c162ae70a6fe155bdad7e2421e513fc84a29cd20ab47409229">kEDMA_TransferSize32Bytes</a> = 0x5U
<br/>
}</td></tr>
<tr class="memdesc:ga4ffcbd8f86285f5c162ae70a6fe155bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA transfer configuration <a href="a00021.html#ga4ffcbd8f86285f5c162ae70a6fe155bd">More...</a><br/></td></tr>
<tr class="separator:ga4ffcbd8f86285f5c162ae70a6fe155bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1a7d7ef429d6168ce7c9e43cee40d539"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga1a7d7ef429d6168ce7c9e43cee40d539">_edma_modulo</a> { <br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539ab77c38c19ddcc44212b258bdafe2f207">kEDMA_ModuloDisable</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539af7cbe0618a06406e5473ec1aa11195a0">kEDMA_Modulo2bytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539a2eaf98fea83570be353ff21fde4b8d53">kEDMA_Modulo4bytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539a99fad23e0502470cddec1391edc483e2">kEDMA_Modulo8bytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539abd6ec81a3b0822ea6c3a7c77215e85a8">kEDMA_Modulo16bytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539acd0d2322a93a86bb7bb1160217184569">kEDMA_Modulo32bytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539af60e65e2fdc306df458cabaa77c0a62c">kEDMA_Modulo64bytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539ac5b734f88d8fbe08c19f4b881e643ebd">kEDMA_Modulo128bytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539ab6354112d539cb71083057f72a43f282">kEDMA_Modulo256bytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539a56d31f1fa472122b9edf4d8c8d437359">kEDMA_Modulo512bytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539a7b85b92e30afea2d7d2eb11e40751496">kEDMA_Modulo1Kbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539acd26e0c0dc1a6518dca27c0a418df484">kEDMA_Modulo2Kbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539ae9f8fd54c7f183214653a750775b1e1c">kEDMA_Modulo4Kbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539a568ad80f68673d4f57362dc48701aec6">kEDMA_Modulo8Kbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539a6e8595a1168272eab8923212c1cabaee">kEDMA_Modulo16Kbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539af12cea48af625688f7d3a6e9e2d19d56">kEDMA_Modulo32Kbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539aab39052aeb4a70843c6ddd61b94f95a0">kEDMA_Modulo64Kbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539afb80c06c8d24882fdeb592a37673e499">kEDMA_Modulo128Kbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539ae1c82fe430bd6a43cd8bfca46671cca1">kEDMA_Modulo256Kbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539aff7dbf518027bc1d2a84a4dcfe7f0adc">kEDMA_Modulo512Kbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539a48ff619715bb526b6d917d6b37686b8a">kEDMA_Modulo1Mbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539a5c2909e6956a01efc28bb70a73ddb9f5">kEDMA_Modulo2Mbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539a4b07b0456e0aadbde3a32790e423f4d7">kEDMA_Modulo4Mbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539ad4f068091510d3fc90b8a21bd2492a38">kEDMA_Modulo8Mbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539a3ff219951928d6e40f658f612f9106c0">kEDMA_Modulo16Mbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539ade7587c87a42242eb0e47a1dbac5f686">kEDMA_Modulo32Mbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539aedc3a67726be1cdac9385a37556c7056">kEDMA_Modulo64Mbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539a0f2c2ca6e26fcf1edefe6bd091504041">kEDMA_Modulo128Mbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539a50818bce765be0d7ccfac7490242c119">kEDMA_Modulo256Mbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539a2289cd131c9052e9ab097abbff3499e7">kEDMA_Modulo512Mbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539a22c8078316841b5cc5886d506f95a8e3">kEDMA_Modulo1Gbytes</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga1a7d7ef429d6168ce7c9e43cee40d539ab4a779add96a309505f06a540d75340f">kEDMA_Modulo2Gbytes</a>
<br/>
}</td></tr>
<tr class="memdesc:ga1a7d7ef429d6168ce7c9e43cee40d539"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA modulo configuration <a href="a00021.html#ga1a7d7ef429d6168ce7c9e43cee40d539">More...</a><br/></td></tr>
<tr class="separator:ga1a7d7ef429d6168ce7c9e43cee40d539"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga273a47c42205f63e7a5457114d5b1e21"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga273a47c42205f63e7a5457114d5b1e21">_edma_bandwidth</a> { <br/>
&#160;&#160;<a class="el" href="a00021.html#gga273a47c42205f63e7a5457114d5b1e21aeb09bbf3022f40b276ab9b94035ef308">kEDMA_BandwidthStallNone</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga273a47c42205f63e7a5457114d5b1e21a443b7698b1950201d47d97de1b643f3c">kEDMA_BandwidthStall4Cycle</a> = 0x2U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga273a47c42205f63e7a5457114d5b1e21ac21c278bddfbadae35d53cc565bca9d9">kEDMA_BandwidthStall8Cycle</a> = 0x3U
<br/>
}</td></tr>
<tr class="memdesc:ga273a47c42205f63e7a5457114d5b1e21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bandwidth control. <a href="a00021.html#ga273a47c42205f63e7a5457114d5b1e21">More...</a><br/></td></tr>
<tr class="separator:ga273a47c42205f63e7a5457114d5b1e21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3c4715f55d4d2460fa6ea7e579088eb3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga3c4715f55d4d2460fa6ea7e579088eb3">_edma_channel_link_type</a> { <br/>
&#160;&#160;<a class="el" href="a00021.html#gga3c4715f55d4d2460fa6ea7e579088eb3aba8b1349b47c8e99c950c179b5548caa">kEDMA_LinkNone</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga3c4715f55d4d2460fa6ea7e579088eb3a804db702dd385d11a01dd512f3e1606c">kEDMA_MinorLink</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga3c4715f55d4d2460fa6ea7e579088eb3ab9798ac8a18b9632a7d3fabf0bd76881">kEDMA_MajorLink</a>
<br/>
}</td></tr>
<tr class="memdesc:ga3c4715f55d4d2460fa6ea7e579088eb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Channel link type. <a href="a00021.html#ga3c4715f55d4d2460fa6ea7e579088eb3">More...</a><br/></td></tr>
<tr class="separator:ga3c4715f55d4d2460fa6ea7e579088eb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabed82baf7f470b522273a3e37c24c600"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
&#160;&#160;<a class="el" href="a00021.html#ggabed82baf7f470b522273a3e37c24c600a3fc49e0e9df4c15438fac350d2d7da56">kEDMA_DoneFlag</a> = 0x1U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggabed82baf7f470b522273a3e37c24c600a2c5dd54b1cb8bd4917b99a914c7bdc84">kEDMA_ErrorFlag</a> = 0x2U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggabed82baf7f470b522273a3e37c24c600afca58961c7da506e2f1c05451d16f4d9">kEDMA_InterruptFlag</a> = 0x4U
<br/>
}</td></tr>
<tr class="memdesc:gabed82baf7f470b522273a3e37c24c600"><td class="mdescLeft">&#160;</td><td class="mdescRight">_edma_channel_status_flags eDMA channel status flags. <a href="a00021.html#gabed82baf7f470b522273a3e37c24c600">More...</a><br/></td></tr>
<tr class="separator:gabed82baf7f470b522273a3e37c24c600"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab04a0655cd1e3bcac5e8f48c18df1a57"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
&#160;&#160;<a class="el" href="a00021.html#ggab04a0655cd1e3bcac5e8f48c18df1a57a54ca64713f21fd2337d165b273d6f680">kEDMA_DestinationBusErrorFlag</a> = DMA_ES_DBE_MASK,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggab04a0655cd1e3bcac5e8f48c18df1a57a5eb8315759ff492642e8fde45cd3d244">kEDMA_SourceBusErrorFlag</a> = DMA_ES_SBE_MASK,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggab04a0655cd1e3bcac5e8f48c18df1a57a9aeb6aad3c245959ab91944bc0136479">kEDMA_ScatterGatherErrorFlag</a> = DMA_ES_SGE_MASK,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggab04a0655cd1e3bcac5e8f48c18df1a57acc8bc58b1704ba1f4f4ee1533f69c98e">kEDMA_NbytesErrorFlag</a> = DMA_ES_NCE_MASK,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggab04a0655cd1e3bcac5e8f48c18df1a57aa53400970fa05f5d2790f20338aa6d06">kEDMA_DestinationOffsetErrorFlag</a> = DMA_ES_DOE_MASK,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggab04a0655cd1e3bcac5e8f48c18df1a57ae516e9e9db0a946f1565e1c2e3175574">kEDMA_DestinationAddressErrorFlag</a> = DMA_ES_DAE_MASK,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggab04a0655cd1e3bcac5e8f48c18df1a57ad611243e3bd0baed42ed2343e5e575ac">kEDMA_SourceOffsetErrorFlag</a> = DMA_ES_SOE_MASK,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggab04a0655cd1e3bcac5e8f48c18df1a57a4c0642a49305653638e275415320f0f0">kEDMA_SourceAddressErrorFlag</a> = DMA_ES_SAE_MASK,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggab04a0655cd1e3bcac5e8f48c18df1a57a2cc6d4262814dc42f05843199e9540c1">kEDMA_ErrorChannelFlag</a> = DMA_ES_ERRCHN_MASK,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggab04a0655cd1e3bcac5e8f48c18df1a57a6f919249e70bf24808d10ff0aaeedbae">kEDMA_ChannelPriorityErrorFlag</a> = DMA_ES_CPE_MASK,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggab04a0655cd1e3bcac5e8f48c18df1a57a1c6f9d050df7f2f0aa945b5f1c46e230">kEDMA_TransferCanceledFlag</a> = DMA_ES_ECX_MASK,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggab04a0655cd1e3bcac5e8f48c18df1a57ab930c63068a6d7ee6ccb21df993bd48f">kEDMA_ValidFlag</a> = (int)DMA_ES_VLD_MASK
<br/>
}</td></tr>
<tr class="memdesc:gab04a0655cd1e3bcac5e8f48c18df1a57"><td class="mdescLeft">&#160;</td><td class="mdescRight">_edma_error_status_flags eDMA channel error status flags. <a href="a00021.html#gab04a0655cd1e3bcac5e8f48c18df1a57">More...</a><br/></td></tr>
<tr class="separator:gab04a0655cd1e3bcac5e8f48c18df1a57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4b9e8a6e5ac90d2b80f8b995a9e8e7ef"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga4b9e8a6e5ac90d2b80f8b995a9e8e7ef">_edma_interrupt_enable</a> { <br/>
&#160;&#160;<a class="el" href="a00021.html#gga4b9e8a6e5ac90d2b80f8b995a9e8e7efab2be76dc7af93bec6801d76376f924c0">kEDMA_ErrorInterruptEnable</a> = 0x1U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga4b9e8a6e5ac90d2b80f8b995a9e8e7efa19c5998906a159df3204e818033a3c0e">kEDMA_MajorInterruptEnable</a> = DMA_CSR_INTMAJOR_MASK,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga4b9e8a6e5ac90d2b80f8b995a9e8e7efa2f1573636dcd4a54d9189bdee4cf39d0">kEDMA_HalfInterruptEnable</a> = DMA_CSR_INTHALF_MASK
<br/>
}</td></tr>
<tr class="memdesc:ga4b9e8a6e5ac90d2b80f8b995a9e8e7ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA interrupt source <a href="a00021.html#ga4b9e8a6e5ac90d2b80f8b995a9e8e7ef">More...</a><br/></td></tr>
<tr class="separator:ga4b9e8a6e5ac90d2b80f8b995a9e8e7ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2ff12bc109f968bb2841fca1a9d3499e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga2ff12bc109f968bb2841fca1a9d3499e">_edma_transfer_type</a> { <br/>
&#160;&#160;<a class="el" href="a00021.html#gga2ff12bc109f968bb2841fca1a9d3499eaba1ccd03368799d9752bd6001f5373a5">kEDMA_MemoryToMemory</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga2ff12bc109f968bb2841fca1a9d3499ea1041287c7dc311d81017f529a51734e6">kEDMA_PeripheralToMemory</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga2ff12bc109f968bb2841fca1a9d3499ea172d3e1f201639f3157563f4a1a275bf">kEDMA_MemoryToPeripheral</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga2ff12bc109f968bb2841fca1a9d3499ea5c9cc27e04a3c22204b90ba07b860727">kEDMA_PeripheralToPeripheral</a>
<br/>
}</td></tr>
<tr class="memdesc:ga2ff12bc109f968bb2841fca1a9d3499e"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA transfer type <a href="a00021.html#ga2ff12bc109f968bb2841fca1a9d3499e">More...</a><br/></td></tr>
<tr class="separator:ga2ff12bc109f968bb2841fca1a9d3499e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga385c44f6fb256e5716a2302a5b940388"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
&#160;&#160;<a class="el" href="a00021.html#gga385c44f6fb256e5716a2302a5b940388a6d33d9a7019b18917669f16d51085b32">kStatus_EDMA_QueueFull</a> = MAKE_STATUS(kStatusGroup_EDMA, 0),
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga385c44f6fb256e5716a2302a5b940388a96aa3062c73a9f439f63c0ed24f09c07">kStatus_EDMA_Busy</a> = MAKE_STATUS(kStatusGroup_EDMA, 1)
<br/>
}</td></tr>
<tr class="memdesc:ga385c44f6fb256e5716a2302a5b940388"><td class="mdescLeft">&#160;</td><td class="mdescRight">_edma_transfer_status eDMA transfer status <a href="a00021.html#ga385c44f6fb256e5716a2302a5b940388">More...</a><br/></td></tr>
<tr class="separator:ga385c44f6fb256e5716a2302a5b940388"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Driver version</h2></td></tr>
<tr class="memitem:ga5f0841e9527b371724ef4418e6807643"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga5f0841e9527b371724ef4418e6807643">FSL_EDMA_DRIVER_VERSION</a>&#160;&#160;&#160;(<a class="el" href="a00260.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 4, 3))</td></tr>
<tr class="memdesc:ga5f0841e9527b371724ef4418e6807643"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA driver version <a href="#ga5f0841e9527b371724ef4418e6807643">More...</a><br/></td></tr>
<tr class="separator:ga5f0841e9527b371724ef4418e6807643"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
eDMA initialization and de-initialization</h2></td></tr>
<tr class="memitem:gaf7588eb4b54499f0f55c698bd98bc1bb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gaf7588eb4b54499f0f55c698bd98bc1bb">EDMA_Init</a> (DMA_Type *base, const <a class="el" href="a00021.html#gaf1d2168d9617f37e639bc4d7c516ad09">edma_config_t</a> *config)</td></tr>
<tr class="memdesc:gaf7588eb4b54499f0f55c698bd98bc1bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the eDMA peripheral. <a href="#gaf7588eb4b54499f0f55c698bd98bc1bb">More...</a><br/></td></tr>
<tr class="separator:gaf7588eb4b54499f0f55c698bd98bc1bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga29aa2b1f72c154c12305d6615845618c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga29aa2b1f72c154c12305d6615845618c">EDMA_Deinit</a> (DMA_Type *base)</td></tr>
<tr class="memdesc:ga29aa2b1f72c154c12305d6615845618c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deinitializes the eDMA peripheral. <a href="#ga29aa2b1f72c154c12305d6615845618c">More...</a><br/></td></tr>
<tr class="separator:ga29aa2b1f72c154c12305d6615845618c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga23e063167a1b666dcdd5538407c5c948"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga23e063167a1b666dcdd5538407c5c948">EDMA_InstallTCD</a> (DMA_Type *base, uint32_t channel, <a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *tcd)</td></tr>
<tr class="memdesc:ga23e063167a1b666dcdd5538407c5c948"><td class="mdescLeft">&#160;</td><td class="mdescRight">Push content of TCD structure into hardware TCD register. <a href="#ga23e063167a1b666dcdd5538407c5c948">More...</a><br/></td></tr>
<tr class="separator:ga23e063167a1b666dcdd5538407c5c948"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9851dc5addd6a1fc557bfdb625aa5c19"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga9851dc5addd6a1fc557bfdb625aa5c19">EDMA_GetDefaultConfig</a> (<a class="el" href="a00021.html#gaf1d2168d9617f37e639bc4d7c516ad09">edma_config_t</a> *config)</td></tr>
<tr class="memdesc:ga9851dc5addd6a1fc557bfdb625aa5c19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the eDMA default configuration structure. <a href="#ga9851dc5addd6a1fc557bfdb625aa5c19">More...</a><br/></td></tr>
<tr class="separator:ga9851dc5addd6a1fc557bfdb625aa5c19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7957e210d6f4904d42df81508da25d56"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga7957e210d6f4904d42df81508da25d56">EDMA_EnableContinuousChannelLinkMode</a> (DMA_Type *base, bool enable)</td></tr>
<tr class="memdesc:ga7957e210d6f4904d42df81508da25d56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/Disable continuous channel link mode. <a href="#ga7957e210d6f4904d42df81508da25d56">More...</a><br/></td></tr>
<tr class="separator:ga7957e210d6f4904d42df81508da25d56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3b2e736c8b20f41b5df9932452fe9d3c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga3b2e736c8b20f41b5df9932452fe9d3c">EDMA_EnableMinorLoopMapping</a> (DMA_Type *base, bool enable)</td></tr>
<tr class="memdesc:ga3b2e736c8b20f41b5df9932452fe9d3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/Disable minor loop mapping. <a href="#ga3b2e736c8b20f41b5df9932452fe9d3c">More...</a><br/></td></tr>
<tr class="separator:ga3b2e736c8b20f41b5df9932452fe9d3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
eDMA Channel Operation</h2></td></tr>
<tr class="memitem:gaecea06e22455415332bbc342c309cb6b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gaecea06e22455415332bbc342c309cb6b">EDMA_ResetChannel</a> (DMA_Type *base, uint32_t channel)</td></tr>
<tr class="memdesc:gaecea06e22455415332bbc342c309cb6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets all TCD registers to default values. <a href="#gaecea06e22455415332bbc342c309cb6b">More...</a><br/></td></tr>
<tr class="separator:gaecea06e22455415332bbc342c309cb6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaad0c5872dda63e558ee6c62f9bc5eaa8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gaad0c5872dda63e558ee6c62f9bc5eaa8">EDMA_SetTransferConfig</a> (DMA_Type *base, uint32_t channel, const <a class="el" href="a00021.html#gaaf79d8c43b2777cfae8cfa4f2c6ed80f">edma_transfer_config_t</a> *config, <a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *nextTcd)</td></tr>
<tr class="memdesc:gaad0c5872dda63e558ee6c62f9bc5eaa8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures the eDMA transfer attribute. <a href="#gaad0c5872dda63e558ee6c62f9bc5eaa8">More...</a><br/></td></tr>
<tr class="separator:gaad0c5872dda63e558ee6c62f9bc5eaa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae77bdff6263bed3a02291efb8f1146f0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gae77bdff6263bed3a02291efb8f1146f0">EDMA_SetMinorOffsetConfig</a> (DMA_Type *base, uint32_t channel, const <a class="el" href="a00021.html#gad566af76d80682c94afb6c305eae9e0a">edma_minor_offset_config_t</a> *config)</td></tr>
<tr class="memdesc:gae77bdff6263bed3a02291efb8f1146f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures the eDMA minor offset feature. <a href="#gae77bdff6263bed3a02291efb8f1146f0">More...</a><br/></td></tr>
<tr class="separator:gae77bdff6263bed3a02291efb8f1146f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga136076d50d98d4eadfaa9cd592b273e7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga136076d50d98d4eadfaa9cd592b273e7">EDMA_SetChannelPreemptionConfig</a> (DMA_Type *base, uint32_t channel, const <a class="el" href="a00021.html#gab24fe9738be9cca448dec8bb98dfdd83">edma_channel_Preemption_config_t</a> *config)</td></tr>
<tr class="memdesc:ga136076d50d98d4eadfaa9cd592b273e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures the eDMA channel preemption feature. <a href="#ga136076d50d98d4eadfaa9cd592b273e7">More...</a><br/></td></tr>
<tr class="separator:ga136076d50d98d4eadfaa9cd592b273e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8cd3ca8512357b64af15846a2b87edd6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga8cd3ca8512357b64af15846a2b87edd6">EDMA_SetChannelLink</a> (DMA_Type *base, uint32_t channel, <a class="el" href="a00021.html#ga50827ea4b70cafb243ce0d3c7bc3b22e">edma_channel_link_type_t</a> linkType, uint32_t linkedChannel)</td></tr>
<tr class="memdesc:ga8cd3ca8512357b64af15846a2b87edd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the channel link for the eDMA transfer. <a href="#ga8cd3ca8512357b64af15846a2b87edd6">More...</a><br/></td></tr>
<tr class="separator:ga8cd3ca8512357b64af15846a2b87edd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf2997a300751b52e3c2e699e3f2296f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gaf2997a300751b52e3c2e699e3f2296f2">EDMA_SetBandWidth</a> (DMA_Type *base, uint32_t channel, <a class="el" href="a00021.html#gad89636a4c3415f4135e6bba5a2c9ef05">edma_bandwidth_t</a> bandWidth)</td></tr>
<tr class="memdesc:gaf2997a300751b52e3c2e699e3f2296f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the bandwidth for the eDMA transfer. <a href="#gaf2997a300751b52e3c2e699e3f2296f2">More...</a><br/></td></tr>
<tr class="separator:gaf2997a300751b52e3c2e699e3f2296f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa3f4855fe92ed80276487771b9bd2705"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gaa3f4855fe92ed80276487771b9bd2705">EDMA_SetModulo</a> (DMA_Type *base, uint32_t channel, <a class="el" href="a00021.html#ga567f4aba444f1fb55ac796ea3c12b1f6">edma_modulo_t</a> srcModulo, <a class="el" href="a00021.html#ga567f4aba444f1fb55ac796ea3c12b1f6">edma_modulo_t</a> destModulo)</td></tr>
<tr class="memdesc:gaa3f4855fe92ed80276487771b9bd2705"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the source modulo and the destination modulo for the eDMA transfer. <a href="#gaa3f4855fe92ed80276487771b9bd2705">More...</a><br/></td></tr>
<tr class="separator:gaa3f4855fe92ed80276487771b9bd2705"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0e5cbacd0f64515239695b9f94bb78a4"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga0e5cbacd0f64515239695b9f94bb78a4">EDMA_EnableAsyncRequest</a> (DMA_Type *base, uint32_t channel, bool enable)</td></tr>
<tr class="memdesc:ga0e5cbacd0f64515239695b9f94bb78a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables an async request for the eDMA transfer. <a href="#ga0e5cbacd0f64515239695b9f94bb78a4">More...</a><br/></td></tr>
<tr class="separator:ga0e5cbacd0f64515239695b9f94bb78a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac3ef15106efff13ea6a25441fc228349"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gac3ef15106efff13ea6a25441fc228349">EDMA_EnableAutoStopRequest</a> (DMA_Type *base, uint32_t channel, bool enable)</td></tr>
<tr class="memdesc:gac3ef15106efff13ea6a25441fc228349"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables an auto stop request for the eDMA transfer. <a href="#gac3ef15106efff13ea6a25441fc228349">More...</a><br/></td></tr>
<tr class="separator:gac3ef15106efff13ea6a25441fc228349"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga15df898b3b420958f51c4df22dc85b98"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga15df898b3b420958f51c4df22dc85b98">EDMA_EnableChannelInterrupts</a> (DMA_Type *base, uint32_t channel, uint32_t mask)</td></tr>
<tr class="memdesc:ga15df898b3b420958f51c4df22dc85b98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the interrupt source for the eDMA transfer. <a href="#ga15df898b3b420958f51c4df22dc85b98">More...</a><br/></td></tr>
<tr class="separator:ga15df898b3b420958f51c4df22dc85b98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga251561e70531dfcea586b5f1fff9c916"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga251561e70531dfcea586b5f1fff9c916">EDMA_DisableChannelInterrupts</a> (DMA_Type *base, uint32_t channel, uint32_t mask)</td></tr>
<tr class="memdesc:ga251561e70531dfcea586b5f1fff9c916"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the interrupt source for the eDMA transfer. <a href="#ga251561e70531dfcea586b5f1fff9c916">More...</a><br/></td></tr>
<tr class="separator:ga251561e70531dfcea586b5f1fff9c916"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga44f984a5522f544407e43b1147c40cb4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga44f984a5522f544407e43b1147c40cb4">EDMA_SetMajorOffsetConfig</a> (DMA_Type *base, uint32_t channel, int32_t sourceOffset, int32_t destOffset)</td></tr>
<tr class="memdesc:ga44f984a5522f544407e43b1147c40cb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures the eDMA channel TCD major offset feature. <a href="#ga44f984a5522f544407e43b1147c40cb4">More...</a><br/></td></tr>
<tr class="separator:ga44f984a5522f544407e43b1147c40cb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
eDMA TCD Operation</h2></td></tr>
<tr class="memitem:ga3c6239d1c1cd5483fa9b390f568e3066"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga3c6239d1c1cd5483fa9b390f568e3066">EDMA_TcdReset</a> (<a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *tcd)</td></tr>
<tr class="memdesc:ga3c6239d1c1cd5483fa9b390f568e3066"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets all fields to default values for the TCD structure. <a href="#ga3c6239d1c1cd5483fa9b390f568e3066">More...</a><br/></td></tr>
<tr class="separator:ga3c6239d1c1cd5483fa9b390f568e3066"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad7efa07faa29e3acf456fc1cffb3f9d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gad7efa07faa29e3acf456fc1cffb3f9d5">EDMA_TcdSetTransferConfig</a> (<a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *tcd, const <a class="el" href="a00021.html#gaaf79d8c43b2777cfae8cfa4f2c6ed80f">edma_transfer_config_t</a> *config, <a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *nextTcd)</td></tr>
<tr class="memdesc:gad7efa07faa29e3acf456fc1cffb3f9d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures the eDMA TCD transfer attribute. <a href="#gad7efa07faa29e3acf456fc1cffb3f9d5">More...</a><br/></td></tr>
<tr class="separator:gad7efa07faa29e3acf456fc1cffb3f9d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5409f4a24baec461a186df10fe1f8c52"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga5409f4a24baec461a186df10fe1f8c52">EDMA_TcdSetMinorOffsetConfig</a> (<a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *tcd, const <a class="el" href="a00021.html#gad566af76d80682c94afb6c305eae9e0a">edma_minor_offset_config_t</a> *config)</td></tr>
<tr class="memdesc:ga5409f4a24baec461a186df10fe1f8c52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures the eDMA TCD minor offset feature. <a href="#ga5409f4a24baec461a186df10fe1f8c52">More...</a><br/></td></tr>
<tr class="separator:ga5409f4a24baec461a186df10fe1f8c52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga04ee251c7c7efd9ab4f5b2182ef8a626"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga04ee251c7c7efd9ab4f5b2182ef8a626">EDMA_TcdSetChannelLink</a> (<a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *tcd, <a class="el" href="a00021.html#ga50827ea4b70cafb243ce0d3c7bc3b22e">edma_channel_link_type_t</a> linkType, uint32_t linkedChannel)</td></tr>
<tr class="memdesc:ga04ee251c7c7efd9ab4f5b2182ef8a626"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the channel link for the eDMA TCD. <a href="#ga04ee251c7c7efd9ab4f5b2182ef8a626">More...</a><br/></td></tr>
<tr class="separator:ga04ee251c7c7efd9ab4f5b2182ef8a626"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7357cc963fb15ce336ea8fb78f3475a7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga7357cc963fb15ce336ea8fb78f3475a7">EDMA_TcdSetBandWidth</a> (<a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *tcd, <a class="el" href="a00021.html#gad89636a4c3415f4135e6bba5a2c9ef05">edma_bandwidth_t</a> bandWidth)</td></tr>
<tr class="memdesc:ga7357cc963fb15ce336ea8fb78f3475a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the bandwidth for the eDMA TCD. <a href="#ga7357cc963fb15ce336ea8fb78f3475a7">More...</a><br/></td></tr>
<tr class="separator:ga7357cc963fb15ce336ea8fb78f3475a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga998211b8fa494160251f2bdfae2d67b4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga998211b8fa494160251f2bdfae2d67b4">EDMA_TcdSetModulo</a> (<a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *tcd, <a class="el" href="a00021.html#ga567f4aba444f1fb55ac796ea3c12b1f6">edma_modulo_t</a> srcModulo, <a class="el" href="a00021.html#ga567f4aba444f1fb55ac796ea3c12b1f6">edma_modulo_t</a> destModulo)</td></tr>
<tr class="memdesc:ga998211b8fa494160251f2bdfae2d67b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the source modulo and the destination modulo for the eDMA TCD. <a href="#ga998211b8fa494160251f2bdfae2d67b4">More...</a><br/></td></tr>
<tr class="separator:ga998211b8fa494160251f2bdfae2d67b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabc58ab357e8425a3211048a77ca5ed82"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gabc58ab357e8425a3211048a77ca5ed82">EDMA_TcdEnableAutoStopRequest</a> (<a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *tcd, bool enable)</td></tr>
<tr class="memdesc:gabc58ab357e8425a3211048a77ca5ed82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the auto stop request for the eDMA TCD. <a href="#gabc58ab357e8425a3211048a77ca5ed82">More...</a><br/></td></tr>
<tr class="separator:gabc58ab357e8425a3211048a77ca5ed82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaff194ee32f2848aa721f8d65f4329fce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gaff194ee32f2848aa721f8d65f4329fce">EDMA_TcdEnableInterrupts</a> (<a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *tcd, uint32_t mask)</td></tr>
<tr class="memdesc:gaff194ee32f2848aa721f8d65f4329fce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the interrupt source for the eDMA TCD. <a href="#gaff194ee32f2848aa721f8d65f4329fce">More...</a><br/></td></tr>
<tr class="separator:gaff194ee32f2848aa721f8d65f4329fce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1dad41c69a12e8abb772f60c66d9f162"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga1dad41c69a12e8abb772f60c66d9f162">EDMA_TcdDisableInterrupts</a> (<a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *tcd, uint32_t mask)</td></tr>
<tr class="memdesc:ga1dad41c69a12e8abb772f60c66d9f162"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the interrupt source for the eDMA TCD. <a href="#ga1dad41c69a12e8abb772f60c66d9f162">More...</a><br/></td></tr>
<tr class="separator:ga1dad41c69a12e8abb772f60c66d9f162"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1de61e7f86f4f9f00f757dafe2dbc5d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga1de61e7f86f4f9f00f757dafe2dbc5d5">EDMA_TcdSetMajorOffsetConfig</a> (<a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *tcd, int32_t sourceOffset, int32_t destOffset)</td></tr>
<tr class="memdesc:ga1de61e7f86f4f9f00f757dafe2dbc5d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures the eDMA TCD major offset feature. <a href="#ga1de61e7f86f4f9f00f757dafe2dbc5d5">More...</a><br/></td></tr>
<tr class="separator:ga1de61e7f86f4f9f00f757dafe2dbc5d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
eDMA Channel Transfer Operation</h2></td></tr>
<tr class="memitem:gaabbec6b59a4313df50af39872743deaf"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gaabbec6b59a4313df50af39872743deaf">EDMA_EnableChannelRequest</a> (DMA_Type *base, uint32_t channel)</td></tr>
<tr class="memdesc:gaabbec6b59a4313df50af39872743deaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the eDMA hardware channel request. <a href="#gaabbec6b59a4313df50af39872743deaf">More...</a><br/></td></tr>
<tr class="separator:gaabbec6b59a4313df50af39872743deaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga44708108a447777f25e322063df70c95"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga44708108a447777f25e322063df70c95">EDMA_DisableChannelRequest</a> (DMA_Type *base, uint32_t channel)</td></tr>
<tr class="memdesc:ga44708108a447777f25e322063df70c95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the eDMA hardware channel request. <a href="#ga44708108a447777f25e322063df70c95">More...</a><br/></td></tr>
<tr class="separator:ga44708108a447777f25e322063df70c95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga38aa18611518af3211f23044527d6992"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga38aa18611518af3211f23044527d6992">EDMA_TriggerChannelStart</a> (DMA_Type *base, uint32_t channel)</td></tr>
<tr class="memdesc:ga38aa18611518af3211f23044527d6992"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts the eDMA transfer by using the software trigger. <a href="#ga38aa18611518af3211f23044527d6992">More...</a><br/></td></tr>
<tr class="separator:ga38aa18611518af3211f23044527d6992"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
eDMA Channel Status Operation</h2></td></tr>
<tr class="memitem:ga097a1bad709b591528fc967867e98d14"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga097a1bad709b591528fc967867e98d14">EDMA_GetRemainingMajorLoopCount</a> (DMA_Type *base, uint32_t channel)</td></tr>
<tr class="memdesc:ga097a1bad709b591528fc967867e98d14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the remaining major loop count from the eDMA current channel TCD. <a href="#ga097a1bad709b591528fc967867e98d14">More...</a><br/></td></tr>
<tr class="separator:ga097a1bad709b591528fc967867e98d14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2416059ab1bd9c51df50bf78f0f98221"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga2416059ab1bd9c51df50bf78f0f98221">EDMA_GetErrorStatusFlags</a> (DMA_Type *base)</td></tr>
<tr class="memdesc:ga2416059ab1bd9c51df50bf78f0f98221"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the eDMA channel error status flags. <a href="#ga2416059ab1bd9c51df50bf78f0f98221">More...</a><br/></td></tr>
<tr class="separator:ga2416059ab1bd9c51df50bf78f0f98221"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6e33fe1b55eb7296b1c2cb440c63bf0e"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga6e33fe1b55eb7296b1c2cb440c63bf0e">EDMA_GetChannelStatusFlags</a> (DMA_Type *base, uint32_t channel)</td></tr>
<tr class="memdesc:ga6e33fe1b55eb7296b1c2cb440c63bf0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the eDMA channel status flags. <a href="#ga6e33fe1b55eb7296b1c2cb440c63bf0e">More...</a><br/></td></tr>
<tr class="separator:ga6e33fe1b55eb7296b1c2cb440c63bf0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4575eda0bdf9bbec225cdb322bfadb97"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga4575eda0bdf9bbec225cdb322bfadb97">EDMA_ClearChannelStatusFlags</a> (DMA_Type *base, uint32_t channel, uint32_t mask)</td></tr>
<tr class="memdesc:ga4575eda0bdf9bbec225cdb322bfadb97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the eDMA channel status flags. <a href="#ga4575eda0bdf9bbec225cdb322bfadb97">More...</a><br/></td></tr>
<tr class="separator:ga4575eda0bdf9bbec225cdb322bfadb97"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
eDMA Transactional Operation</h2></td></tr>
<tr class="memitem:gae71842684e693908395784e8b7f7ef55"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gae71842684e693908395784e8b7f7ef55">EDMA_CreateHandle</a> (<a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *handle, DMA_Type *base, uint32_t channel)</td></tr>
<tr class="memdesc:gae71842684e693908395784e8b7f7ef55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates the eDMA handle. <a href="#gae71842684e693908395784e8b7f7ef55">More...</a><br/></td></tr>
<tr class="separator:gae71842684e693908395784e8b7f7ef55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga61e4c8c8c4292918fe976a9071fa68e2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga61e4c8c8c4292918fe976a9071fa68e2">EDMA_InstallTCDMemory</a> (<a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *handle, <a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *tcdPool, uint32_t tcdSize)</td></tr>
<tr class="memdesc:ga61e4c8c8c4292918fe976a9071fa68e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Installs the TCDs memory pool into the eDMA handle. <a href="#ga61e4c8c8c4292918fe976a9071fa68e2">More...</a><br/></td></tr>
<tr class="separator:ga61e4c8c8c4292918fe976a9071fa68e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga945ae6f5db8b32c9b39ec0954073d65d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga945ae6f5db8b32c9b39ec0954073d65d">EDMA_SetCallback</a> (<a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *handle, <a class="el" href="a00021.html#ga9ee3a34d12fbb39bc972f62ba6357022">edma_callback</a> callback, void *userData)</td></tr>
<tr class="memdesc:ga945ae6f5db8b32c9b39ec0954073d65d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Installs a callback function for the eDMA transfer. <a href="#ga945ae6f5db8b32c9b39ec0954073d65d">More...</a><br/></td></tr>
<tr class="separator:ga945ae6f5db8b32c9b39ec0954073d65d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5d1bb30d93e3fd08656d77f0e3a9f75f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga5d1bb30d93e3fd08656d77f0e3a9f75f">EDMA_PrepareTransferConfig</a> (<a class="el" href="a00021.html#gaaf79d8c43b2777cfae8cfa4f2c6ed80f">edma_transfer_config_t</a> *config, void *srcAddr, uint32_t srcWidth, int16_t srcOffset, void *destAddr, uint32_t destWidth, int16_t destOffset, uint32_t bytesEachRequest, uint32_t transferBytes)</td></tr>
<tr class="memdesc:ga5d1bb30d93e3fd08656d77f0e3a9f75f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepares the eDMA transfer structure configurations. <a href="#ga5d1bb30d93e3fd08656d77f0e3a9f75f">More...</a><br/></td></tr>
<tr class="separator:ga5d1bb30d93e3fd08656d77f0e3a9f75f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7b9fea80d9316b081f4dfb33b393bbb0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga7b9fea80d9316b081f4dfb33b393bbb0">EDMA_PrepareTransfer</a> (<a class="el" href="a00021.html#gaaf79d8c43b2777cfae8cfa4f2c6ed80f">edma_transfer_config_t</a> *config, void *srcAddr, uint32_t srcWidth, void *destAddr, uint32_t destWidth, uint32_t bytesEachRequest, uint32_t transferBytes, <a class="el" href="a00021.html#gaa83dd6eee540d7e11857adad93262ea2">edma_transfer_type_t</a> transferType)</td></tr>
<tr class="memdesc:ga7b9fea80d9316b081f4dfb33b393bbb0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepares the eDMA transfer structure. <a href="#ga7b9fea80d9316b081f4dfb33b393bbb0">More...</a><br/></td></tr>
<tr class="separator:ga7b9fea80d9316b081f4dfb33b393bbb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a78ca4c4c941f0ba5fa60033b81b61b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00260.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga8a78ca4c4c941f0ba5fa60033b81b61b">EDMA_SubmitTransfer</a> (<a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *handle, const <a class="el" href="a00021.html#gaaf79d8c43b2777cfae8cfa4f2c6ed80f">edma_transfer_config_t</a> *config)</td></tr>
<tr class="memdesc:ga8a78ca4c4c941f0ba5fa60033b81b61b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Submits the eDMA transfer request. <a href="#ga8a78ca4c4c941f0ba5fa60033b81b61b">More...</a><br/></td></tr>
<tr class="separator:ga8a78ca4c4c941f0ba5fa60033b81b61b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab4a5570a9a0936f6666ec3c6a619296f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gab4a5570a9a0936f6666ec3c6a619296f">EDMA_StartTransfer</a> (<a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *handle)</td></tr>
<tr class="memdesc:gab4a5570a9a0936f6666ec3c6a619296f"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA starts transfer. <a href="#gab4a5570a9a0936f6666ec3c6a619296f">More...</a><br/></td></tr>
<tr class="separator:gab4a5570a9a0936f6666ec3c6a619296f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga253a133e7834d7cb958911a05acc16b8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga253a133e7834d7cb958911a05acc16b8">EDMA_StopTransfer</a> (<a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *handle)</td></tr>
<tr class="memdesc:ga253a133e7834d7cb958911a05acc16b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA stops transfer. <a href="#ga253a133e7834d7cb958911a05acc16b8">More...</a><br/></td></tr>
<tr class="separator:ga253a133e7834d7cb958911a05acc16b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2098cf6995bc79b25c5c9588f1c711e9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga2098cf6995bc79b25c5c9588f1c711e9">EDMA_AbortTransfer</a> (<a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *handle)</td></tr>
<tr class="memdesc:ga2098cf6995bc79b25c5c9588f1c711e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA aborts transfer. <a href="#ga2098cf6995bc79b25c5c9588f1c711e9">More...</a><br/></td></tr>
<tr class="separator:ga2098cf6995bc79b25c5c9588f1c711e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga491de73a29d57aca475bbfe70a7a628e"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga491de73a29d57aca475bbfe70a7a628e">EDMA_GetUnusedTCDNumber</a> (<a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *handle)</td></tr>
<tr class="memdesc:ga491de73a29d57aca475bbfe70a7a628e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get unused TCD slot number. <a href="#ga491de73a29d57aca475bbfe70a7a628e">More...</a><br/></td></tr>
<tr class="separator:ga491de73a29d57aca475bbfe70a7a628e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b97ab97e7bc0b5f15d905bae8341950"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga2b97ab97e7bc0b5f15d905bae8341950">EDMA_GetNextTCDAddress</a> (<a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *handle)</td></tr>
<tr class="memdesc:ga2b97ab97e7bc0b5f15d905bae8341950"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the next tcd address. <a href="#ga2b97ab97e7bc0b5f15d905bae8341950">More...</a><br/></td></tr>
<tr class="separator:ga2b97ab97e7bc0b5f15d905bae8341950"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaebf4a6a6000c296d3ab795aae77b65a0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gaebf4a6a6000c296d3ab795aae77b65a0">EDMA_HandleIRQ</a> (<a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *handle)</td></tr>
<tr class="memdesc:gaebf4a6a6000c296d3ab795aae77b65a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA IRQ handler for the current major loop transfer completion. <a href="#gaebf4a6a6000c296d3ab795aae77b65a0">More...</a><br/></td></tr>
<tr class="separator:gaebf4a6a6000c296d3ab795aae77b65a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="a00335" id="a00335"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _edma_config</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a2f5753be86f4c45b162a32ddd89c8fd1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a2f5753be86f4c45b162a32ddd89c8fd1">enableContinuousLinkMode</a></td></tr>
<tr class="memdesc:a2f5753be86f4c45b162a32ddd89c8fd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable (true) continuous link mode. <a href="#a2f5753be86f4c45b162a32ddd89c8fd1">More...</a><br/></td></tr>
<tr class="separator:a2f5753be86f4c45b162a32ddd89c8fd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a921adebbd4948fec2817459133f32b80"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a921adebbd4948fec2817459133f32b80">enableHaltOnError</a></td></tr>
<tr class="memdesc:a921adebbd4948fec2817459133f32b80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable (true) transfer halt on error. <a href="#a921adebbd4948fec2817459133f32b80">More...</a><br/></td></tr>
<tr class="separator:a921adebbd4948fec2817459133f32b80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab556e6a55d0b93c23665f5958ad3a173"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab556e6a55d0b93c23665f5958ad3a173"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ab556e6a55d0b93c23665f5958ad3a173">enableRoundRobinArbitration</a></td></tr>
<tr class="memdesc:ab556e6a55d0b93c23665f5958ad3a173"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable (true) round robin channel arbitration method or fixed priority arbitration is used for channel selection. <br/></td></tr>
<tr class="separator:ab556e6a55d0b93c23665f5958ad3a173"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a9f1a4e9f410a0f3271516584e61b88"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a5a9f1a4e9f410a0f3271516584e61b88">enableDebugMode</a></td></tr>
<tr class="memdesc:a5a9f1a4e9f410a0f3271516584e61b88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable(true) eDMA debug mode. <a href="#a5a9f1a4e9f410a0f3271516584e61b88">More...</a><br/></td></tr>
<tr class="separator:a5a9f1a4e9f410a0f3271516584e61b88"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a2f5753be86f4c45b162a32ddd89c8fd1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _edma_config::enableContinuousLinkMode</td>
</tr>
</table>
</div><div class="memdoc">
<p>Upon minor loop completion, the channel activates again if that channel has a minor loop channel link enabled and the link channel is itself. </p>
</div>
</div>
<a class="anchor" id="a921adebbd4948fec2817459133f32b80"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _edma_config::enableHaltOnError</td>
</tr>
</table>
</div><div class="memdoc">
<p>Any error causes the HALT bit to set. Subsequently, all service requests are ignored until the HALT bit is cleared. </p>
</div>
</div>
<a class="anchor" id="a5a9f1a4e9f410a0f3271516584e61b88"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _edma_config::enableDebugMode</td>
</tr>
</table>
</div><div class="memdoc">
<p>When in debug mode, the eDMA stalls the start of a new channel. Executing channels are allowed to complete. </p>
</div>
</div>
</div>
</div>
<a name="a00339" id="a00339"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _edma_transfer_config</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"><p>This structure configures the source/destination transfer attribute. </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:ad18d4df5ad6fe40eafbe14247eaf5de1"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ad18d4df5ad6fe40eafbe14247eaf5de1">srcAddr</a></td></tr>
<tr class="memdesc:ad18d4df5ad6fe40eafbe14247eaf5de1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Source data address. <a href="#ad18d4df5ad6fe40eafbe14247eaf5de1">More...</a><br/></td></tr>
<tr class="separator:ad18d4df5ad6fe40eafbe14247eaf5de1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7081ee578053abd938d22ba10ecd73f3"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a7081ee578053abd938d22ba10ecd73f3">destAddr</a></td></tr>
<tr class="memdesc:a7081ee578053abd938d22ba10ecd73f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destination data address. <a href="#a7081ee578053abd938d22ba10ecd73f3">More...</a><br/></td></tr>
<tr class="separator:a7081ee578053abd938d22ba10ecd73f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82b15361a50d8dcbfc20d40fc9ba1bae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#ga3cd26ca8831986959f668621f2e52d32">edma_transfer_size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a82b15361a50d8dcbfc20d40fc9ba1bae">srcTransferSize</a></td></tr>
<tr class="memdesc:a82b15361a50d8dcbfc20d40fc9ba1bae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Source data transfer size. <a href="#a82b15361a50d8dcbfc20d40fc9ba1bae">More...</a><br/></td></tr>
<tr class="separator:a82b15361a50d8dcbfc20d40fc9ba1bae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a124f88bd560bc1a3ef0418a0a30105f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#ga3cd26ca8831986959f668621f2e52d32">edma_transfer_size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a124f88bd560bc1a3ef0418a0a30105f0">destTransferSize</a></td></tr>
<tr class="memdesc:a124f88bd560bc1a3ef0418a0a30105f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destination data transfer size. <a href="#a124f88bd560bc1a3ef0418a0a30105f0">More...</a><br/></td></tr>
<tr class="separator:a124f88bd560bc1a3ef0418a0a30105f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3641461b86e9027c5637020e9a288cbd"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a3641461b86e9027c5637020e9a288cbd">srcOffset</a></td></tr>
<tr class="memdesc:a3641461b86e9027c5637020e9a288cbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sign-extended offset applied to the current source address to form the next-state value as each source read is completed. <a href="#a3641461b86e9027c5637020e9a288cbd">More...</a><br/></td></tr>
<tr class="separator:a3641461b86e9027c5637020e9a288cbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a189f5e87427eb8cf7e3990fde8179e55"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a189f5e87427eb8cf7e3990fde8179e55">destOffset</a></td></tr>
<tr class="memdesc:a189f5e87427eb8cf7e3990fde8179e55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sign-extended offset applied to the current destination address to form the next-state value as each destination write is completed. <a href="#a189f5e87427eb8cf7e3990fde8179e55">More...</a><br/></td></tr>
<tr class="separator:a189f5e87427eb8cf7e3990fde8179e55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a0cb03809d9710d92eee8842254ad91"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9a0cb03809d9710d92eee8842254ad91"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a9a0cb03809d9710d92eee8842254ad91">minorLoopBytes</a></td></tr>
<tr class="memdesc:a9a0cb03809d9710d92eee8842254ad91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bytes to transfer in a minor loop. <br/></td></tr>
<tr class="separator:a9a0cb03809d9710d92eee8842254ad91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3263406ba0ddf6b58d3c3e99d1aa1a72"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a3263406ba0ddf6b58d3c3e99d1aa1a72">majorLoopCounts</a></td></tr>
<tr class="memdesc:a3263406ba0ddf6b58d3c3e99d1aa1a72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Major loop iteration count. <a href="#a3263406ba0ddf6b58d3c3e99d1aa1a72">More...</a><br/></td></tr>
<tr class="separator:a3263406ba0ddf6b58d3c3e99d1aa1a72"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="ad18d4df5ad6fe40eafbe14247eaf5de1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _edma_transfer_config::srcAddr</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7081ee578053abd938d22ba10ecd73f3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _edma_transfer_config::destAddr</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a82b15361a50d8dcbfc20d40fc9ba1bae"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#ga3cd26ca8831986959f668621f2e52d32">edma_transfer_size_t</a> _edma_transfer_config::srcTransferSize</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a124f88bd560bc1a3ef0418a0a30105f0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#ga3cd26ca8831986959f668621f2e52d32">edma_transfer_size_t</a> _edma_transfer_config::destTransferSize</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a3641461b86e9027c5637020e9a288cbd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int16_t _edma_transfer_config::srcOffset</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a189f5e87427eb8cf7e3990fde8179e55"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int16_t _edma_transfer_config::destOffset</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a3263406ba0ddf6b58d3c3e99d1aa1a72"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _edma_transfer_config::majorLoopCounts</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="a00334" id="a00334"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _edma_channel_Preemption_config</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:aa70af51bcec6f44932b76a492f98bf1a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa70af51bcec6f44932b76a492f98bf1a"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#aa70af51bcec6f44932b76a492f98bf1a">enableChannelPreemption</a></td></tr>
<tr class="memdesc:aa70af51bcec6f44932b76a492f98bf1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">If true: a channel can be suspended by other channel with higher priority. <br/></td></tr>
<tr class="separator:aa70af51bcec6f44932b76a492f98bf1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a965df5c57cd4d2e3c61be4e02c1fb115"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a965df5c57cd4d2e3c61be4e02c1fb115"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a965df5c57cd4d2e3c61be4e02c1fb115">enablePreemptAbility</a></td></tr>
<tr class="memdesc:a965df5c57cd4d2e3c61be4e02c1fb115"><td class="mdescLeft">&#160;</td><td class="mdescRight">If true: a channel can suspend other channel with low priority. <br/></td></tr>
<tr class="separator:a965df5c57cd4d2e3c61be4e02c1fb115"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15330f71acbe244f11d9bdae6aa8bbfa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a15330f71acbe244f11d9bdae6aa8bbfa"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a15330f71acbe244f11d9bdae6aa8bbfa">channelPriority</a></td></tr>
<tr class="memdesc:a15330f71acbe244f11d9bdae6aa8bbfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Channel priority. <br/></td></tr>
<tr class="separator:a15330f71acbe244f11d9bdae6aa8bbfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div>
</div>
<a name="a00337" id="a00337"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _edma_minor_offset_config</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:ad372a9eaf48876bd7ee01f0abff9fa8e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ad372a9eaf48876bd7ee01f0abff9fa8e">enableSrcMinorOffset</a></td></tr>
<tr class="memdesc:ad372a9eaf48876bd7ee01f0abff9fa8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable(true) or Disable(false) source minor loop offset. <a href="#ad372a9eaf48876bd7ee01f0abff9fa8e">More...</a><br/></td></tr>
<tr class="separator:ad372a9eaf48876bd7ee01f0abff9fa8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd3047acc6f7952f6428a8c6a47e4733"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#abd3047acc6f7952f6428a8c6a47e4733">enableDestMinorOffset</a></td></tr>
<tr class="memdesc:abd3047acc6f7952f6428a8c6a47e4733"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable(true) or Disable(false) destination minor loop offset. <a href="#abd3047acc6f7952f6428a8c6a47e4733">More...</a><br/></td></tr>
<tr class="separator:abd3047acc6f7952f6428a8c6a47e4733"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69981f5e94bebb1a210273b9ae4b773d"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a69981f5e94bebb1a210273b9ae4b773d">minorOffset</a></td></tr>
<tr class="memdesc:a69981f5e94bebb1a210273b9ae4b773d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Offset for a minor loop mapping. <a href="#a69981f5e94bebb1a210273b9ae4b773d">More...</a><br/></td></tr>
<tr class="separator:a69981f5e94bebb1a210273b9ae4b773d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="ad372a9eaf48876bd7ee01f0abff9fa8e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _edma_minor_offset_config::enableSrcMinorOffset</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="abd3047acc6f7952f6428a8c6a47e4733"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _edma_minor_offset_config::enableDestMinorOffset</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a69981f5e94bebb1a210273b9ae4b773d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _edma_minor_offset_config::minorOffset</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="a00338" id="a00338"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _edma_tcd</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"><p>This structure is same as TCD register which is described in reference manual, and is used to configure the scatter/gather feature as a next hardware TCD. </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:aa5cfe412d48ae01ee972d177a918f2e7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa5cfe412d48ae01ee972d177a918f2e7"></a>
__IO uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#aa5cfe412d48ae01ee972d177a918f2e7">SADDR</a></td></tr>
<tr class="memdesc:aa5cfe412d48ae01ee972d177a918f2e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">SADDR register, used to save source address. <br/></td></tr>
<tr class="separator:aa5cfe412d48ae01ee972d177a918f2e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad09fe59dbe1d8b5219fa5ef039c822e7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad09fe59dbe1d8b5219fa5ef039c822e7"></a>
__IO uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ad09fe59dbe1d8b5219fa5ef039c822e7">SOFF</a></td></tr>
<tr class="memdesc:ad09fe59dbe1d8b5219fa5ef039c822e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">SOFF register, save offset bytes every transfer. <br/></td></tr>
<tr class="separator:ad09fe59dbe1d8b5219fa5ef039c822e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adaf5bd1c5cd5530c283ea329531dd54b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adaf5bd1c5cd5530c283ea329531dd54b"></a>
__IO uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#adaf5bd1c5cd5530c283ea329531dd54b">ATTR</a></td></tr>
<tr class="memdesc:adaf5bd1c5cd5530c283ea329531dd54b"><td class="mdescLeft">&#160;</td><td class="mdescRight">ATTR register, source/destination transfer size and modulo. <br/></td></tr>
<tr class="separator:adaf5bd1c5cd5530c283ea329531dd54b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad18f3c5a19e9bb70c46541ce7caa537c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad18f3c5a19e9bb70c46541ce7caa537c"></a>
__IO uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ad18f3c5a19e9bb70c46541ce7caa537c">NBYTES</a></td></tr>
<tr class="memdesc:ad18f3c5a19e9bb70c46541ce7caa537c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Nbytes register, minor loop length in bytes. <br/></td></tr>
<tr class="separator:ad18f3c5a19e9bb70c46541ce7caa537c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7227caadb70fa2a46868f292c845afe9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7227caadb70fa2a46868f292c845afe9"></a>
__IO uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a7227caadb70fa2a46868f292c845afe9">SLAST</a></td></tr>
<tr class="memdesc:a7227caadb70fa2a46868f292c845afe9"><td class="mdescLeft">&#160;</td><td class="mdescRight">SLAST register. <br/></td></tr>
<tr class="separator:a7227caadb70fa2a46868f292c845afe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3926ac0ce1799d7318bcda727187356c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3926ac0ce1799d7318bcda727187356c"></a>
__IO uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a3926ac0ce1799d7318bcda727187356c">DADDR</a></td></tr>
<tr class="memdesc:a3926ac0ce1799d7318bcda727187356c"><td class="mdescLeft">&#160;</td><td class="mdescRight">DADDR register, used for destination address. <br/></td></tr>
<tr class="separator:a3926ac0ce1799d7318bcda727187356c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6ba8fab607c4d44e50ac420d457b653"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab6ba8fab607c4d44e50ac420d457b653"></a>
__IO uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ab6ba8fab607c4d44e50ac420d457b653">DOFF</a></td></tr>
<tr class="memdesc:ab6ba8fab607c4d44e50ac420d457b653"><td class="mdescLeft">&#160;</td><td class="mdescRight">DOFF register, used for destination offset. <br/></td></tr>
<tr class="separator:ab6ba8fab607c4d44e50ac420d457b653"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e3d47e76f36ce26cf8abece509d1300"><td class="memItemLeft" align="right" valign="top">__IO uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a8e3d47e76f36ce26cf8abece509d1300">CITER</a></td></tr>
<tr class="memdesc:a8e3d47e76f36ce26cf8abece509d1300"><td class="mdescLeft">&#160;</td><td class="mdescRight">CITER register, current minor loop numbers, for unfinished minor loop. <a href="#a8e3d47e76f36ce26cf8abece509d1300">More...</a><br/></td></tr>
<tr class="separator:a8e3d47e76f36ce26cf8abece509d1300"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f04b495cedf5a2c9329eb6ead13950b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f04b495cedf5a2c9329eb6ead13950b"></a>
__IO uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a7f04b495cedf5a2c9329eb6ead13950b">DLAST_SGA</a></td></tr>
<tr class="memdesc:a7f04b495cedf5a2c9329eb6ead13950b"><td class="mdescLeft">&#160;</td><td class="mdescRight">DLASTSGA register, next tcd address used in scatter-gather mode. <br/></td></tr>
<tr class="separator:a7f04b495cedf5a2c9329eb6ead13950b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6090b3e353ea079cd48f726e898cc98b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6090b3e353ea079cd48f726e898cc98b"></a>
__IO uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a6090b3e353ea079cd48f726e898cc98b">CSR</a></td></tr>
<tr class="memdesc:a6090b3e353ea079cd48f726e898cc98b"><td class="mdescLeft">&#160;</td><td class="mdescRight">CSR register, for TCD control status. <br/></td></tr>
<tr class="separator:a6090b3e353ea079cd48f726e898cc98b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61981659b3b26d3b2f04ad3ed0ec8b5d"><td class="memItemLeft" align="right" valign="top">__IO uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a61981659b3b26d3b2f04ad3ed0ec8b5d">BITER</a></td></tr>
<tr class="memdesc:a61981659b3b26d3b2f04ad3ed0ec8b5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">BITER register, begin minor loop count. <a href="#a61981659b3b26d3b2f04ad3ed0ec8b5d">More...</a><br/></td></tr>
<tr class="separator:a61981659b3b26d3b2f04ad3ed0ec8b5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a8e3d47e76f36ce26cf8abece509d1300"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__IO uint16_t _edma_tcd::CITER</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a61981659b3b26d3b2f04ad3ed0ec8b5d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__IO uint16_t _edma_tcd::BITER</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="a00336" id="a00336"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _edma_handle</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a477ceaab5626a5283c7f21bbf0365ba7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#ga9ee3a34d12fbb39bc972f62ba6357022">edma_callback</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a477ceaab5626a5283c7f21bbf0365ba7">callback</a></td></tr>
<tr class="memdesc:a477ceaab5626a5283c7f21bbf0365ba7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function for major count exhausted. <a href="#a477ceaab5626a5283c7f21bbf0365ba7">More...</a><br/></td></tr>
<tr class="separator:a477ceaab5626a5283c7f21bbf0365ba7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7ae511b440ea695410a84a8c8510ada"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ae7ae511b440ea695410a84a8c8510ada">userData</a></td></tr>
<tr class="memdesc:ae7ae511b440ea695410a84a8c8510ada"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function parameter. <a href="#ae7ae511b440ea695410a84a8c8510ada">More...</a><br/></td></tr>
<tr class="separator:ae7ae511b440ea695410a84a8c8510ada"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a224fed6f3c431fee4bef697e39d609fe"><td class="memItemLeft" align="right" valign="top">DMA_Type *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a224fed6f3c431fee4bef697e39d609fe">base</a></td></tr>
<tr class="memdesc:a224fed6f3c431fee4bef697e39d609fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA peripheral base address. <a href="#a224fed6f3c431fee4bef697e39d609fe">More...</a><br/></td></tr>
<tr class="separator:a224fed6f3c431fee4bef697e39d609fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a764e6c2f7a4be497385b3be22c833cf0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a764e6c2f7a4be497385b3be22c833cf0">tcdPool</a></td></tr>
<tr class="memdesc:a764e6c2f7a4be497385b3be22c833cf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to memory stored TCDs. <a href="#a764e6c2f7a4be497385b3be22c833cf0">More...</a><br/></td></tr>
<tr class="separator:a764e6c2f7a4be497385b3be22c833cf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab685b8268377f03b6c660ceca8f119c3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ab685b8268377f03b6c660ceca8f119c3">channel</a></td></tr>
<tr class="memdesc:ab685b8268377f03b6c660ceca8f119c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">eDMA channel number. <a href="#ab685b8268377f03b6c660ceca8f119c3">More...</a><br/></td></tr>
<tr class="separator:ab685b8268377f03b6c660ceca8f119c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23541d41c3b2d7c067d03882cf12afc9"><td class="memItemLeft" align="right" valign="top">volatile int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a23541d41c3b2d7c067d03882cf12afc9">header</a></td></tr>
<tr class="memdesc:a23541d41c3b2d7c067d03882cf12afc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">The first TCD index. <a href="#a23541d41c3b2d7c067d03882cf12afc9">More...</a><br/></td></tr>
<tr class="separator:a23541d41c3b2d7c067d03882cf12afc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4166d825a2b7056e658c76eda4d8f1e"><td class="memItemLeft" align="right" valign="top">volatile int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ad4166d825a2b7056e658c76eda4d8f1e">tail</a></td></tr>
<tr class="memdesc:ad4166d825a2b7056e658c76eda4d8f1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The last TCD index. <a href="#ad4166d825a2b7056e658c76eda4d8f1e">More...</a><br/></td></tr>
<tr class="separator:ad4166d825a2b7056e658c76eda4d8f1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6803c59bbed8716fc173a729329e3b66"><td class="memItemLeft" align="right" valign="top">volatile int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a6803c59bbed8716fc173a729329e3b66">tcdUsed</a></td></tr>
<tr class="memdesc:a6803c59bbed8716fc173a729329e3b66"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of used TCD slots. <a href="#a6803c59bbed8716fc173a729329e3b66">More...</a><br/></td></tr>
<tr class="separator:a6803c59bbed8716fc173a729329e3b66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73894bc1747b5419548e6a5b25f52c24"><td class="memItemLeft" align="right" valign="top">volatile int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a73894bc1747b5419548e6a5b25f52c24">tcdSize</a></td></tr>
<tr class="memdesc:a73894bc1747b5419548e6a5b25f52c24"><td class="mdescLeft">&#160;</td><td class="mdescRight">The total number of TCD slots in the queue. <a href="#a73894bc1747b5419548e6a5b25f52c24">More...</a><br/></td></tr>
<tr class="separator:a73894bc1747b5419548e6a5b25f52c24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9a5cd410a273519eaa6d8c335272b40"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ad9a5cd410a273519eaa6d8c335272b40">flags</a></td></tr>
<tr class="memdesc:ad9a5cd410a273519eaa6d8c335272b40"><td class="mdescLeft">&#160;</td><td class="mdescRight">The status of the current channel. <a href="#ad9a5cd410a273519eaa6d8c335272b40">More...</a><br/></td></tr>
<tr class="separator:ad9a5cd410a273519eaa6d8c335272b40"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a477ceaab5626a5283c7f21bbf0365ba7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#ga9ee3a34d12fbb39bc972f62ba6357022">edma_callback</a> _edma_handle::callback</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae7ae511b440ea695410a84a8c8510ada"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* _edma_handle::userData</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a224fed6f3c431fee4bef697e39d609fe"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">DMA_Type* _edma_handle::base</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a764e6c2f7a4be497385b3be22c833cf0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a>* _edma_handle::tcdPool</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ab685b8268377f03b6c660ceca8f119c3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t _edma_handle::channel</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a23541d41c3b2d7c067d03882cf12afc9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile int8_t _edma_handle::header</td>
</tr>
</table>
</div><div class="memdoc">
<p>Should point to the next TCD to be loaded into the eDMA engine. </p>
</div>
</div>
<a class="anchor" id="ad4166d825a2b7056e658c76eda4d8f1e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile int8_t _edma_handle::tail</td>
</tr>
</table>
</div><div class="memdoc">
<p>Should point to the next TCD to be stored into the memory pool. </p>
</div>
</div>
<a class="anchor" id="a6803c59bbed8716fc173a729329e3b66"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile int8_t _edma_handle::tcdUsed</td>
</tr>
</table>
</div><div class="memdoc">
<p>Should reflect the number of TCDs can be used/loaded in the memory. </p>
</div>
</div>
<a class="anchor" id="a73894bc1747b5419548e6a5b25f52c24"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile int8_t _edma_handle::tcdSize</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad9a5cd410a273519eaa6d8c335272b40"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t _edma_handle::flags</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga5f0841e9527b371724ef4418e6807643"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FSL_EDMA_DRIVER_VERSION&#160;&#160;&#160;(<a class="el" href="a00260.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 4, 3))</td>
</tr>
</table>
</div><div class="memdoc">
<p>Version 2.4.3. </p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="gaf1d2168d9617f37e639bc4d7c516ad09"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00021.html#a00335">_edma_config</a> <a class="el" href="a00021.html#gaf1d2168d9617f37e639bc4d7c516ad09">edma_config_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaaf79d8c43b2777cfae8cfa4f2c6ed80f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00021.html#a00339">_edma_transfer_config</a> <a class="el" href="a00021.html#gaaf79d8c43b2777cfae8cfa4f2c6ed80f">edma_transfer_config_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>This structure configures the source/destination transfer attribute. </p>
</div>
</div>
<a class="anchor" id="gacff054f9816fb678fc49f5e66a4d7649"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00021.html#a00338">_edma_tcd</a> <a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>This structure is same as TCD register which is described in reference manual, and is used to configure the scatter/gather feature as a next hardware TCD. </p>
</div>
</div>
<a class="anchor" id="ga9ee3a34d12fbb39bc972f62ba6357022"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* edma_callback)(struct <a class="el" href="a00021.html#a00336">_edma_handle</a> *handle, void *userData, bool transferDone, uint32_t tcds)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This callback function is called in the EDMA interrupt handle. In normal mode, run into callback function means the transfer users need is done. In scatter gather mode, run into callback function means a transfer control block (tcd) is finished. Not all transfer finished, users can get the finished tcd numbers using interface EDMA_GetUnusedTCDNumber.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>EDMA handle pointer, users shall not touch the values inside. </td></tr>
<tr><td class="paramname">userData</td><td>The callback user parameter pointer. Users can use this parameter to involve things users need to change in EDMA callback function. </td></tr>
<tr><td class="paramname">transferDone</td><td>If the current loaded transfer done. In normal mode it means if all transfer done. In scatter gather mode, this parameter shows is the current transfer block in EDMA register is done. As the load of core is different, it will be different if the new tcd loaded into EDMA registers while this callback called. If true, it always means new tcd still not loaded into registers, while false means new tcd already loaded into registers. </td></tr>
<tr><td class="paramname">tcds</td><td>How many tcds are done from the last callback. This parameter only used in scatter gather mode. It tells user how many tcds are finished between the last callback and this. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga4ffcbd8f86285f5c162ae70a6fe155bd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00021.html#ga4ffcbd8f86285f5c162ae70a6fe155bd">_edma_transfer_size</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="gga4ffcbd8f86285f5c162ae70a6fe155bdacb4e50cd0e23c0d36edf958be77c8dc2"></a>kEDMA_TransferSize1Bytes</em>&nbsp;</td><td class="fielddoc">
<p>Source/Destination data transfer size is 1 byte every time. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4ffcbd8f86285f5c162ae70a6fe155bda589480546c8db2d1372e62a7946fbb2c"></a>kEDMA_TransferSize2Bytes</em>&nbsp;</td><td class="fielddoc">
<p>Source/Destination data transfer size is 2 bytes every time. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4ffcbd8f86285f5c162ae70a6fe155bda4d91559541642b997418406ec927c454"></a>kEDMA_TransferSize4Bytes</em>&nbsp;</td><td class="fielddoc">
<p>Source/Destination data transfer size is 4 bytes every time. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4ffcbd8f86285f5c162ae70a6fe155bda3c361ee4008e6ba8097557e3d4a55ce8"></a>kEDMA_TransferSize8Bytes</em>&nbsp;</td><td class="fielddoc">
<p>Source/Destination data transfer size is 8 bytes every time. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4ffcbd8f86285f5c162ae70a6fe155bda0d4cdfd536f2985eea3e8111eecd3c43"></a>kEDMA_TransferSize16Bytes</em>&nbsp;</td><td class="fielddoc">
<p>Source/Destination data transfer size is 16 bytes every time. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4ffcbd8f86285f5c162ae70a6fe155bdad7e2421e513fc84a29cd20ab47409229"></a>kEDMA_TransferSize32Bytes</em>&nbsp;</td><td class="fielddoc">
<p>Source/Destination data transfer size is 32 bytes every time. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga1a7d7ef429d6168ce7c9e43cee40d539"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00021.html#ga1a7d7ef429d6168ce7c9e43cee40d539">_edma_modulo</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="gga1a7d7ef429d6168ce7c9e43cee40d539ab77c38c19ddcc44212b258bdafe2f207"></a>kEDMA_ModuloDisable</em>&nbsp;</td><td class="fielddoc">
<p>Disable modulo. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539af7cbe0618a06406e5473ec1aa11195a0"></a>kEDMA_Modulo2bytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 2 bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539a2eaf98fea83570be353ff21fde4b8d53"></a>kEDMA_Modulo4bytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 4 bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539a99fad23e0502470cddec1391edc483e2"></a>kEDMA_Modulo8bytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 8 bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539abd6ec81a3b0822ea6c3a7c77215e85a8"></a>kEDMA_Modulo16bytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 16 bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539acd0d2322a93a86bb7bb1160217184569"></a>kEDMA_Modulo32bytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 32 bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539af60e65e2fdc306df458cabaa77c0a62c"></a>kEDMA_Modulo64bytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 64 bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539ac5b734f88d8fbe08c19f4b881e643ebd"></a>kEDMA_Modulo128bytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 128 bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539ab6354112d539cb71083057f72a43f282"></a>kEDMA_Modulo256bytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 256 bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539a56d31f1fa472122b9edf4d8c8d437359"></a>kEDMA_Modulo512bytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 512 bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539a7b85b92e30afea2d7d2eb11e40751496"></a>kEDMA_Modulo1Kbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 1 K bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539acd26e0c0dc1a6518dca27c0a418df484"></a>kEDMA_Modulo2Kbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 2 K bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539ae9f8fd54c7f183214653a750775b1e1c"></a>kEDMA_Modulo4Kbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 4 K bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539a568ad80f68673d4f57362dc48701aec6"></a>kEDMA_Modulo8Kbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 8 K bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539a6e8595a1168272eab8923212c1cabaee"></a>kEDMA_Modulo16Kbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 16 K bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539af12cea48af625688f7d3a6e9e2d19d56"></a>kEDMA_Modulo32Kbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 32 K bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539aab39052aeb4a70843c6ddd61b94f95a0"></a>kEDMA_Modulo64Kbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 64 K bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539afb80c06c8d24882fdeb592a37673e499"></a>kEDMA_Modulo128Kbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 128 K bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539ae1c82fe430bd6a43cd8bfca46671cca1"></a>kEDMA_Modulo256Kbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 256 K bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539aff7dbf518027bc1d2a84a4dcfe7f0adc"></a>kEDMA_Modulo512Kbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 512 K bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539a48ff619715bb526b6d917d6b37686b8a"></a>kEDMA_Modulo1Mbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 1 M bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539a5c2909e6956a01efc28bb70a73ddb9f5"></a>kEDMA_Modulo2Mbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 2 M bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539a4b07b0456e0aadbde3a32790e423f4d7"></a>kEDMA_Modulo4Mbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 4 M bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539ad4f068091510d3fc90b8a21bd2492a38"></a>kEDMA_Modulo8Mbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 8 M bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539a3ff219951928d6e40f658f612f9106c0"></a>kEDMA_Modulo16Mbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 16 M bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539ade7587c87a42242eb0e47a1dbac5f686"></a>kEDMA_Modulo32Mbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 32 M bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539aedc3a67726be1cdac9385a37556c7056"></a>kEDMA_Modulo64Mbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 64 M bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539a0f2c2ca6e26fcf1edefe6bd091504041"></a>kEDMA_Modulo128Mbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 128 M bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539a50818bce765be0d7ccfac7490242c119"></a>kEDMA_Modulo256Mbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 256 M bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539a2289cd131c9052e9ab097abbff3499e7"></a>kEDMA_Modulo512Mbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 512 M bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539a22c8078316841b5cc5886d506f95a8e3"></a>kEDMA_Modulo1Gbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 1 G bytes. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a7d7ef429d6168ce7c9e43cee40d539ab4a779add96a309505f06a540d75340f"></a>kEDMA_Modulo2Gbytes</em>&nbsp;</td><td class="fielddoc">
<p>Circular buffer size is 2 G bytes. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga273a47c42205f63e7a5457114d5b1e21"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00021.html#ga273a47c42205f63e7a5457114d5b1e21">_edma_bandwidth</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="gga273a47c42205f63e7a5457114d5b1e21aeb09bbf3022f40b276ab9b94035ef308"></a>kEDMA_BandwidthStallNone</em>&nbsp;</td><td class="fielddoc">
<p>No eDMA engine stalls. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga273a47c42205f63e7a5457114d5b1e21a443b7698b1950201d47d97de1b643f3c"></a>kEDMA_BandwidthStall4Cycle</em>&nbsp;</td><td class="fielddoc">
<p>eDMA engine stalls for 4 cycles after each read/write. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga273a47c42205f63e7a5457114d5b1e21ac21c278bddfbadae35d53cc565bca9d9"></a>kEDMA_BandwidthStall8Cycle</em>&nbsp;</td><td class="fielddoc">
<p>eDMA engine stalls for 8 cycles after each read/write. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga3c4715f55d4d2460fa6ea7e579088eb3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00021.html#ga3c4715f55d4d2460fa6ea7e579088eb3">_edma_channel_link_type</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="gga3c4715f55d4d2460fa6ea7e579088eb3aba8b1349b47c8e99c950c179b5548caa"></a>kEDMA_LinkNone</em>&nbsp;</td><td class="fielddoc">
<p>No channel link. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3c4715f55d4d2460fa6ea7e579088eb3a804db702dd385d11a01dd512f3e1606c"></a>kEDMA_MinorLink</em>&nbsp;</td><td class="fielddoc">
<p>Channel link after each minor loop. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3c4715f55d4d2460fa6ea7e579088eb3ab9798ac8a18b9632a7d3fabf0bd76881"></a>kEDMA_MajorLink</em>&nbsp;</td><td class="fielddoc">
<p>Channel link while major loop count exhausted. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gabed82baf7f470b522273a3e37c24c600"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum</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="ggabed82baf7f470b522273a3e37c24c600a3fc49e0e9df4c15438fac350d2d7da56"></a>kEDMA_DoneFlag</em>&nbsp;</td><td class="fielddoc">
<p>DONE flag, set while transfer finished, CITER value exhausted. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggabed82baf7f470b522273a3e37c24c600a2c5dd54b1cb8bd4917b99a914c7bdc84"></a>kEDMA_ErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>eDMA error flag, an error occurred in a transfer </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggabed82baf7f470b522273a3e37c24c600afca58961c7da506e2f1c05451d16f4d9"></a>kEDMA_InterruptFlag</em>&nbsp;</td><td class="fielddoc">
<p>eDMA interrupt flag, set while an interrupt occurred of this channel </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gab04a0655cd1e3bcac5e8f48c18df1a57"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum</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="ggab04a0655cd1e3bcac5e8f48c18df1a57a54ca64713f21fd2337d165b273d6f680"></a>kEDMA_DestinationBusErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>Bus error on destination address. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab04a0655cd1e3bcac5e8f48c18df1a57a5eb8315759ff492642e8fde45cd3d244"></a>kEDMA_SourceBusErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>Bus error on the source address. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab04a0655cd1e3bcac5e8f48c18df1a57a9aeb6aad3c245959ab91944bc0136479"></a>kEDMA_ScatterGatherErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>Error on the Scatter/Gather address, not 32byte aligned. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab04a0655cd1e3bcac5e8f48c18df1a57acc8bc58b1704ba1f4f4ee1533f69c98e"></a>kEDMA_NbytesErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>NBYTES/CITER configuration error. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab04a0655cd1e3bcac5e8f48c18df1a57aa53400970fa05f5d2790f20338aa6d06"></a>kEDMA_DestinationOffsetErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>Destination offset not aligned with destination size. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab04a0655cd1e3bcac5e8f48c18df1a57ae516e9e9db0a946f1565e1c2e3175574"></a>kEDMA_DestinationAddressErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>Destination address not aligned with destination size. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab04a0655cd1e3bcac5e8f48c18df1a57ad611243e3bd0baed42ed2343e5e575ac"></a>kEDMA_SourceOffsetErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>Source offset not aligned with source size. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab04a0655cd1e3bcac5e8f48c18df1a57a4c0642a49305653638e275415320f0f0"></a>kEDMA_SourceAddressErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>Source address not aligned with source size. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab04a0655cd1e3bcac5e8f48c18df1a57a2cc6d4262814dc42f05843199e9540c1"></a>kEDMA_ErrorChannelFlag</em>&nbsp;</td><td class="fielddoc">
<p>Error channel number of the cancelled channel number. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab04a0655cd1e3bcac5e8f48c18df1a57a6f919249e70bf24808d10ff0aaeedbae"></a>kEDMA_ChannelPriorityErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>Channel priority is not unique. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab04a0655cd1e3bcac5e8f48c18df1a57a1c6f9d050df7f2f0aa945b5f1c46e230"></a>kEDMA_TransferCanceledFlag</em>&nbsp;</td><td class="fielddoc">
<p>Transfer cancelled. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab04a0655cd1e3bcac5e8f48c18df1a57ab930c63068a6d7ee6ccb21df993bd48f"></a>kEDMA_ValidFlag</em>&nbsp;</td><td class="fielddoc">
<p>No error occurred, this bit is 0. </p>
<p>Otherwise, it is 1. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga4b9e8a6e5ac90d2b80f8b995a9e8e7ef"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00021.html#ga4b9e8a6e5ac90d2b80f8b995a9e8e7ef">_edma_interrupt_enable</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="gga4b9e8a6e5ac90d2b80f8b995a9e8e7efab2be76dc7af93bec6801d76376f924c0"></a>kEDMA_ErrorInterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>Enable interrupt while channel error occurs. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4b9e8a6e5ac90d2b80f8b995a9e8e7efa19c5998906a159df3204e818033a3c0e"></a>kEDMA_MajorInterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>Enable interrupt while major count exhausted. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4b9e8a6e5ac90d2b80f8b995a9e8e7efa2f1573636dcd4a54d9189bdee4cf39d0"></a>kEDMA_HalfInterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>Enable interrupt while major count to half value. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga2ff12bc109f968bb2841fca1a9d3499e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00021.html#ga2ff12bc109f968bb2841fca1a9d3499e">_edma_transfer_type</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="gga2ff12bc109f968bb2841fca1a9d3499eaba1ccd03368799d9752bd6001f5373a5"></a>kEDMA_MemoryToMemory</em>&nbsp;</td><td class="fielddoc">
<p>Transfer from memory to memory. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2ff12bc109f968bb2841fca1a9d3499ea1041287c7dc311d81017f529a51734e6"></a>kEDMA_PeripheralToMemory</em>&nbsp;</td><td class="fielddoc">
<p>Transfer from peripheral to memory. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2ff12bc109f968bb2841fca1a9d3499ea172d3e1f201639f3157563f4a1a275bf"></a>kEDMA_MemoryToPeripheral</em>&nbsp;</td><td class="fielddoc">
<p>Transfer from memory to peripheral. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2ff12bc109f968bb2841fca1a9d3499ea5c9cc27e04a3c22204b90ba07b860727"></a>kEDMA_PeripheralToPeripheral</em>&nbsp;</td><td class="fielddoc">
<p>Transfer from Peripheral to peripheral. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga385c44f6fb256e5716a2302a5b940388"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum</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="gga385c44f6fb256e5716a2302a5b940388a6d33d9a7019b18917669f16d51085b32"></a>kStatus_EDMA_QueueFull</em>&nbsp;</td><td class="fielddoc">
<p>TCD queue is full. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga385c44f6fb256e5716a2302a5b940388a96aa3062c73a9f439f63c0ed24f09c07"></a>kStatus_EDMA_Busy</em>&nbsp;</td><td class="fielddoc">
<p>Channel is busy and can't handle the transfer request. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gaf7588eb4b54499f0f55c698bd98bc1bb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_Init </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00021.html#gaf1d2168d9617f37e639bc4d7c516ad09">edma_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function ungates the eDMA clock and configures the eDMA peripheral according to the configuration structure.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">config</td><td>A pointer to the configuration structure, see "edma_config_t". </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This function enables the minor loop map feature. </dd></dl>
</div>
</div>
<a class="anchor" id="ga29aa2b1f72c154c12305d6615845618c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_Deinit </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function gates the eDMA clock.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>eDMA peripheral base address. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga23e063167a1b666dcdd5538407c5c948"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_InstallTCD </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *&#160;</td>
<td class="paramname"><em>tcd</em>&#160;</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>EDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>EDMA channel number. </td></tr>
<tr><td class="paramname">tcd</td><td>Point to TCD structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga9851dc5addd6a1fc557bfdb625aa5c19"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_GetDefaultConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#gaf1d2168d9617f37e639bc4d7c516ad09">edma_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the configuration structure to default values. The default configuration is set to the following values. </p>
<div class="fragment"><div class="line">* config.enableContinuousLinkMode = <span class="keyword">false</span>;</div>
<div class="line">* config.enableHaltOnError = <span class="keyword">true</span>;</div>
<div class="line">* config.enableRoundRobinArbitration = <span class="keyword">false</span>;</div>
<div class="line">* config.enableDebugMode = <span class="keyword">false</span>;</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>A pointer to the eDMA configuration structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga7957e210d6f4904d42df81508da25d56"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void EDMA_EnableContinuousChannelLinkMode </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>Do not use continuous link mode with a channel linking to itself if there is only one minor loop iteration per service request, for example, if the channel's NBYTES value is the same as either the source or destination size. The same data transfer profile can be achieved by simply increasing the NBYTES value, which provides more efficient, faster processing.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>EDMA peripheral base address. </td></tr>
<tr><td class="paramname">enable</td><td>true is enable, false is disable. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga3b2e736c8b20f41b5df9932452fe9d3c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void EDMA_EnableMinorLoopMapping </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The TCDn.word2 is redefined to include individual enable fields, an offset field, and the NBYTES field.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>EDMA peripheral base address. </td></tr>
<tr><td class="paramname">enable</td><td>true is enable, false is disable. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaecea06e22455415332bbc342c309cb6b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_ResetChannel </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets TCD registers for this channel to default values.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>eDMA channel number. </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This function must not be called while the channel transfer is ongoing or it causes unpredictable results. </dd>
<dd>
This function enables the auto stop request feature. </dd></dl>
</div>
</div>
<a class="anchor" id="gaad0c5872dda63e558ee6c62f9bc5eaa8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_SetTransferConfig </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00021.html#gaaf79d8c43b2777cfae8cfa4f2c6ed80f">edma_transfer_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *&#160;</td>
<td class="paramname"><em>nextTcd</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function configures the transfer attribute, including source address, destination address, transfer size, address offset, and so on. It also configures the scatter gather feature if the user supplies the TCD address. Example: </p>
<div class="fragment"><div class="line">* edma_transfer_t config;</div>
<div class="line">* <a class="code" href="a00021.html#a00338">edma_tcd_t</a> tcd;</div>
<div class="line">* config.srcAddr = ..;</div>
<div class="line">* config.destAddr = ..;</div>
<div class="line">* ...</div>
<div class="line">* <a class="code" href="a00021.html#gaad0c5872dda63e558ee6c62f9bc5eaa8">EDMA_SetTransferConfig</a>(DMA0, channel, &amp;config, &amp;stcd);</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>eDMA channel number. </td></tr>
<tr><td class="paramname">config</td><td>Pointer to eDMA transfer configuration structure. </td></tr>
<tr><td class="paramname">nextTcd</td><td>Point to TCD structure. It can be NULL if users do not want to enable scatter/gather feature. </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>If nextTcd is not NULL, it means scatter gather feature is enabled and DREQ bit is cleared in the previous transfer configuration, which is set in the eDMA_ResetChannel. </dd></dl>
</div>
</div>
<a class="anchor" id="gae77bdff6263bed3a02291efb8f1146f0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_SetMinorOffsetConfig </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00021.html#gad566af76d80682c94afb6c305eae9e0a">edma_minor_offset_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The minor offset means that the signed-extended value is added to the source address or destination address after each minor loop.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>eDMA channel number. </td></tr>
<tr><td class="paramname">config</td><td>A pointer to the minor offset configuration structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga136076d50d98d4eadfaa9cd592b273e7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_SetChannelPreemptionConfig </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00021.html#gab24fe9738be9cca448dec8bb98dfdd83">edma_channel_Preemption_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function configures the channel preemption attribute and the priority of the channel.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>eDMA channel number </td></tr>
<tr><td class="paramname">config</td><td>A pointer to the channel preemption configuration structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga8cd3ca8512357b64af15846a2b87edd6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_SetChannelLink </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00021.html#ga50827ea4b70cafb243ce0d3c7bc3b22e">edma_channel_link_type_t</a>&#160;</td>
<td class="paramname"><em>linkType</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>linkedChannel</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function configures either the minor link or the major link mode. The minor link means that the channel link is triggered every time CITER decreases by 1. The major link means that the channel link is triggered when the CITER is exhausted.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>eDMA channel number. </td></tr>
<tr><td class="paramname">linkType</td><td>A channel link type, which can be one of the following: <ul>
<li>kEDMA_LinkNone </li>
<li>kEDMA_MinorLink </li>
<li>kEDMA_MajorLink </li>
</ul>
</td></tr>
<tr><td class="paramname">linkedChannel</td><td>The linked channel number. </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Users should ensure that DONE flag is cleared before calling this interface, or the configuration is invalid. </dd></dl>
</div>
</div>
<a class="anchor" id="gaf2997a300751b52e3c2e699e3f2296f2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_SetBandWidth </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00021.html#gad89636a4c3415f4135e6bba5a2c9ef05">edma_bandwidth_t</a>&#160;</td>
<td class="paramname"><em>bandWidth</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Because the eDMA processes the minor loop, it continuously generates read/write sequences until the minor count is exhausted. The bandwidth forces the eDMA to stall after the completion of each read/write access to control the bus request bandwidth seen by the crossbar switch.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>eDMA channel number. </td></tr>
<tr><td class="paramname">bandWidth</td><td>A bandwidth setting, which can be one of the following: <ul>
<li>kEDMABandwidthStallNone </li>
<li>kEDMABandwidthStall4Cycle </li>
<li>kEDMABandwidthStall8Cycle </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaa3f4855fe92ed80276487771b9bd2705"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_SetModulo </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00021.html#ga567f4aba444f1fb55ac796ea3c12b1f6">edma_modulo_t</a>&#160;</td>
<td class="paramname"><em>srcModulo</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00021.html#ga567f4aba444f1fb55ac796ea3c12b1f6">edma_modulo_t</a>&#160;</td>
<td class="paramname"><em>destModulo</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function defines a specific address range specified to be the value after (SADDR + SOFF)/(DADDR + DOFF) calculation is performed or the original register value. It provides the ability to implement a circular data queue easily.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>eDMA channel number. </td></tr>
<tr><td class="paramname">srcModulo</td><td>A source modulo value. </td></tr>
<tr><td class="paramname">destModulo</td><td>A destination modulo value. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga0e5cbacd0f64515239695b9f94bb78a4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void EDMA_EnableAsyncRequest </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>eDMA channel number. </td></tr>
<tr><td class="paramname">enable</td><td>The command to enable (true) or disable (false). </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gac3ef15106efff13ea6a25441fc228349"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void EDMA_EnableAutoStopRequest </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>If enabling the auto stop request, the eDMA hardware automatically disables the hardware channel request.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>eDMA channel number. </td></tr>
<tr><td class="paramname">enable</td><td>The command to enable (true) or disable (false). </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga15df898b3b420958f51c4df22dc85b98"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_EnableChannelInterrupts </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</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>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>eDMA channel number. </td></tr>
<tr><td class="paramname">mask</td><td>The mask of interrupt source to be set. Users need to use the defined edma_interrupt_enable_t type. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga251561e70531dfcea586b5f1fff9c916"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_DisableChannelInterrupts </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</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>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>eDMA channel number. </td></tr>
<tr><td class="paramname">mask</td><td>The mask of the interrupt source to be set. Use the defined edma_interrupt_enable_t type. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga44f984a5522f544407e43b1147c40cb4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_SetMajorOffsetConfig </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t&#160;</td>
<td class="paramname"><em>sourceOffset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t&#160;</td>
<td class="paramname"><em>destOffset</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Adjustment value added to the source address at the completion of the major iteration count</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>edma channel number. </td></tr>
<tr><td class="paramname">sourceOffset</td><td>source address offset will be applied to source address after major loop done. </td></tr>
<tr><td class="paramname">destOffset</td><td>destination address offset will be applied to source address after major loop done. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga3c6239d1c1cd5483fa9b390f568e3066"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_TcdReset </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *&#160;</td>
<td class="paramname"><em>tcd</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets all fields for this TCD structure to default value.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tcd</td><td>Pointer to the TCD structure. </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This function enables the auto stop request feature. </dd></dl>
</div>
</div>
<a class="anchor" id="gad7efa07faa29e3acf456fc1cffb3f9d5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_TcdSetTransferConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *&#160;</td>
<td class="paramname"><em>tcd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00021.html#gaaf79d8c43b2777cfae8cfa4f2c6ed80f">edma_transfer_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *&#160;</td>
<td class="paramname"><em>nextTcd</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The TCD is a transfer control descriptor. The content of the TCD is the same as the hardware TCD registers. The TCD is used in the scatter-gather mode. This function configures the TCD transfer attribute, including source address, destination address, transfer size, address offset, and so on. It also configures the scatter gather feature if the user supplies the next TCD address. Example: </p>
<div class="fragment"><div class="line">* edma_transfer_t config = {</div>
<div class="line">* ...</div>
<div class="line">* }</div>
<div class="line">* <a class="code" href="a00021.html#a00338">edma_tcd_t</a> tcd __aligned(32);</div>
<div class="line">* <a class="code" href="a00021.html#a00338">edma_tcd_t</a> nextTcd __aligned(32);</div>
<div class="line">* <a class="code" href="a00021.html#gad7efa07faa29e3acf456fc1cffb3f9d5">EDMA_TcdSetTransferConfig</a>(&amp;tcd, &amp;config, &amp;nextTcd);</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tcd</td><td>Pointer to the TCD structure. </td></tr>
<tr><td class="paramname">config</td><td>Pointer to eDMA transfer configuration structure. </td></tr>
<tr><td class="paramname">nextTcd</td><td>Pointer to the next TCD structure. It can be NULL if users do not want to enable scatter/gather feature. </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>TCD address should be 32 bytes aligned or it causes an eDMA error. </dd>
<dd>
If the nextTcd is not NULL, the scatter gather feature is enabled and DREQ bit is cleared in the previous transfer configuration, which is set in the EDMA_TcdReset. </dd></dl>
</div>
</div>
<a class="anchor" id="ga5409f4a24baec461a186df10fe1f8c52"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_TcdSetMinorOffsetConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *&#160;</td>
<td class="paramname"><em>tcd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00021.html#gad566af76d80682c94afb6c305eae9e0a">edma_minor_offset_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>A minor offset is a signed-extended value added to the source address or a destination address after each minor loop.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tcd</td><td>A point to the TCD structure. </td></tr>
<tr><td class="paramname">config</td><td>A pointer to the minor offset configuration structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga04ee251c7c7efd9ab4f5b2182ef8a626"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_TcdSetChannelLink </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *&#160;</td>
<td class="paramname"><em>tcd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00021.html#ga50827ea4b70cafb243ce0d3c7bc3b22e">edma_channel_link_type_t</a>&#160;</td>
<td class="paramname"><em>linkType</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>linkedChannel</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function configures either a minor link or a major link. The minor link means the channel link is triggered every time CITER decreases by 1. The major link means that the channel link is triggered when the CITER is exhausted.</p>
<dl class="section note"><dt>Note</dt><dd>Users should ensure that DONE flag is cleared before calling this interface, or the configuration is invalid. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tcd</td><td>Point to the TCD structure. </td></tr>
<tr><td class="paramname">linkType</td><td>Channel link type, it can be one of: <ul>
<li>kEDMA_LinkNone </li>
<li>kEDMA_MinorLink </li>
<li>kEDMA_MajorLink </li>
</ul>
</td></tr>
<tr><td class="paramname">linkedChannel</td><td>The linked channel number. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga7357cc963fb15ce336ea8fb78f3475a7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void EDMA_TcdSetBandWidth </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *&#160;</td>
<td class="paramname"><em>tcd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00021.html#gad89636a4c3415f4135e6bba5a2c9ef05">edma_bandwidth_t</a>&#160;</td>
<td class="paramname"><em>bandWidth</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Because the eDMA processes the minor loop, it continuously generates read/write sequences until the minor count is exhausted. The bandwidth forces the eDMA to stall after the completion of each read/write access to control the bus request bandwidth seen by the crossbar switch. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tcd</td><td>A pointer to the TCD structure. </td></tr>
<tr><td class="paramname">bandWidth</td><td>A bandwidth setting, which can be one of the following: <ul>
<li>kEDMABandwidthStallNone </li>
<li>kEDMABandwidthStall4Cycle </li>
<li>kEDMABandwidthStall8Cycle </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga998211b8fa494160251f2bdfae2d67b4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_TcdSetModulo </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *&#160;</td>
<td class="paramname"><em>tcd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00021.html#ga567f4aba444f1fb55ac796ea3c12b1f6">edma_modulo_t</a>&#160;</td>
<td class="paramname"><em>srcModulo</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00021.html#ga567f4aba444f1fb55ac796ea3c12b1f6">edma_modulo_t</a>&#160;</td>
<td class="paramname"><em>destModulo</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function defines a specific address range specified to be the value after (SADDR + SOFF)/(DADDR + DOFF) calculation is performed or the original register value. It provides the ability to implement a circular data queue easily.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tcd</td><td>A pointer to the TCD structure. </td></tr>
<tr><td class="paramname">srcModulo</td><td>A source modulo value. </td></tr>
<tr><td class="paramname">destModulo</td><td>A destination modulo value. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gabc58ab357e8425a3211048a77ca5ed82"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void EDMA_TcdEnableAutoStopRequest </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *&#160;</td>
<td class="paramname"><em>tcd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>If enabling the auto stop request, the eDMA hardware automatically disables the hardware channel request.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tcd</td><td>A pointer to the TCD structure. </td></tr>
<tr><td class="paramname">enable</td><td>The command to enable (true) or disable (false). </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaff194ee32f2848aa721f8d65f4329fce"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_TcdEnableInterrupts </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *&#160;</td>
<td class="paramname"><em>tcd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</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">tcd</td><td>Point to the TCD structure. </td></tr>
<tr><td class="paramname">mask</td><td>The mask of interrupt source to be set. Users need to use the defined edma_interrupt_enable_t type. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga1dad41c69a12e8abb772f60c66d9f162"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_TcdDisableInterrupts </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *&#160;</td>
<td class="paramname"><em>tcd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</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">tcd</td><td>Point to the TCD structure. </td></tr>
<tr><td class="paramname">mask</td><td>The mask of interrupt source to be set. Users need to use the defined edma_interrupt_enable_t type. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga1de61e7f86f4f9f00f757dafe2dbc5d5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_TcdSetMajorOffsetConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *&#160;</td>
<td class="paramname"><em>tcd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t&#160;</td>
<td class="paramname"><em>sourceOffset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t&#160;</td>
<td class="paramname"><em>destOffset</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Adjustment value added to the source address at the completion of the major iteration count</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tcd</td><td>A point to the TCD structure. </td></tr>
<tr><td class="paramname">sourceOffset</td><td>source address offset wiil be applied to source address after major loop done. </td></tr>
<tr><td class="paramname">destOffset</td><td>destination address offset will be applied to source address after major loop done. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaabbec6b59a4313df50af39872743deaf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void EDMA_EnableChannelRequest </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This function enables the hardware channel request.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>eDMA channel number. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga44708108a447777f25e322063df70c95"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void EDMA_DisableChannelRequest </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This function disables the hardware channel request.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>eDMA channel number. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga38aa18611518af3211f23044527d6992"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void EDMA_TriggerChannelStart </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This function starts a minor loop transfer.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>eDMA channel number. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga097a1bad709b591528fc967867e98d14"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t EDMA_GetRemainingMajorLoopCount </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function checks the TCD (Task Control Descriptor) status for a specified eDMA channel and returns the number of major loop count that has not finished.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>eDMA channel number. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Major loop count which has not been transferred yet for the current TCD. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>1. This function can only be used to get unfinished major loop count of transfer without the next TCD, or it might be inaccuracy.<ol type="1">
<li>The unfinished/remaining transfer bytes cannot be obtained directly from registers while the channel is running. Because to calculate the remaining bytes, the initial NBYTES configured in DMA_TCDn_NBYTES_MLNO register is needed while the eDMA IP does not support getting it while a channel is active. In another word, the NBYTES value reading is always the actual (decrementing) NBYTES value the dma_engine is working with while a channel is running. Consequently, to get the remaining transfer bytes, a software-saved initial value of NBYTES (for example copied before enabling the channel) is needed. The formula to calculate it is shown below: RemainingBytes = RemainingMajorLoopCount * NBYTES(initially configured) </li>
</ol>
</dd></dl>
</div>
</div>
<a class="anchor" id="ga2416059ab1bd9c51df50bf78f0f98221"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint32_t EDMA_GetErrorStatusFlags </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>eDMA peripheral base address. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The mask of error status flags. Users need to use the _edma_error_status_flags type to decode the return variables. </dd></dl>
</div>
</div>
<a class="anchor" id="ga6e33fe1b55eb7296b1c2cb440c63bf0e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t EDMA_GetChannelStatusFlags </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>&#160;</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>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>eDMA channel number. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The mask of channel status flags. Users need to use the _edma_channel_status_flags type to decode the return variables. </dd></dl>
</div>
</div>
<a class="anchor" id="ga4575eda0bdf9bbec225cdb322bfadb97"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_ClearChannelStatusFlags </td>
<td>(</td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</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>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>eDMA channel number. </td></tr>
<tr><td class="paramname">mask</td><td>The mask of channel status to be cleared. Users need to use the defined _edma_channel_status_flags type. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae71842684e693908395784e8b7f7ef55"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_CreateHandle </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DMA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function is called if using the transactional API for eDMA. This function initializes the internal state of the eDMA handle.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>eDMA handle pointer. The eDMA handle stores callback function and parameters. </td></tr>
<tr><td class="paramname">base</td><td>eDMA peripheral base address. </td></tr>
<tr><td class="paramname">channel</td><td>eDMA channel number. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga61e4c8c8c4292918fe976a9071fa68e2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_InstallTCDMemory </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00021.html#gacff054f9816fb678fc49f5e66a4d7649">edma_tcd_t</a> *&#160;</td>
<td class="paramname"><em>tcdPool</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>tcdSize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function is called after the EDMA_CreateHandle to use scatter/gather feature. This function shall only be used while users need to use scatter gather mode. Scatter gather mode enables EDMA to load a new transfer control block (tcd) in hardware, and automatically reconfigure that DMA channel for a new transfer. Users need to prepare tcd memory and also configure tcds using interface EDMA_SubmitTransfer.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>eDMA handle pointer. </td></tr>
<tr><td class="paramname">tcdPool</td><td>A memory pool to store TCDs. It must be 32 bytes aligned. </td></tr>
<tr><td class="paramname">tcdSize</td><td>The number of TCD slots. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga945ae6f5db8b32c9b39ec0954073d65d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_SetCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00021.html#ga9ee3a34d12fbb39bc972f62ba6357022">edma_callback</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userData</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This callback is called in the eDMA IRQ handler. Use the callback to do something after the current major loop transfer completes. This function will be called every time one tcd finished transfer.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>eDMA handle pointer. </td></tr>
<tr><td class="paramname">callback</td><td>eDMA callback function pointer. </td></tr>
<tr><td class="paramname">userData</td><td>A parameter for the callback function. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga5d1bb30d93e3fd08656d77f0e3a9f75f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_PrepareTransferConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#gaaf79d8c43b2777cfae8cfa4f2c6ed80f">edma_transfer_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>srcAddr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>srcWidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int16_t&#160;</td>
<td class="paramname"><em>srcOffset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>destAddr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>destWidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int16_t&#160;</td>
<td class="paramname"><em>destOffset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>bytesEachRequest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>transferBytes</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function prepares the transfer configuration structure according to the user input.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>The user configuration structure of type edma_transfer_t. </td></tr>
<tr><td class="paramname">srcAddr</td><td>eDMA transfer source address. </td></tr>
<tr><td class="paramname">srcWidth</td><td>eDMA transfer source address width(bytes). </td></tr>
<tr><td class="paramname">srcOffset</td><td>source address offset. </td></tr>
<tr><td class="paramname">destAddr</td><td>eDMA transfer destination address. </td></tr>
<tr><td class="paramname">destWidth</td><td>eDMA transfer destination address width(bytes). </td></tr>
<tr><td class="paramname">destOffset</td><td>destination address offset. </td></tr>
<tr><td class="paramname">bytesEachRequest</td><td>eDMA transfer bytes per channel request. </td></tr>
<tr><td class="paramname">transferBytes</td><td>eDMA transfer bytes to be transferred. </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The data address and the data width must be consistent. For example, if the SRC is 4 bytes, the source address must be 4 bytes aligned, or it results in source address error (SAE). </dd></dl>
</div>
</div>
<a class="anchor" id="ga7b9fea80d9316b081f4dfb33b393bbb0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_PrepareTransfer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#gaaf79d8c43b2777cfae8cfa4f2c6ed80f">edma_transfer_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>srcAddr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>srcWidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>destAddr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>destWidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>bytesEachRequest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>transferBytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00021.html#gaa83dd6eee540d7e11857adad93262ea2">edma_transfer_type_t</a>&#160;</td>
<td class="paramname"><em>transferType</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function prepares the transfer configuration structure according to the user input.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>The user configuration structure of type edma_transfer_t. </td></tr>
<tr><td class="paramname">srcAddr</td><td>eDMA transfer source address. </td></tr>
<tr><td class="paramname">srcWidth</td><td>eDMA transfer source address width(bytes). </td></tr>
<tr><td class="paramname">destAddr</td><td>eDMA transfer destination address. </td></tr>
<tr><td class="paramname">destWidth</td><td>eDMA transfer destination address width(bytes). </td></tr>
<tr><td class="paramname">bytesEachRequest</td><td>eDMA transfer bytes per channel request. </td></tr>
<tr><td class="paramname">transferBytes</td><td>eDMA transfer bytes to be transferred. </td></tr>
<tr><td class="paramname">transferType</td><td>eDMA transfer type. </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The data address and the data width must be consistent. For example, if the SRC is 4 bytes, the source address must be 4 bytes aligned, or it results in source address error (SAE). </dd></dl>
</div>
</div>
<a class="anchor" id="ga8a78ca4c4c941f0ba5fa60033b81b61b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00260.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> EDMA_SubmitTransfer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00021.html#gaaf79d8c43b2777cfae8cfa4f2c6ed80f">edma_transfer_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function submits the eDMA transfer request according to the transfer configuration structure. In scatter gather mode, call this function will add a configured tcd to the circular list of tcd pool. The tcd pools is setup by call function EDMA_InstallTCDMemory before.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>eDMA handle pointer. </td></tr>
<tr><td class="paramname">config</td><td>Pointer to eDMA transfer configuration structure. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_EDMA_Success</td><td>It means submit transfer request succeed. </td></tr>
<tr><td class="paramname">kStatus_EDMA_QueueFull</td><td>It means TCD queue is full. Submit transfer request is not allowed. </td></tr>
<tr><td class="paramname">kStatus_EDMA_Busy</td><td>It means the given channel is busy, need to submit request later. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gab4a5570a9a0936f6666ec3c6a619296f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_StartTransfer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function enables the channel request. Users can call this function after submitting the transfer request or before submitting the transfer request.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>eDMA handle pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga253a133e7834d7cb958911a05acc16b8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_StopTransfer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function disables the channel request to pause the transfer. Users can call <a class="el" href="a00021.html#gab4a5570a9a0936f6666ec3c6a619296f" title="eDMA starts transfer. ">EDMA_StartTransfer()</a> again to resume the transfer.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>eDMA handle pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga2098cf6995bc79b25c5c9588f1c711e9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_AbortTransfer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function disables the channel request and clear transfer status bits. Users can submit another transfer after calling this API.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>DMA handle pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga491de73a29d57aca475bbfe70a7a628e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint32_t EDMA_GetUnusedTCDNumber </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This function gets current tcd index which is run. If the TCD pool pointer is NULL, it will return 0.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>DMA handle pointer. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The unused tcd slot number. </dd></dl>
</div>
</div>
<a class="anchor" id="ga2b97ab97e7bc0b5f15d905bae8341950"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint32_t EDMA_GetNextTCDAddress </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This function gets the next tcd address. If this is last TCD, return 0.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>DMA handle pointer. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The next TCD address. </dd></dl>
</div>
</div>
<a class="anchor" id="gaebf4a6a6000c296d3ab795aae77b65a0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void EDMA_HandleIRQ </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga00acb9562f35755920b20fde1bc9973e">edma_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function clears the channel major interrupt flag and calls the callback function if it is not NULL.</p>
<p>Note: For the case using TCD queue, when the major iteration count is exhausted, additional operations are performed. These include the final address adjustments and reloading of the BITER field into the CITER. Assertion of an optional interrupt request also occurs at this time, as does a possible fetch of a new TCD from memory using the scatter/gather address pointer included in the descriptor (if scatter/gather is enabled).</p>
<p>For instance, when the time interrupt of TCD[0] happens, the TCD[1] has already been loaded into the eDMA engine. As sga and sga_index are calculated based on the DLAST_SGA bitfield lies in the TCD_CSR register, the sga_index in this case should be 2 (DLAST_SGA of TCD[1] stores the address of TCD[2]). Thus, the "tcdUsed" updated should be (tcdUsed - 2U) which indicates the number of TCDs can be loaded in the memory pool (because TCD[0] and TCD[1] have been loaded into the eDMA engine at this point already.).</p>
<p>For the last two continuous ISRs in a scatter/gather process, they both load the last TCD (The last ISR does not load a new TCD) from the memory pool to the eDMA engine when major loop completes. Therefore, ensure that the header and tcdUsed updated are identical for them. tcdUsed are both 0 in this case as no TCD to be loaded.</p>
<p>See the "eDMA basic data flow" in the eDMA Functional description section of the Reference Manual for further details.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>eDMA handle pointer. </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">&copy; 2016 NXP Semiconductors. All rights reserved.
</li>
</ul>
</div>
</body>
</html>