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

728 lines
44 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: CRC: Cyclic Redundancy Check 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('a00013.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="#files">Files</a> &#124;
<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> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">CRC: Cyclic Redundancy Check Driver</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>MCUXpresso SDK provides a peripheral driver for the Cyclic Redundancy Check (CRC) module of MCUXpresso SDK devices.<br/>
<br/>
The cyclic redundancy check (CRC) module generates 16/32-bit CRC code for error detection. The CRC module provides three variants of polynomials, a programmable seed, and other parameters required to implement a 16-bit or 32-bit CRC standard. <br/>
</p>
<h1><a class="anchor" id="CRCInit"></a>
CRC Driver Initialization and Configuration</h1>
<p><a class="el" href="a00013.html#ga7114311534a33b6688f35ceaaa3f7832" title="Enables and configures the CRC peripheral module. ">CRC_Init()</a> function enables the clock for the CRC module in the LPC SYSCON block and fully (re-)configures the CRC module according to configuration structure. It also starts checksum computation by writing the seed.</p>
<p>The seed member of the configuration structure is the initial checksum for which new data can be added to. When starting new checksum computation, the seed should be set to the initial checksum per the CRC protocol specification. For continued checksum operation, the seed should be set to the intermediate checksum value as obtained from previous calls to <a class="el" href="a00013.html#gac745b626d9c7bd9f3da7986374483389" title="Loads actual values configured in CRC peripheral to CRC protocol configuration structure. ">CRC_GetConfig()</a> function. After <a class="el" href="a00013.html#ga7114311534a33b6688f35ceaaa3f7832" title="Enables and configures the CRC peripheral module. ">CRC_Init()</a>, one or multiple <a class="el" href="a00013.html#ga33f99b0cb581e677dbc009a695adf5d5" title="Writes data to the CRC module. ">CRC_WriteData()</a> calls follow to update checksum with data, then <a class="el" href="a00013.html#ga5ce766fd31166d3b0d2d7ba594dac0ce" title="Reads 16-bit checksum from the CRC module. ">CRC_Get16bitResult()</a> or <a class="el" href="a00013.html#ga0c8ce306124e645b27798fad68f3ac4f" title="Reads 32-bit checksum from the CRC module. ">CRC_Get32bitResult()</a> follows to read the result. <a class="el" href="a00013.html#ga7114311534a33b6688f35ceaaa3f7832" title="Enables and configures the CRC peripheral module. ">CRC_Init()</a> can be called as many times as required, which allows for runtime changes of the CRC protocol.</p>
<p><a class="el" href="a00013.html#gab681cd7c82fbafd927d6b22f23a81804" title="Loads default values to CRC protocol configuration structure. ">CRC_GetDefaultConfig()</a> function can be used to set the module configuration structure with parameters for CRC-16/CCITT-FALSE protocol.</p>
<p><a class="el" href="a00013.html#ga7a4d725b011a98efb29a26bcca04c35b" title="Disables the CRC peripheral module. ">CRC_Deinit()</a> function disables clock to the CRC module.</p>
<p><a class="el" href="a00013.html#ga3c2e6ecc571510470849dc078685d71f" title="resets CRC peripheral module. ">CRC_Reset()</a> performs hardware reset of the CRC module.</p>
<h1><a class="anchor" id="CRCWrite"></a>
CRC Write Data</h1>
<p>The <a class="el" href="a00013.html#ga33f99b0cb581e677dbc009a695adf5d5" title="Writes data to the CRC module. ">CRC_WriteData()</a> function is used to add data to actual CRC. Internally it tries to use 32-bit reads and writes for all aligned data in the user buffer and it uses 8-bit reads and writes for all unaligned data in the user buffer. This function can update CRC with user supplied data chunks of arbitrary size, so one can update CRC byte by byte or with all bytes at once. Prior call of CRC configuration function <a class="el" href="a00013.html#ga7114311534a33b6688f35ceaaa3f7832" title="Enables and configures the CRC peripheral module. ">CRC_Init()</a> fully specifies the CRC module configuration for <a class="el" href="a00013.html#ga33f99b0cb581e677dbc009a695adf5d5" title="Writes data to the CRC module. ">CRC_WriteData()</a> call.</p>
<p><a class="el" href="a00013.html#ga43edd3bec710cb1ca121bfcadbc9b6f7" title="Write seed to CRC peripheral module. ">CRC_WriteSeed()</a> Write seed (initial checksum) to CRC module.</p>
<h1><a class="anchor" id="CRCGet"></a>
CRC Get Checksum</h1>
<p>The <a class="el" href="a00013.html#ga5ce766fd31166d3b0d2d7ba594dac0ce" title="Reads 16-bit checksum from the CRC module. ">CRC_Get16bitResult()</a> or <a class="el" href="a00013.html#ga0c8ce306124e645b27798fad68f3ac4f" title="Reads 32-bit checksum from the CRC module. ">CRC_Get32bitResult()</a> function is used to read the CRC module checksum register. The bit reverse and 1's complement operations are already applied to the result if previously configured. Use <a class="el" href="a00013.html#gac745b626d9c7bd9f3da7986374483389" title="Loads actual values configured in CRC peripheral to CRC protocol configuration structure. ">CRC_GetConfig()</a> function to get the actual checksum without bit reverse and 1's complement applied so it can be used as seed when resuming calculation later.</p>
<p><a class="el" href="a00013.html#ga7114311534a33b6688f35ceaaa3f7832" title="Enables and configures the CRC peripheral module. ">CRC_Init()</a> / <a class="el" href="a00013.html#ga33f99b0cb581e677dbc009a695adf5d5" title="Writes data to the CRC module. ">CRC_WriteData()</a> / <a class="el" href="a00013.html#ga5ce766fd31166d3b0d2d7ba594dac0ce" title="Reads 16-bit checksum from the CRC module. ">CRC_Get16bitResult()</a> to get final checksum.</p>
<p><a class="el" href="a00013.html#ga7114311534a33b6688f35ceaaa3f7832" title="Enables and configures the CRC peripheral module. ">CRC_Init()</a> / <a class="el" href="a00013.html#ga33f99b0cb581e677dbc009a695adf5d5" title="Writes data to the CRC module. ">CRC_WriteData()</a> / ... / <a class="el" href="a00013.html#ga33f99b0cb581e677dbc009a695adf5d5" title="Writes data to the CRC module. ">CRC_WriteData()</a> / <a class="el" href="a00013.html#ga5ce766fd31166d3b0d2d7ba594dac0ce" title="Reads 16-bit checksum from the CRC module. ">CRC_Get16bitResult()</a> to get final checksum.</p>
<p><a class="el" href="a00013.html#ga7114311534a33b6688f35ceaaa3f7832" title="Enables and configures the CRC peripheral module. ">CRC_Init()</a> / <a class="el" href="a00013.html#ga33f99b0cb581e677dbc009a695adf5d5" title="Writes data to the CRC module. ">CRC_WriteData()</a> / <a class="el" href="a00013.html#gac745b626d9c7bd9f3da7986374483389" title="Loads actual values configured in CRC peripheral to CRC protocol configuration structure. ">CRC_GetConfig()</a> to get intermediate checksum to be used as seed value in future.</p>
<p><a class="el" href="a00013.html#ga7114311534a33b6688f35ceaaa3f7832" title="Enables and configures the CRC peripheral module. ">CRC_Init()</a> / <a class="el" href="a00013.html#ga33f99b0cb581e677dbc009a695adf5d5" title="Writes data to the CRC module. ">CRC_WriteData()</a> / ... / <a class="el" href="a00013.html#ga33f99b0cb581e677dbc009a695adf5d5" title="Writes data to the CRC module. ">CRC_WriteData()</a> / <a class="el" href="a00013.html#gac745b626d9c7bd9f3da7986374483389" title="Loads actual values configured in CRC peripheral to CRC protocol configuration structure. ">CRC_GetConfig()</a> to get intermediate checksum.</p>
<h1><a class="anchor" id="CRCRtos"></a>
Comments about API usage in RTOS</h1>
<p>If multiple RTOS tasks share the CRC module to compute checksums with different data and/or protocols, the following needs to be implemented by the user:</p>
<p>The triplets</p>
<p><a class="el" href="a00013.html#ga7114311534a33b6688f35ceaaa3f7832" title="Enables and configures the CRC peripheral module. ">CRC_Init()</a> / <a class="el" href="a00013.html#ga33f99b0cb581e677dbc009a695adf5d5" title="Writes data to the CRC module. ">CRC_WriteData()</a> / <a class="el" href="a00013.html#ga5ce766fd31166d3b0d2d7ba594dac0ce" title="Reads 16-bit checksum from the CRC module. ">CRC_Get16bitResult()</a> or <a class="el" href="a00013.html#ga0c8ce306124e645b27798fad68f3ac4f" title="Reads 32-bit checksum from the CRC module. ">CRC_Get32bitResult()</a> or <a class="el" href="a00013.html#gac745b626d9c7bd9f3da7986374483389" title="Loads actual values configured in CRC peripheral to CRC protocol configuration structure. ">CRC_GetConfig()</a></p>
<p>Should be protected by RTOS mutex to protect CRC module against concurrent accesses from different tasks. For example: Refer to the driver examples codes located at &lt;SDK_ROOT&gt;/boards/&lt;BOARD&gt;/driver_examples/crcRefer to the driver examples codes located at &lt;SDK_ROOT&gt;/boards/&lt;BOARD&gt;/driver_examples/crcRefer to the driver examples codes located at &lt;SDK_ROOT&gt;/boards/&lt;BOARD&gt;/driver_examples/crcRefer to the driver examples codes located at &lt;SDK_ROOT&gt;/boards/&lt;BOARD&gt;/driver_examples/crcRefer to the driver examples codes located at &lt;SDK_ROOT&gt;/boards/&lt;BOARD&gt;/driver_examples/crcRefer to the driver examples codes located at &lt;SDK_ROOT&gt;/boards/&lt;BOARD&gt;/driver_examples/crc </p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:a00191"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html">fsl_crc.h</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:a00308"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a00308">_crc_config</a></td></tr>
<tr class="memdesc:a00308"><td class="mdescLeft">&#160;</td><td class="mdescRight">CRC protocol configuration. <a href="a00013.html#a00308">More...</a><br/></td></tr>
<tr class="separator:a00308"><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:ga37d19c87e3adeb47db8f6967df0496e1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ga37d19c87e3adeb47db8f6967df0496e1">CRC_DRIVER_USE_CRC16_CCITT_FALSE_AS_DEFAULT</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga37d19c87e3adeb47db8f6967df0496e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default configuration structure filled by <a class="el" href="a00013.html#gab681cd7c82fbafd927d6b22f23a81804" title="Loads default values to CRC protocol configuration structure. ">CRC_GetDefaultConfig()</a>. <a href="#ga37d19c87e3adeb47db8f6967df0496e1">More...</a><br/></td></tr>
<tr class="separator:ga37d19c87e3adeb47db8f6967df0496e1"><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:ga5196acf4fbe44e56f5b3609c524d737d"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="a00013.html#gac9e3abdb739c7842a6f26505b418540d">_crc_polynomial</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ga5196acf4fbe44e56f5b3609c524d737d">crc_polynomial_t</a></td></tr>
<tr class="memdesc:ga5196acf4fbe44e56f5b3609c524d737d"><td class="mdescLeft">&#160;</td><td class="mdescRight">CRC polynomials to use. <a href="#ga5196acf4fbe44e56f5b3609c524d737d">More...</a><br/></td></tr>
<tr class="separator:ga5196acf4fbe44e56f5b3609c524d737d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d7443c594312c4c8a5418fd12aa8881"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00013.html#a00308">_crc_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ga8d7443c594312c4c8a5418fd12aa8881">crc_config_t</a></td></tr>
<tr class="memdesc:ga8d7443c594312c4c8a5418fd12aa8881"><td class="mdescLeft">&#160;</td><td class="mdescRight">CRC protocol configuration. <a href="#ga8d7443c594312c4c8a5418fd12aa8881">More...</a><br/></td></tr>
<tr class="separator:ga8d7443c594312c4c8a5418fd12aa8881"><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:gac9e3abdb739c7842a6f26505b418540d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#gac9e3abdb739c7842a6f26505b418540d">_crc_polynomial</a> { <br/>
&#160;&#160;<a class="el" href="a00013.html#ggac9e3abdb739c7842a6f26505b418540da9ef1c3d85d4f13199e7df63d170bf6f6">kCRC_Polynomial_CRC_CCITT</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="a00013.html#ggac9e3abdb739c7842a6f26505b418540da4a13840f3031b3aed89f60ba37a34c8b">kCRC_Polynomial_CRC_16</a> = 1U,
<br/>
&#160;&#160;<a class="el" href="a00013.html#ggac9e3abdb739c7842a6f26505b418540da12ca2ee766202eb962135c76c00b10aa">kCRC_Polynomial_CRC_32</a> = 2U
<br/>
}</td></tr>
<tr class="memdesc:gac9e3abdb739c7842a6f26505b418540d"><td class="mdescLeft">&#160;</td><td class="mdescRight">CRC polynomials to use. <a href="a00013.html#gac9e3abdb739c7842a6f26505b418540d">More...</a><br/></td></tr>
<tr class="separator:gac9e3abdb739c7842a6f26505b418540d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga7114311534a33b6688f35ceaaa3f7832"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ga7114311534a33b6688f35ceaaa3f7832">CRC_Init</a> (CRC_Type *base, const <a class="el" href="a00013.html#ga8d7443c594312c4c8a5418fd12aa8881">crc_config_t</a> *config)</td></tr>
<tr class="memdesc:ga7114311534a33b6688f35ceaaa3f7832"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables and configures the CRC peripheral module. <a href="#ga7114311534a33b6688f35ceaaa3f7832">More...</a><br/></td></tr>
<tr class="separator:ga7114311534a33b6688f35ceaaa3f7832"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a4d725b011a98efb29a26bcca04c35b"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ga7a4d725b011a98efb29a26bcca04c35b">CRC_Deinit</a> (CRC_Type *base)</td></tr>
<tr class="memdesc:ga7a4d725b011a98efb29a26bcca04c35b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the CRC peripheral module. <a href="#ga7a4d725b011a98efb29a26bcca04c35b">More...</a><br/></td></tr>
<tr class="separator:ga7a4d725b011a98efb29a26bcca04c35b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3c2e6ecc571510470849dc078685d71f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ga3c2e6ecc571510470849dc078685d71f">CRC_Reset</a> (CRC_Type *base)</td></tr>
<tr class="memdesc:ga3c2e6ecc571510470849dc078685d71f"><td class="mdescLeft">&#160;</td><td class="mdescRight">resets CRC peripheral module. <a href="#ga3c2e6ecc571510470849dc078685d71f">More...</a><br/></td></tr>
<tr class="separator:ga3c2e6ecc571510470849dc078685d71f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga43edd3bec710cb1ca121bfcadbc9b6f7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ga43edd3bec710cb1ca121bfcadbc9b6f7">CRC_WriteSeed</a> (CRC_Type *base, uint32_t seed)</td></tr>
<tr class="memdesc:ga43edd3bec710cb1ca121bfcadbc9b6f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write seed to CRC peripheral module. <a href="#ga43edd3bec710cb1ca121bfcadbc9b6f7">More...</a><br/></td></tr>
<tr class="separator:ga43edd3bec710cb1ca121bfcadbc9b6f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab681cd7c82fbafd927d6b22f23a81804"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#gab681cd7c82fbafd927d6b22f23a81804">CRC_GetDefaultConfig</a> (<a class="el" href="a00013.html#ga8d7443c594312c4c8a5418fd12aa8881">crc_config_t</a> *config)</td></tr>
<tr class="memdesc:gab681cd7c82fbafd927d6b22f23a81804"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads default values to CRC protocol configuration structure. <a href="#gab681cd7c82fbafd927d6b22f23a81804">More...</a><br/></td></tr>
<tr class="separator:gab681cd7c82fbafd927d6b22f23a81804"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac745b626d9c7bd9f3da7986374483389"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#gac745b626d9c7bd9f3da7986374483389">CRC_GetConfig</a> (CRC_Type *base, <a class="el" href="a00013.html#ga8d7443c594312c4c8a5418fd12aa8881">crc_config_t</a> *config)</td></tr>
<tr class="memdesc:gac745b626d9c7bd9f3da7986374483389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads actual values configured in CRC peripheral to CRC protocol configuration structure. <a href="#gac745b626d9c7bd9f3da7986374483389">More...</a><br/></td></tr>
<tr class="separator:gac745b626d9c7bd9f3da7986374483389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga33f99b0cb581e677dbc009a695adf5d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ga33f99b0cb581e677dbc009a695adf5d5">CRC_WriteData</a> (CRC_Type *base, const uint8_t *data, size_t dataSize)</td></tr>
<tr class="memdesc:ga33f99b0cb581e677dbc009a695adf5d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes data to the CRC module. <a href="#ga33f99b0cb581e677dbc009a695adf5d5">More...</a><br/></td></tr>
<tr class="separator:ga33f99b0cb581e677dbc009a695adf5d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0c8ce306124e645b27798fad68f3ac4f"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ga0c8ce306124e645b27798fad68f3ac4f">CRC_Get32bitResult</a> (CRC_Type *base)</td></tr>
<tr class="memdesc:ga0c8ce306124e645b27798fad68f3ac4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads 32-bit checksum from the CRC module. <a href="#ga0c8ce306124e645b27798fad68f3ac4f">More...</a><br/></td></tr>
<tr class="separator:ga0c8ce306124e645b27798fad68f3ac4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5ce766fd31166d3b0d2d7ba594dac0ce"><td class="memItemLeft" align="right" valign="top">static uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ga5ce766fd31166d3b0d2d7ba594dac0ce">CRC_Get16bitResult</a> (CRC_Type *base)</td></tr>
<tr class="memdesc:ga5ce766fd31166d3b0d2d7ba594dac0ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads 16-bit checksum from the CRC module. <a href="#ga5ce766fd31166d3b0d2d7ba594dac0ce">More...</a><br/></td></tr>
<tr class="separator:ga5ce766fd31166d3b0d2d7ba594dac0ce"><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:gac70c03eacdde850267d7fe0d7dca9591"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#gac70c03eacdde850267d7fe0d7dca9591">FSL_CRC_DRIVER_VERSION</a>&#160;&#160;&#160;(<a class="el" href="a00242.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 1, 1))</td></tr>
<tr class="memdesc:gac70c03eacdde850267d7fe0d7dca9591"><td class="mdescLeft">&#160;</td><td class="mdescRight">CRC driver version. <a href="#gac70c03eacdde850267d7fe0d7dca9591">More...</a><br/></td></tr>
<tr class="separator:gac70c03eacdde850267d7fe0d7dca9591"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="a00308" id="a00308"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _crc_config</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"><p>This structure holds the configuration for the CRC protocol. </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:acdcb878b2b9318dffe5be1e214f67663"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00013.html#ga5196acf4fbe44e56f5b3609c524d737d">crc_polynomial_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#acdcb878b2b9318dffe5be1e214f67663">polynomial</a></td></tr>
<tr class="memdesc:acdcb878b2b9318dffe5be1e214f67663"><td class="mdescLeft">&#160;</td><td class="mdescRight">CRC polynomial. <a href="#acdcb878b2b9318dffe5be1e214f67663">More...</a><br/></td></tr>
<tr class="separator:acdcb878b2b9318dffe5be1e214f67663"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af12b83e2d0d509072a6f6f9cfe851c08"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#af12b83e2d0d509072a6f6f9cfe851c08">reverseIn</a></td></tr>
<tr class="memdesc:af12b83e2d0d509072a6f6f9cfe851c08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reverse bits on input. <a href="#af12b83e2d0d509072a6f6f9cfe851c08">More...</a><br/></td></tr>
<tr class="separator:af12b83e2d0d509072a6f6f9cfe851c08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21fbdaae981f48037ac2ae4f17014d4e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a21fbdaae981f48037ac2ae4f17014d4e">complementIn</a></td></tr>
<tr class="memdesc:a21fbdaae981f48037ac2ae4f17014d4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform 1's complement on input. <a href="#a21fbdaae981f48037ac2ae4f17014d4e">More...</a><br/></td></tr>
<tr class="separator:a21fbdaae981f48037ac2ae4f17014d4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c89d6338d481fa27e2291c28b375ae1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a7c89d6338d481fa27e2291c28b375ae1">reverseOut</a></td></tr>
<tr class="memdesc:a7c89d6338d481fa27e2291c28b375ae1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reverse bits on output. <a href="#a7c89d6338d481fa27e2291c28b375ae1">More...</a><br/></td></tr>
<tr class="separator:a7c89d6338d481fa27e2291c28b375ae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b4f17bf4ed5716ce78d1505bb3b7df8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a6b4f17bf4ed5716ce78d1505bb3b7df8">complementOut</a></td></tr>
<tr class="memdesc:a6b4f17bf4ed5716ce78d1505bb3b7df8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform 1's complement on output. <a href="#a6b4f17bf4ed5716ce78d1505bb3b7df8">More...</a><br/></td></tr>
<tr class="separator:a6b4f17bf4ed5716ce78d1505bb3b7df8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5db17f3b1bf658ca8c44531a370c447d"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a5db17f3b1bf658ca8c44531a370c447d">seed</a></td></tr>
<tr class="memdesc:a5db17f3b1bf658ca8c44531a370c447d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starting checksum value. <a href="#a5db17f3b1bf658ca8c44531a370c447d">More...</a><br/></td></tr>
<tr class="separator:a5db17f3b1bf658ca8c44531a370c447d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="acdcb878b2b9318dffe5be1e214f67663"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00013.html#ga5196acf4fbe44e56f5b3609c524d737d">crc_polynomial_t</a> _crc_config::polynomial</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af12b83e2d0d509072a6f6f9cfe851c08"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _crc_config::reverseIn</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a21fbdaae981f48037ac2ae4f17014d4e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _crc_config::complementIn</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7c89d6338d481fa27e2291c28b375ae1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _crc_config::reverseOut</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a6b4f17bf4ed5716ce78d1505bb3b7df8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _crc_config::complementOut</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5db17f3b1bf658ca8c44531a370c447d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _crc_config::seed</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="gac70c03eacdde850267d7fe0d7dca9591"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FSL_CRC_DRIVER_VERSION&#160;&#160;&#160;(<a class="el" href="a00242.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 1, 1))</td>
</tr>
</table>
</div><div class="memdoc">
<p>Version 2.1.1.</p>
<p>Current version: 2.1.1</p>
<p>Change log:</p>
<ul>
<li>Version 2.0.0<ul>
<li>initial version</li>
</ul>
</li>
<li>Version 2.0.1<ul>
<li>add explicit type cast when writing to WR_DATA</li>
</ul>
</li>
<li>Version 2.0.2<ul>
<li>Fix MISRA issue</li>
</ul>
</li>
<li>Version 2.1.0<ul>
<li>Add CRC_WriteSeed function</li>
</ul>
</li>
<li>Version 2.1.1<ul>
<li>Fix MISRA issue </li>
</ul>
</li>
</ul>
</div>
</div>
<a class="anchor" id="ga37d19c87e3adeb47db8f6967df0496e1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CRC_DRIVER_USE_CRC16_CCITT_FALSE_AS_DEFAULT&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p>Uses CRC-16/CCITT-FALSE as default. </p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ga5196acf4fbe44e56f5b3609c524d737d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="a00013.html#gac9e3abdb739c7842a6f26505b418540d">_crc_polynomial</a> <a class="el" href="a00013.html#ga5196acf4fbe44e56f5b3609c524d737d">crc_polynomial_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga8d7443c594312c4c8a5418fd12aa8881"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00013.html#a00308">_crc_config</a> <a class="el" href="a00013.html#ga8d7443c594312c4c8a5418fd12aa8881">crc_config_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>This structure holds the configuration for the CRC protocol. </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="gac9e3abdb739c7842a6f26505b418540d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00013.html#gac9e3abdb739c7842a6f26505b418540d">_crc_polynomial</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="ggac9e3abdb739c7842a6f26505b418540da9ef1c3d85d4f13199e7df63d170bf6f6"></a>kCRC_Polynomial_CRC_CCITT</em>&nbsp;</td><td class="fielddoc">
<p>x^16+x^12+x^5+1 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac9e3abdb739c7842a6f26505b418540da4a13840f3031b3aed89f60ba37a34c8b"></a>kCRC_Polynomial_CRC_16</em>&nbsp;</td><td class="fielddoc">
<p>x^16+x^15+x^2+1 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac9e3abdb739c7842a6f26505b418540da12ca2ee766202eb962135c76c00b10aa"></a>kCRC_Polynomial_CRC_32</em>&nbsp;</td><td class="fielddoc">
<p>x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1 </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga7114311534a33b6688f35ceaaa3f7832"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CRC_Init </td>
<td>(</td>
<td class="paramtype">CRC_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="a00013.html#ga8d7443c594312c4c8a5418fd12aa8881">crc_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 functions enables the CRC peripheral clock in the LPC SYSCON block. It also configures the CRC engine and starts checksum computation by writing the seed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CRC peripheral address. </td></tr>
<tr><td class="paramname">config</td><td>CRC module configuration structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga7a4d725b011a98efb29a26bcca04c35b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void CRC_Deinit </td>
<td>(</td>
<td class="paramtype">CRC_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">
<p>This functions disables the CRC peripheral clock in the LPC SYSCON block.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CRC peripheral address. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga3c2e6ecc571510470849dc078685d71f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CRC_Reset </td>
<td>(</td>
<td class="paramtype">CRC_Type *&#160;</td>
<td class="paramname"><em>base</em></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>CRC peripheral address. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga43edd3bec710cb1ca121bfcadbc9b6f7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CRC_WriteSeed </td>
<td>(</td>
<td class="paramtype">CRC_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>seed</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>CRC peripheral address. </td></tr>
<tr><td class="paramname">seed</td><td>CRC Seed value. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gab681cd7c82fbafd927d6b22f23a81804"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CRC_GetDefaultConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00013.html#ga8d7443c594312c4c8a5418fd12aa8881">crc_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Loads default values to CRC protocol configuration structure. The default values are: </p>
<div class="fragment"><div class="line">* config-&gt;polynomial = <a class="code" href="a00013.html#ggac9e3abdb739c7842a6f26505b418540da9ef1c3d85d4f13199e7df63d170bf6f6">kCRC_Polynomial_CRC_CCITT</a>;</div>
<div class="line">* config-&gt;reverseIn = <span class="keyword">false</span>;</div>
<div class="line">* config-&gt;complementIn = <span class="keyword">false</span>;</div>
<div class="line">* config-&gt;reverseOut = <span class="keyword">false</span>;</div>
<div class="line">* config-&gt;complementOut = <span class="keyword">false</span>;</div>
<div class="line">* config-&gt;seed = 0xFFFFU;</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>CRC protocol configuration structure </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gac745b626d9c7bd9f3da7986374483389"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CRC_GetConfig </td>
<td>(</td>
<td class="paramtype">CRC_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00013.html#ga8d7443c594312c4c8a5418fd12aa8881">crc_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 values, including seed, can be used to resume CRC calculation later.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CRC peripheral address. </td></tr>
<tr><td class="paramname">config</td><td>CRC protocol configuration structure </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga33f99b0cb581e677dbc009a695adf5d5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CRC_WriteData </td>
<td>(</td>
<td class="paramtype">CRC_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>dataSize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Writes input data buffer bytes to CRC data register.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CRC peripheral address. </td></tr>
<tr><td class="paramname">data</td><td>Input data stream, MSByte in data[0]. </td></tr>
<tr><td class="paramname">dataSize</td><td>Size of the input data buffer in bytes. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga0c8ce306124e645b27798fad68f3ac4f"></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 CRC_Get32bitResult </td>
<td>(</td>
<td class="paramtype">CRC_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">
<p>Reads CRC data register.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CRC peripheral address. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>final 32-bit checksum, after configured bit reverse and complement operations. </dd></dl>
</div>
</div>
<a class="anchor" id="ga5ce766fd31166d3b0d2d7ba594dac0ce"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint16_t CRC_Get16bitResult </td>
<td>(</td>
<td class="paramtype">CRC_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">
<p>Reads CRC data register.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CRC peripheral address. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>final 16-bit checksum, after configured bit reverse and complement operations. </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>