525 lines
30 KiB
HTML
525 lines
30 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
|
<title>Kinetis SDK v.2.0 API Reference Manual: Smart Card UART 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">Kinetis SDK v.2.0 API Reference Manual
|
|
 <span id="projectnumber">Rev. 0</span>
|
|
</div>
|
|
<div id="projectbrief">Freescale Semiconductor, Inc.</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.5 -->
|
|
<script type="text/javascript">
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
</script>
|
|
<div id="navrow1" class="tabs">
|
|
<ul class="tablist">
|
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
|
<li><a href="modules.html"><span>API Reference</span></a></li>
|
|
<li>
|
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
|
<span class="left">
|
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
alt=""/>
|
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
|
</span><span class="right">
|
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
|
</span>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
$(document).ready(function(){initNavTree('group__smartcard__uart__driver.html','');});
|
|
</script>
|
|
<div id="doc-content">
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Pages</a></div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#define-members">Macros</a> |
|
|
<a href="#func-members">Functions</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">Smart Card UART Driver<div class="ingroups"><a class="el" href="group__smartcard.html">Smart Card</a></div></div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
|
|
<p>The Smart Card UART driver uses a standard UART peripheral which supports the ISO-7816 standard. The driver supports transmission functionality in the CPU mode. The driver also supports non-blocking (asynchronous) type of data transfers. The blocking (synchronous) transfer is supported only by the RTOS adaptation layer. </p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
|
|
Macros</h2></td></tr>
|
|
<tr class="memitem:ga37c9079278fa53fc6671967d7fa659d1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga37c9079278fa53fc6671967d7fa659d1"></a>
|
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__smartcard__uart__driver.html#ga37c9079278fa53fc6671967d7fa659d1">SMARTCARD_EMV_RX_NACK_THRESHOLD</a>   (5u)</td></tr>
|
|
<tr class="memdesc:ga37c9079278fa53fc6671967d7fa659d1"><td class="mdescLeft"> </td><td class="mdescRight">EMV RX NACK interrupt generation threshold. <br/></td></tr>
|
|
<tr class="separator:ga37c9079278fa53fc6671967d7fa659d1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga689c73e35bdc86ca3bca8335a1e31f34"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga689c73e35bdc86ca3bca8335a1e31f34"></a>
|
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__smartcard__uart__driver.html#ga689c73e35bdc86ca3bca8335a1e31f34">SMARTCARD_EMV_TX_NACK_THRESHOLD</a>   (3u)</td></tr>
|
|
<tr class="memdesc:ga689c73e35bdc86ca3bca8335a1e31f34"><td class="mdescLeft"> </td><td class="mdescRight">EMV TX NACK interrupt generation threshold. <br/></td></tr>
|
|
<tr class="separator:ga689c73e35bdc86ca3bca8335a1e31f34"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga485558fa92f49ac98c07da708bfe7e49"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga485558fa92f49ac98c07da708bfe7e49"></a>
|
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__smartcard__uart__driver.html#ga485558fa92f49ac98c07da708bfe7e49">SMARTCARD_EMV_RX_TO_TX_GUARD_TIME_T0</a>   (0x0u)</td></tr>
|
|
<tr class="memdesc:ga485558fa92f49ac98c07da708bfe7e49"><td class="mdescLeft"> </td><td class="mdescRight">EMV TX & RX GUART TIME default value. <br/></td></tr>
|
|
<tr class="separator:ga485558fa92f49ac98c07da708bfe7e49"><td class="memSeparator" colspan="2"> </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:ga7d420a8c58ab3f2f2693892c12c37625"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__smartcard__uart__driver.html#ga7d420a8c58ab3f2f2693892c12c37625">SMARTCARD_UART_GetDefaultConfig</a> (<a class="el" href="group__smartcard.html#structsmartcard__card__params__t">smartcard_card_params_t</a> *cardParams)</td></tr>
|
|
<tr class="memdesc:ga7d420a8c58ab3f2f2693892c12c37625"><td class="mdescLeft"> </td><td class="mdescRight">Fill in smartcard_card_params structure with default values according EMV 4.3 specification. <a href="#ga7d420a8c58ab3f2f2693892c12c37625">More...</a><br/></td></tr>
|
|
<tr class="separator:ga7d420a8c58ab3f2f2693892c12c37625"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga8e1818998bfac8fc753ffd4c3a2250dd"><td class="memItemLeft" align="right" valign="top">status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__smartcard__uart__driver.html#ga8e1818998bfac8fc753ffd4c3a2250dd">SMARTCARD_UART_Init</a> (UART_Type *base, <a class="el" href="group__smartcard.html#structsmartcard__context__t">smartcard_context_t</a> *context, uint32_t srcClock_Hz)</td></tr>
|
|
<tr class="memdesc:ga8e1818998bfac8fc753ffd4c3a2250dd"><td class="mdescLeft"> </td><td class="mdescRight">Initializes an UART peripheral for smart card/ISO-7816 operation. <a href="#ga8e1818998bfac8fc753ffd4c3a2250dd">More...</a><br/></td></tr>
|
|
<tr class="separator:ga8e1818998bfac8fc753ffd4c3a2250dd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gab5f388c158f882b31265dbafd1879427"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__smartcard__uart__driver.html#gab5f388c158f882b31265dbafd1879427">SMARTCARD_UART_Deinit</a> (UART_Type *base)</td></tr>
|
|
<tr class="memdesc:gab5f388c158f882b31265dbafd1879427"><td class="mdescLeft"> </td><td class="mdescRight">This function disables the UART interrupts, disables the transmitter and receiver, and flushes the FIFOs (for modules that support FIFOs) and gates UART clock in SIM. <a href="#gab5f388c158f882b31265dbafd1879427">More...</a><br/></td></tr>
|
|
<tr class="separator:gab5f388c158f882b31265dbafd1879427"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga5bdd3e03494cb34c1ddebea73efc2d85"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__smartcard__uart__driver.html#ga5bdd3e03494cb34c1ddebea73efc2d85">SMARTCARD_UART_GetTransferRemainingBytes</a> (UART_Type *base, <a class="el" href="group__smartcard.html#structsmartcard__context__t">smartcard_context_t</a> *context)</td></tr>
|
|
<tr class="memdesc:ga5bdd3e03494cb34c1ddebea73efc2d85"><td class="mdescLeft"> </td><td class="mdescRight">Returns whether the previous UART transfer has finished. <a href="#ga5bdd3e03494cb34c1ddebea73efc2d85">More...</a><br/></td></tr>
|
|
<tr class="separator:ga5bdd3e03494cb34c1ddebea73efc2d85"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gae2afc1e60aa98bdb3458cc00184415f1"><td class="memItemLeft" align="right" valign="top">status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__smartcard__uart__driver.html#gae2afc1e60aa98bdb3458cc00184415f1">SMARTCARD_UART_AbortTransfer</a> (UART_Type *base, <a class="el" href="group__smartcard.html#structsmartcard__context__t">smartcard_context_t</a> *context)</td></tr>
|
|
<tr class="memdesc:gae2afc1e60aa98bdb3458cc00184415f1"><td class="mdescLeft"> </td><td class="mdescRight">Terminates an asynchronous UART transfer early. <a href="#gae2afc1e60aa98bdb3458cc00184415f1">More...</a><br/></td></tr>
|
|
<tr class="separator:gae2afc1e60aa98bdb3458cc00184415f1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga9c4804fce250869bfafc99f936783cb5"><td class="memItemLeft" align="right" valign="top">status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__smartcard__uart__driver.html#ga9c4804fce250869bfafc99f936783cb5">SMARTCARD_UART_TransferNonBlocking</a> (UART_Type *base, <a class="el" href="group__smartcard.html#structsmartcard__context__t">smartcard_context_t</a> *context, <a class="el" href="group__smartcard.html#structsmartcard__xfer__t">smartcard_xfer_t</a> *xfer)</td></tr>
|
|
<tr class="memdesc:ga9c4804fce250869bfafc99f936783cb5"><td class="mdescLeft"> </td><td class="mdescRight">Transfer data using interrupts. <a href="#ga9c4804fce250869bfafc99f936783cb5">More...</a><br/></td></tr>
|
|
<tr class="separator:ga9c4804fce250869bfafc99f936783cb5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga2627ac127c8229416e6e269667b19529"><td class="memItemLeft" align="right" valign="top">status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__smartcard__uart__driver.html#ga2627ac127c8229416e6e269667b19529">SMARTCARD_UART_Control</a> (UART_Type *base, <a class="el" href="group__smartcard.html#structsmartcard__context__t">smartcard_context_t</a> *context, <a class="el" href="group__smartcard.html#gac4b9128bb3719dfb0675abdb6e18daae">smartcard_control_t</a> control, uint32_t param)</td></tr>
|
|
<tr class="memdesc:ga2627ac127c8229416e6e269667b19529"><td class="mdescLeft"> </td><td class="mdescRight">Controls UART module as per different user request. <a href="#ga2627ac127c8229416e6e269667b19529">More...</a><br/></td></tr>
|
|
<tr class="separator:ga2627ac127c8229416e6e269667b19529"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga656774df985f7b19e58afbd0725e42d7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__smartcard__uart__driver.html#ga656774df985f7b19e58afbd0725e42d7">SMARTCARD_UART_IRQHandler</a> (UART_Type *base, <a class="el" href="group__smartcard.html#structsmartcard__context__t">smartcard_context_t</a> *context)</td></tr>
|
|
<tr class="memdesc:ga656774df985f7b19e58afbd0725e42d7"><td class="mdescLeft"> </td><td class="mdescRight">Interrupt handler for UART. <a href="#ga656774df985f7b19e58afbd0725e42d7">More...</a><br/></td></tr>
|
|
<tr class="separator:ga656774df985f7b19e58afbd0725e42d7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga7968212d804b8e061dce8724195bedcc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__smartcard__uart__driver.html#ga7968212d804b8e061dce8724195bedcc">SMARTCARD_UART_ErrIRQHandler</a> (UART_Type *base, <a class="el" href="group__smartcard.html#structsmartcard__context__t">smartcard_context_t</a> *context)</td></tr>
|
|
<tr class="memdesc:ga7968212d804b8e061dce8724195bedcc"><td class="mdescLeft"> </td><td class="mdescRight">Error Interrupt handler for UART. <a href="#ga7968212d804b8e061dce8724195bedcc">More...</a><br/></td></tr>
|
|
<tr class="separator:ga7968212d804b8e061dce8724195bedcc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga5bd1185f2656a62e5213019e4816a893"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__smartcard__uart__driver.html#ga5bd1185f2656a62e5213019e4816a893">SMARTCARD_UART_TSExpiryCallback</a> (UART_Type *base, <a class="el" href="group__smartcard.html#structsmartcard__context__t">smartcard_context_t</a> *context)</td></tr>
|
|
<tr class="memdesc:ga5bd1185f2656a62e5213019e4816a893"><td class="mdescLeft"> </td><td class="mdescRight">Handles initial TS character timer time-out event. <a href="#ga5bd1185f2656a62e5213019e4816a893">More...</a><br/></td></tr>
|
|
<tr class="separator:ga5bd1185f2656a62e5213019e4816a893"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<h2 class="groupheader">Function Documentation</h2>
|
|
<a class="anchor" id="ga7d420a8c58ab3f2f2693892c12c37625"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void SMARTCARD_UART_GetDefaultConfig </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__smartcard.html#structsmartcard__card__params__t">smartcard_card_params_t</a> * </td>
|
|
<td class="paramname"><em>cardParams</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">cardParams</td><td>The configuration structure of type <a class="el" href="group__smartcard.html#structsmartcard__interface__config__t" title="Defines user specified configuration of Smart card interface. ">smartcard_interface_config_t</a>. Function fill in members: Fi = 372; Di = 1; currentD = 1; WI = 0x0A; GTN = 0x00; with default values. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga8e1818998bfac8fc753ffd4c3a2250dd"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">status_t SMARTCARD_UART_Init </td>
|
|
<td>(</td>
|
|
<td class="paramtype">UART_Type * </td>
|
|
<td class="paramname"><em>base</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__smartcard.html#structsmartcard__context__t">smartcard_context_t</a> * </td>
|
|
<td class="paramname"><em>context</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint32_t </td>
|
|
<td class="paramname"><em>srcClock_Hz</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>This function Un-gate UART clock, initializes the module to EMV default settings, configures the IRQ, enables the module-level interrupt to the core and initialize driver context.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">base</td><td>The UART peripheral base address. </td></tr>
|
|
<tr><td class="paramname">context</td><td>A pointer to a smart card driver context structure. </td></tr>
|
|
<tr><td class="paramname">srcClock_Hz</td><td>Smart card clock generation module source clock.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>An error code or kStatus_SMARTCARD_Success. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="gab5f388c158f882b31265dbafd1879427"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void SMARTCARD_UART_Deinit </td>
|
|
<td>(</td>
|
|
<td class="paramtype">UART_Type * </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>The UART peripheral base address. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga5bdd3e03494cb34c1ddebea73efc2d85"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int32_t SMARTCARD_UART_GetTransferRemainingBytes </td>
|
|
<td>(</td>
|
|
<td class="paramtype">UART_Type * </td>
|
|
<td class="paramname"><em>base</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__smartcard.html#structsmartcard__context__t">smartcard_context_t</a> * </td>
|
|
<td class="paramname"><em>context</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>When performing an async transfer, call this function to ascertain the context of the current transfer: in progress (or busy) or complete (success). If the transfer is still in progress, the user can obtain the number of words that have not been transferred, by reading xSize of smart card context structure.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">base</td><td>The UART peripheral base address. </td></tr>
|
|
<tr><td class="paramname">context</td><td>A pointer to a smart card driver context structure.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>The number of bytes not transferred. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="gae2afc1e60aa98bdb3458cc00184415f1"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">status_t SMARTCARD_UART_AbortTransfer </td>
|
|
<td>(</td>
|
|
<td class="paramtype">UART_Type * </td>
|
|
<td class="paramname"><em>base</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__smartcard.html#structsmartcard__context__t">smartcard_context_t</a> * </td>
|
|
<td class="paramname"><em>context</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>During an async UART transfer, the user can terminate the transfer early if the transfer is still in progress.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">base</td><td>The UART peripheral base address. </td></tr>
|
|
<tr><td class="paramname">context</td><td>A pointer to a smart card driver context structure.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="retval"><dt>Return values</dt><dd>
|
|
<table class="retval">
|
|
<tr><td class="paramname">kStatus_SMARTCARD_Success</td><td>The transfer abort was successful. </td></tr>
|
|
<tr><td class="paramname">kStatus_SMARTCARD_NoTransmitInProgress</td><td>No transmission is currently in progress. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga9c4804fce250869bfafc99f936783cb5"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">status_t SMARTCARD_UART_TransferNonBlocking </td>
|
|
<td>(</td>
|
|
<td class="paramtype">UART_Type * </td>
|
|
<td class="paramname"><em>base</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__smartcard.html#structsmartcard__context__t">smartcard_context_t</a> * </td>
|
|
<td class="paramname"><em>context</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__smartcard.html#structsmartcard__xfer__t">smartcard_xfer_t</a> * </td>
|
|
<td class="paramname"><em>xfer</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>A non-blocking (also known as asynchronous) function means that the function returns immediately after initiating the transfer function. The application has to get the transfer status to see when the transfer is complete. In other words, after calling non-blocking (asynchronous) transfer function, the application must get the transfer status to check if transmit is completed or not.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">base</td><td>The UART peripheral base address. </td></tr>
|
|
<tr><td class="paramname">context</td><td>A pointer to a smart card driver context structure. </td></tr>
|
|
<tr><td class="paramname">xfer</td><td>A pointer to smart card transfer structure where are linked buffers and sizes.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>An error code or kStatus_SMARTCARD_Success. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga2627ac127c8229416e6e269667b19529"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">status_t SMARTCARD_UART_Control </td>
|
|
<td>(</td>
|
|
<td class="paramtype">UART_Type * </td>
|
|
<td class="paramname"><em>base</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__smartcard.html#structsmartcard__context__t">smartcard_context_t</a> * </td>
|
|
<td class="paramname"><em>context</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__smartcard.html#gac4b9128bb3719dfb0675abdb6e18daae">smartcard_control_t</a> </td>
|
|
<td class="paramname"><em>control</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">uint32_t </td>
|
|
<td class="paramname"><em>param</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">base</td><td>The UART peripheral base address. </td></tr>
|
|
<tr><td class="paramname">context</td><td>A pointer to a smart card driver context structure. </td></tr>
|
|
<tr><td class="paramname">control</td><td>Smart card command type. </td></tr>
|
|
<tr><td class="paramname">param</td><td>Integer value of specific to control command.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<p>return An kStatus_SMARTCARD_OtherError in case of error return kStatus_SMARTCARD_Success in success </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga656774df985f7b19e58afbd0725e42d7"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void SMARTCARD_UART_IRQHandler </td>
|
|
<td>(</td>
|
|
<td class="paramtype">UART_Type * </td>
|
|
<td class="paramname"><em>base</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__smartcard.html#structsmartcard__context__t">smartcard_context_t</a> * </td>
|
|
<td class="paramname"><em>context</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>This handler uses the buffers stored in the <a class="el" href="group__smartcard.html#structsmartcard__context__t" title="Runtime state of the Smart card driver. ">smartcard_context_t</a> structures to transfer data. Smart card driver requires this function to call when UART interrupt occurs.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">base</td><td>The UART peripheral base address. </td></tr>
|
|
<tr><td class="paramname">context</td><td>A pointer to a smart card driver context structure. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga7968212d804b8e061dce8724195bedcc"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void SMARTCARD_UART_ErrIRQHandler </td>
|
|
<td>(</td>
|
|
<td class="paramtype">UART_Type * </td>
|
|
<td class="paramname"><em>base</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__smartcard.html#structsmartcard__context__t">smartcard_context_t</a> * </td>
|
|
<td class="paramname"><em>context</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>This function handles error conditions during transfer.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">base</td><td>The UART peripheral base address. </td></tr>
|
|
<tr><td class="paramname">context</td><td>A pointer to a smart card driver context structure. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga5bd1185f2656a62e5213019e4816a893"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void SMARTCARD_UART_TSExpiryCallback </td>
|
|
<td>(</td>
|
|
<td class="paramtype">UART_Type * </td>
|
|
<td class="paramname"><em>base</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__smartcard.html#structsmartcard__context__t">smartcard_context_t</a> * </td>
|
|
<td class="paramname"><em>context</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">base</td><td>The UART peripheral base address. </td></tr>
|
|
<tr><td class="paramname">context</td><td>A pointer to a smart card driver context structure. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<!-- HTML footer for doxygen 1.8.5-->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul class="foot">
|
|
<li class="footer">© 2016 Freescale Semiconductor, Inc. All rights reserved.
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|