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

1445 lines
104 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: IAP: In Application Programming 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('a00018.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="#groups">Modules</a> &#124;
<a href="#files">Files</a> &#124;
<a href="#nested-classes">Data Structures</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">IAP: In Application Programming 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 driver for the In Application Programming (IAP). <br/>
It provides a set of functions to call the on-chip in application programming interface. User code executing from on-chip RAM can call these function to read information like part id, read and write flash, read and write ffr. <br/>
</p>
<h1><a class="anchor" id="IAPInit"></a>
In Application Programming operation</h1>
<p><a class="el" href="a00018.html#ga19c10d3524010a2d33369855d74a5c04" title="Initializes the global flash properties structure members. ">FLASH_Init()</a> Initializes the global flash properties structure members</p>
<p><a class="el" href="a00018.html#gae9cb58f4cf76fec37631c4f344e2fb10" title="Erases the flash sectors encompassed by parameters passed into function. ">FLASH_Erase()</a> Erases the flash sectors encompassed by parameters passed into function</p>
<p><a class="el" href="a00018.html#ga2c5c46f3f1ea3c7ae95d26cbfd383a9d" title="Programs flash with data at locations passed in through parameters. ">FLASH_Program()</a> Programs flash with data at locations passed in through parameters</p>
<p><a class="el" href="a00018.html#ga26fdbf648f4d801db902b3f5fa336ebb" title="Verifies an erasure of the desired flash area at a specified margin level. ">FLASH_VerifyErase()</a> Verifies an erasure of the desired flash area hase been erased</p>
<p><a class="el" href="a00018.html#ga63e625ccc6cd5f2ae161e662e6f13665" title="Verifies programming of the desired flash area at a specified margin level. ">FLASH_VerifyProgram()</a> Verifies programming of the desired flash area hase been programed</p>
<p><a class="el" href="a00018.html#gafd0d83bc8fec50fe9a9121d2ec906697" title="Returns the desired flash property. ">FLASH_GetProperty()</a> Returns the desired flash property.</p>
<p><a class="el" href="a00257.html#ga7b56fef8de27afe297156498580cceca" title="Initializes the global FFR properties structure members. ">FFR_Init()</a> Generic APIs for FFR</p>
<p>FFR_Deinit() Generic APIs for FFR</p>
<p>FFR_CustomerPagesInit() APIs to access CFPA pages</p>
<p><a class="el" href="a00257.html#gafa2d51fa7d9c0bfad8c0c8b53cb9225a" title="APIs to access CFPA pages. ">FFR_InfieldPageWrite()</a> APIs to access CFPA pages</p>
<p><a class="el" href="a00257.html#ga344a9e9dce0e044d464525827c3e9d60" title="APIs to access CFPA pages. ">FFR_GetCustomerInfieldData()</a> APIs to access CMPA pages</p>
<p><a class="el" href="a00257.html#gaaa7529a6cb8acdc13e0434ad307e3118" title="APIs to access CMPA page. ">FFR_GetCustomerData()</a> Read data stored in 'Customer Factory CFG Page'</p>
<p><a class="el" href="a00257.html#gaf9775a49e91c05d4897f053d339edb65" title="This routine writes the 3 pages allocated for Key store data,. ">FFR_KeystoreWrite()</a> Read data stored in 'Customer Factory CFG Page'</p>
<p><a class="el" href="a00257.html#gaf171386e49f62e3c05f20a222051e888" title="Get/Read Key store code routines. ">FFR_KeystoreGetAC()</a> Read data stored in 'Customer Factory CFG Page'</p>
<p><a class="el" href="a00257.html#gabf4e591fef5230912f7c1a13b4dca81a" title="Get/Read Key store code routines. ">FFR_KeystoreGetKC()</a> Read data stored in 'Customer Factory CFG Page'</p>
<p><a class="el" href="a00257.html#ga54d9b77246367ec8834a0f1edc121afb" title="APIs to access CMPA page. ">FFR_GetUUID()</a> Read data stored in 'NXP Manufacuring Programmed CFG Page'</p>
<p>FFR_GetManufactureData() Read data stored in 'NXP Manufacuring Programmed CFG Page'</p>
<p><a class="el" href="a00034.html#ga5f9b4a7f5766e62a6352d9c36a929465" title="Initialize ROM API for a given operation. ">kb_init()</a> Initialize ROM API for a given operation</p>
<p><a class="el" href="a00034.html#ga7ecd834f6e019fb55cdcb80176c590e7" title="Cleans up the ROM API context. ">kb_deinit()</a> Cleans up the ROM API context</p>
<p><a class="el" href="a00034.html#ga589fc0e337a92696431dea7ea91c1fd8" title="Perform the operation configured during init. ">kb_execute()</a> Perform the operation configured during init</p>
<p><a class="el" href="a00258.html#gae7e46a34133ec6104f755f4988f0a3dd" title="Authenticate entry function with ARENA allocator init. ">skboot_authenticate()</a> Authenticate entry function with ARENA allocator init</p>
<p><a class="el" href="a00258.html#gaef149942461581de64f7739062643a8e" title="Interface for image authentication API. ">HASH_IRQHandler()</a> Interface for image authentication API</p>
<p><a class="el" href="a00034.html#ga5f9b4a7f5766e62a6352d9c36a929465" title="Initialize ROM API for a given operation. ">kb_init()</a> Initialize ROM API for a given operation</p>
<p><a class="el" href="a00034.html#ga7ecd834f6e019fb55cdcb80176c590e7" title="Cleans up the ROM API context. ">kb_deinit()</a> Cleans up the ROM API context</p>
<p><a class="el" href="a00034.html#ga589fc0e337a92696431dea7ea91c1fd8" title="Perform the operation configured during init. ">kb_execute()</a> Perform the operation configured during init</p>
<p><a class="el" href="a00258.html#gae7e46a34133ec6104f755f4988f0a3dd" title="Authenticate entry function with ARENA allocator init. ">skboot_authenticate()</a> Authenticate entry function with ARENA allocator init</p>
<p><a class="el" href="a00258.html#gaef149942461581de64f7739062643a8e" title="Interface for image authentication API. ">HASH_IRQHandler()</a> Interface for image authentication API</p>
<h1><a class="anchor" id="IAPTypUC"></a>
Typical use case</h1>
<h2><a class="anchor" id="IAPBasicOps"></a>
IAP Basic Operations</h2>
<p>Refer to the driver examples codes located at &lt;SDK_ROOT&gt;/boards/&lt;BOARD&gt;/driver_examples/iap1 </p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:a00257"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00257.html">IAP_FFR Driver</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00034"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00034.html">IAP_KBP Driver</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00258"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00258.html">skboot_authenticate</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="files"></a>
Files</h2></td></tr>
<tr class="memitem:a00182"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00182.html">fsl_iap.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:a00323"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#a00323">_flash_ecc_log</a></td></tr>
<tr class="memdesc:a00323"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash ECC log info. <a href="a00018.html#a00323">More...</a><br/></td></tr>
<tr class="separator:a00323"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00325"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#a00325">_flash_mode_config</a></td></tr>
<tr class="memdesc:a00325"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash controller paramter config. <a href="a00018.html#a00325">More...</a><br/></td></tr>
<tr class="separator:a00325"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00324"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#a00324">_flash_ffr_config</a></td></tr>
<tr class="memdesc:a00324"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash controller paramter config. <a href="a00018.html#a00324">More...</a><br/></td></tr>
<tr class="separator:a00324"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00322"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#a00322">_flash_config</a></td></tr>
<tr class="memdesc:a00322"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash driver state information. <a href="a00018.html#a00322">More...</a><br/></td></tr>
<tr class="separator:a00322"><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:gaded074dd3bc89c29d97e51089902698a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaded074dd3bc89c29d97e51089902698a"></a>
typedef enum <a class="el" href="a00018.html#gab58c8e11c7236162806360885b462391">_flash_property_tag</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#gaded074dd3bc89c29d97e51089902698a">flash_property_tag_t</a></td></tr>
<tr class="memdesc:gaded074dd3bc89c29d97e51089902698a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for various flash properties. <br/></td></tr>
<tr class="separator:gaded074dd3bc89c29d97e51089902698a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabb2e62ba77b27315f25d8faea0d0a5ee"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00018.html#a00323">_flash_ecc_log</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#gabb2e62ba77b27315f25d8faea0d0a5ee">flash_ecc_log_t</a></td></tr>
<tr class="memdesc:gabb2e62ba77b27315f25d8faea0d0a5ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash ECC log info. <a href="#gabb2e62ba77b27315f25d8faea0d0a5ee">More...</a><br/></td></tr>
<tr class="separator:gabb2e62ba77b27315f25d8faea0d0a5ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ae0ee845f11a458da25f02dc79b95ce"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00018.html#a00325">_flash_mode_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ga6ae0ee845f11a458da25f02dc79b95ce">flash_mode_config_t</a></td></tr>
<tr class="memdesc:ga6ae0ee845f11a458da25f02dc79b95ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash controller paramter config. <a href="#ga6ae0ee845f11a458da25f02dc79b95ce">More...</a><br/></td></tr>
<tr class="separator:ga6ae0ee845f11a458da25f02dc79b95ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac258bbee14592147674984d16ac3897e"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00018.html#a00324">_flash_ffr_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#gac258bbee14592147674984d16ac3897e">flash_ffr_config_t</a></td></tr>
<tr class="memdesc:gac258bbee14592147674984d16ac3897e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash controller paramter config. <a href="#gac258bbee14592147674984d16ac3897e">More...</a><br/></td></tr>
<tr class="separator:gac258bbee14592147674984d16ac3897e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0dfc969e6f9e17c17e60d823565141a5"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00018.html#a00322">_flash_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ga0dfc969e6f9e17c17e60d823565141a5">flash_config_t</a></td></tr>
<tr class="memdesc:ga0dfc969e6f9e17c17e60d823565141a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash driver state information. <a href="#ga0dfc969e6f9e17c17e60d823565141a5">More...</a><br/></td></tr>
<tr class="separator:ga0dfc969e6f9e17c17e60d823565141a5"><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:gab58c8e11c7236162806360885b462391"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#gab58c8e11c7236162806360885b462391">_flash_property_tag</a> { <br/>
&#160;&#160;<a class="el" href="a00018.html#ggab58c8e11c7236162806360885b462391aa6c433411ecb4bfea9d74504e266e219">kFLASH_PropertyPflashSectorSize</a> = 0x00U,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggab58c8e11c7236162806360885b462391a68caa1558315b7704b08d85c42869eb5">kFLASH_PropertyPflashTotalSize</a> = 0x01U,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggab58c8e11c7236162806360885b462391ad8c3b85ca1dc8fc5ef03e1954aef873e">kFLASH_PropertyPflashBlockSize</a> = 0x02U,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggab58c8e11c7236162806360885b462391abb40541593520b9c1a87648a26e81957">kFLASH_PropertyPflashBlockCount</a> = 0x03U,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggab58c8e11c7236162806360885b462391a0159abfba4e6ca47c70a89ea2fc24ab9">kFLASH_PropertyPflashBlockBaseAddr</a> = 0x04U,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggab58c8e11c7236162806360885b462391a1a961d022c505c2bf7c33a35ee2cb97e">kFLASH_PropertyPflashPageSize</a> = 0x30U,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggab58c8e11c7236162806360885b462391ab4f2ba3cd4bcc09b05d316ba52741ce1">kFLASH_PropertyPflashSystemFreq</a> = 0x31U,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggab58c8e11c7236162806360885b462391ae62486678e9684e2466e76bf2585edbe">kFLASH_PropertyFfrSectorSize</a> = 0x40U,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggab58c8e11c7236162806360885b462391a49790dbb13068c8bfb83ed898733754c">kFLASH_PropertyFfrTotalSize</a> = 0x41U,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggab58c8e11c7236162806360885b462391a08f490d4df6717895bccc2baf53521db">kFLASH_PropertyFfrBlockBaseAddr</a> = 0x42U,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggab58c8e11c7236162806360885b462391a133f45cffe10550cb20471dd5c2986ae">kFLASH_PropertyFfrPageSize</a> = 0x43U
<br/>
}</td></tr>
<tr class="memdesc:gab58c8e11c7236162806360885b462391"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for various flash properties. <a href="a00018.html#gab58c8e11c7236162806360885b462391">More...</a><br/></td></tr>
<tr class="separator:gab58c8e11c7236162806360885b462391"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga175706da61374ffa328aefca6baeeef9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ga175706da61374ffa328aefca6baeeef9">_flash_max_erase_page_value</a> { <a class="el" href="a00018.html#gga175706da61374ffa328aefca6baeeef9ac46736f6f2c4068b76fb336a63231955">kFLASH_MaxPagesToErase</a> = 100U
}</td></tr>
<tr class="memdesc:ga175706da61374ffa328aefca6baeeef9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for flash max pages to erase. <a href="a00018.html#ga175706da61374ffa328aefca6baeeef9">More...</a><br/></td></tr>
<tr class="separator:ga175706da61374ffa328aefca6baeeef9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4f704fb04b083ac1b935e7970efcd7f3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ga4f704fb04b083ac1b935e7970efcd7f3">_flash_alignment_property</a> { <br/>
&#160;&#160;<a class="el" href="a00018.html#gga4f704fb04b083ac1b935e7970efcd7f3aa260fe0e5f3491829454440bcd6903b1">kFLASH_AlignementUnitVerifyErase</a> = 4,
<br/>
&#160;&#160;<a class="el" href="a00018.html#gga4f704fb04b083ac1b935e7970efcd7f3a30967bbae71ada9c3f3e752e975fcf1c">kFLASH_AlignementUnitProgram</a> = 512,
<br/>
&#160;&#160;<a class="el" href="a00018.html#gga4f704fb04b083ac1b935e7970efcd7f3ab962d52eb119a4ab6fc2caed4b76d3da">kFLASH_AlignementUnitSingleWordRead</a> = 16
<br/>
}</td></tr>
<tr class="memdesc:ga4f704fb04b083ac1b935e7970efcd7f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for flash alignment property. <a href="a00018.html#ga4f704fb04b083ac1b935e7970efcd7f3">More...</a><br/></td></tr>
<tr class="separator:ga4f704fb04b083ac1b935e7970efcd7f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7d0033f5217bee3498ba6727bb8436f5"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ga7d0033f5217bee3498ba6727bb8436f5">_flash_read_ecc_option</a> { , <a class="el" href="a00018.html#gga7d0033f5217bee3498ba6727bb8436f5af3e9ff48112cec21e101dffe72176a3e">kFLASH_ReadWithEccOff</a> = 1
}</td></tr>
<tr class="memdesc:ga7d0033f5217bee3498ba6727bb8436f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for flash read ecc option. <a href="a00018.html#ga7d0033f5217bee3498ba6727bb8436f5">More...</a><br/></td></tr>
<tr class="separator:ga7d0033f5217bee3498ba6727bb8436f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga49049f8b00b784727809e0975d4ee8f5"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ga49049f8b00b784727809e0975d4ee8f5">_flash_read_margin_option</a> { <br/>
&#160;&#160;<a class="el" href="a00018.html#gga49049f8b00b784727809e0975d4ee8f5a060396654b64f81aa4a9836528aad620">kFLASH_ReadMarginNormal</a> = 0,
<br/>
&#160;&#160;<a class="el" href="a00018.html#gga49049f8b00b784727809e0975d4ee8f5a1db7060ce9ed8443bec1601d47bba106">kFLASH_ReadMarginVsProgram</a> = 1,
<br/>
&#160;&#160;<a class="el" href="a00018.html#gga49049f8b00b784727809e0975d4ee8f5a87a40e374177043fefd1b746e4947b0b">kFLASH_ReadMarginVsErase</a> = 2,
<br/>
&#160;&#160;<a class="el" href="a00018.html#gga49049f8b00b784727809e0975d4ee8f5a352ba8303fb2a95d00e8bbd24e202785">kFLASH_ReadMarginIllegalBitCombination</a> = 3
<br/>
}</td></tr>
<tr class="memdesc:ga49049f8b00b784727809e0975d4ee8f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for flash read margin option. <a href="a00018.html#ga49049f8b00b784727809e0975d4ee8f5">More...</a><br/></td></tr>
<tr class="separator:ga49049f8b00b784727809e0975d4ee8f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3751bb2569ae737e5715f11690863b9e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ga3751bb2569ae737e5715f11690863b9e">_flash_read_dmacc_option</a> { <br/>
&#160;&#160;<a class="el" href="a00018.html#gga3751bb2569ae737e5715f11690863b9eae4229283767c59eaecc6a51042bdea2c">kFLASH_ReadDmaccDisabled</a> = 0,
<br/>
&#160;&#160;<a class="el" href="a00018.html#gga3751bb2569ae737e5715f11690863b9ea672221e49ca5d1dda37acbb6c5cf50e1">kFLASH_ReadDmaccEnabled</a> = 1
<br/>
}</td></tr>
<tr class="memdesc:ga3751bb2569ae737e5715f11690863b9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for flash read dmacc option. <a href="a00018.html#ga3751bb2569ae737e5715f11690863b9e">More...</a><br/></td></tr>
<tr class="separator:ga3751bb2569ae737e5715f11690863b9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5fa983c5d1d7c4eb9a72d6a6e1779ea2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ga5fa983c5d1d7c4eb9a72d6a6e1779ea2">_flash_ramp_control_option</a> { <br/>
&#160;&#160;<a class="el" href="a00018.html#gga5fa983c5d1d7c4eb9a72d6a6e1779ea2ad138cd6599cd9280a1266e0c9da94d8c">kFLASH_RampControlDivisionFactorReserved</a> = 0,
<br/>
&#160;&#160;<a class="el" href="a00018.html#gga5fa983c5d1d7c4eb9a72d6a6e1779ea2ac76e44dd23b04a52405112eadd7c4a4c">kFLASH_RampControlDivisionFactor256</a> = 1,
<br/>
&#160;&#160;<a class="el" href="a00018.html#gga5fa983c5d1d7c4eb9a72d6a6e1779ea2aed97fd3eb0e662e8e9f19b236cc59c5a">kFLASH_RampControlDivisionFactor128</a> = 2,
<br/>
&#160;&#160;<a class="el" href="a00018.html#gga5fa983c5d1d7c4eb9a72d6a6e1779ea2a18fd5e4820b865ebff51028789ee2784">kFLASH_RampControlDivisionFactor64</a> = 3
<br/>
}</td></tr>
<tr class="memdesc:ga5fa983c5d1d7c4eb9a72d6a6e1779ea2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for flash ramp control option. <a href="a00018.html#ga5fa983c5d1d7c4eb9a72d6a6e1779ea2">More...</a><br/></td></tr>
<tr class="separator:ga5fa983c5d1d7c4eb9a72d6a6e1779ea2"><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:gaae47f95ee6e3867f4767ce91bd1503d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#gaae47f95ee6e3867f4767ce91bd1503d2">FLASH_Read</a> (<a class="el" href="a00018.html#ga0dfc969e6f9e17c17e60d823565141a5">flash_config_t</a> *config, uint32_t start, uint8_t *dest, uint32_t lengthInBytes)</td></tr>
<tr class="memdesc:gaae47f95ee6e3867f4767ce91bd1503d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads flash at locations passed in through parameters. <a href="#gaae47f95ee6e3867f4767ce91bd1503d2">More...</a><br/></td></tr>
<tr class="separator:gaae47f95ee6e3867f4767ce91bd1503d2"><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>
Flash version</h2></td></tr>
<tr class="memitem:ga2cdaf5b1f6b03013e2f0cf2c6d26adae"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ga2cdaf5b1f6b03013e2f0cf2c6d26adae">_flash_driver_version_constants</a> { <br/>
&#160;&#160;<a class="el" href="a00018.html#gga2cdaf5b1f6b03013e2f0cf2c6d26adaea599e22575bcd9a7aa32a1c7b43591f0b">kFLASH_DriverVersionName</a> = 'F',
<br/>
&#160;&#160;<a class="el" href="a00018.html#gga2cdaf5b1f6b03013e2f0cf2c6d26adaea4735add39aa49ca212b24fbef9fcb952">kFLASH_DriverVersionMajor</a> = 2,
<br/>
&#160;&#160;<a class="el" href="a00018.html#gga2cdaf5b1f6b03013e2f0cf2c6d26adaeab54b9127ada5f04373dd17edc4e005f4">kFLASH_DriverVersionMinor</a> = 1,
<br/>
&#160;&#160;<a class="el" href="a00018.html#gga2cdaf5b1f6b03013e2f0cf2c6d26adaea1a3661a27450809aa90f49d6b01781b3">kFLASH_DriverVersionBugfix</a> = 3
<br/>
}</td></tr>
<tr class="memdesc:ga2cdaf5b1f6b03013e2f0cf2c6d26adae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash driver version for ROM. <a href="a00018.html#ga2cdaf5b1f6b03013e2f0cf2c6d26adae">More...</a><br/></td></tr>
<tr class="separator:ga2cdaf5b1f6b03013e2f0cf2c6d26adae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae110eddb64c67bfc620e80afd94dd281"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#gae110eddb64c67bfc620e80afd94dd281">FSL_FLASH_DRIVER_VERSION</a>&#160;&#160;&#160;(<a class="el" href="a00242.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 1, 5))</td></tr>
<tr class="memdesc:gae110eddb64c67bfc620e80afd94dd281"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs the version number for drivers. <a href="#gae110eddb64c67bfc620e80afd94dd281">More...</a><br/></td></tr>
<tr class="separator:gae110eddb64c67bfc620e80afd94dd281"><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>
Flash configuration</h2></td></tr>
<tr class="memitem:gab55b9dd1052d90b7ae52e8590e196d49"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#gab55b9dd1052d90b7ae52e8590e196d49">FSL_FEATURE_FLASH_IP_IS_C040HD_ATFC</a>&#160;&#160;&#160;(1)</td></tr>
<tr class="memdesc:gab55b9dd1052d90b7ae52e8590e196d49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash IP Type. <a href="#gab55b9dd1052d90b7ae52e8590e196d49">More...</a><br/></td></tr>
<tr class="separator:gab55b9dd1052d90b7ae52e8590e196d49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0fc37d4440e57d587ed9411c2db8ce63"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0fc37d4440e57d587ed9411c2db8ce63"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FSL_FEATURE_FLASH_IP_IS_C040HD_FC</b>&#160;&#160;&#160;(0)</td></tr>
<tr class="separator:ga0fc37d4440e57d587ed9411c2db8ce63"><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>
Flash status</h2></td></tr>
<tr class="memitem:gaa4639fd4d4503c0dec9925f749d308b2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#gaa4639fd4d4503c0dec9925f749d308b2">_flash_status</a> { <br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2aacee5186bbe9db2e091dc5c36531cd7c">kStatus_FLASH_Success</a> = MAKE_STATUS(kStatusGroupGeneric, 0),
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867">kStatus_FLASH_InvalidArgument</a> = MAKE_STATUS(kStatusGroupGeneric, 4),
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a6735801bd1fbd61f7d96a07c2c2f9a76">kStatus_FLASH_SizeError</a> = MAKE_STATUS(kStatusGroupFlashDriver, 0),
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a098148af25679d78133103cace7580ea">kStatus_FLASH_AlignmentError</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2acc367a368270606eae83264f59b55211">kStatus_FLASH_AddressError</a> = MAKE_STATUS(kStatusGroupFlashDriver, 2),
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528">kStatus_FLASH_AccessError</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3">kStatus_FLASH_ProtectionViolation</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed">kStatus_FLASH_CommandFailure</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a0ac435d9c4aa24ccb8ab983de1979780">kStatus_FLASH_UnknownProperty</a> = MAKE_STATUS(kStatusGroupFlashDriver, 6),
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a9741e88e6013710b11b81e2af7071a92">kStatus_FLASH_EraseKeyError</a> = MAKE_STATUS(kStatusGroupFlashDriver, 7),
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2aa3ace4bf14ea333efd6189b8ddf47aca">kStatus_FLASH_RegionExecuteOnly</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32">kStatus_FLASH_ExecuteInRamFunctionNotReady</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ab032e11743a3397f9c81afac3faa9c25">kStatus_FLASH_CommandNotSupported</a> = MAKE_STATUS(kStatusGroupFlashDriver, 11),
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2aa8ed02f4e56f8d6d9ce74b231b5ae2ab">kStatus_FLASH_ReadOnlyProperty</a> = MAKE_STATUS(kStatusGroupFlashDriver, 12),
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a78a2e4b86462e7e7ee6090cb81eb9f56">kStatus_FLASH_InvalidPropertyValue</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2aecec5f61f7266f73c1dbce151a56e4f7">kStatus_FLASH_InvalidSpeculationOption</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ae61db800e78c6aa18cb5ecafe60058fc">kStatus_FLASH_EccError</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a689905485e100ba188d62655fa6455a4">kStatus_FLASH_CompareError</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a7658ff942b68e88c05b6591769da7440">kStatus_FLASH_RegulationLoss</a> = MAKE_STATUS(kStatusGroupFlashDriver, 0x12),
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a34e4ad327a559d624f1b591584295e89">kStatus_FLASH_InvalidWaitStateCycles</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2aee06c15421a173764c51130b365a5db0">kStatus_FLASH_OutOfDateCfpaPage</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a7b3feace7a7c605ea939fc812856b5cc">kStatus_FLASH_BlankIfrPageData</a> = MAKE_STATUS(kStatusGroupFlashDriver, 0x21),
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ac3c5247a67d36e5b3c28c586f964dfa5">kStatus_FLASH_EncryptedRegionsEraseNotDoneAtOnce</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a4259d6179f5320f73679eaa78052513c">kStatus_FLASH_ProgramVerificationNotAllowed</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ad80bb34aa0bbed461b6d386dadf66741">kStatus_FLASH_HashCheckError</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a51ac86a021ca31d714fc6bc69eea2d4c">kStatus_FLASH_SealedFfrRegion</a> = MAKE_STATUS(kStatusGroupFlashDriver, 0x25),
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2aca73e832cd4bd22fce84bab006abeebb">kStatus_FLASH_FfrRegionWriteBroken</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a06ec84d22856b132b301d4462ff6d5b8">kStatus_FLASH_NmpaAccessNotAllowed</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2af58dcb851f274f66c407a310eceb2c0f">kStatus_FLASH_CmpaCfgDirectEraseNotAllowed</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a8707630df501c47bcd6e4783f3219f93">kStatus_FLASH_FfrBankIsLocked</a> = MAKE_STATUS(kStatusGroupFlashDriver, 0x29),
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a9bcb83e012bdf67caa15b8f86a7ad88b">kStatus_FLASH_EraseFrequencyError</a>,
<br/>
&#160;&#160;<a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2abe315c67c01b783594b8510b84b8ec80">kStatus_FLASH_ProgramFrequencyError</a>
<br/>
}</td></tr>
<tr class="memdesc:gaa4639fd4d4503c0dec9925f749d308b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a status code value from a group and a code number. <a href="a00018.html#gaa4639fd4d4503c0dec9925f749d308b2">More...</a><br/></td></tr>
<tr class="separator:gaa4639fd4d4503c0dec9925f749d308b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae148d1f9acb1fee339187aabba151288"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#gae148d1f9acb1fee339187aabba151288">kStatusGroupGeneric</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:gae148d1f9acb1fee339187aabba151288"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash driver status group. <a href="#gae148d1f9acb1fee339187aabba151288">More...</a><br/></td></tr>
<tr class="separator:gae148d1f9acb1fee339187aabba151288"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga05f52a1a38340ec25ee828ec676cb7d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga05f52a1a38340ec25ee828ec676cb7d7"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>kStatusGroupFlashDriver</b>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ga05f52a1a38340ec25ee828ec676cb7d7"><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>
Flash API key</h2></td></tr>
<tr class="memitem:ga95539796ed8672eda06bfc363883a508"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ga95539796ed8672eda06bfc363883a508">_flash_driver_api_keys</a> { <a class="el" href="a00018.html#gga95539796ed8672eda06bfc363883a508a5b52819ce5c4ed6cb099b6f89b7eac56">kFLASH_ApiEraseKey</a> = FOUR_CHAR_CODE('l', 'f', 'e', 'k')
}</td></tr>
<tr class="memdesc:ga95539796ed8672eda06bfc363883a508"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for Flash driver API keys. <a href="a00018.html#ga95539796ed8672eda06bfc363883a508">More...</a><br/></td></tr>
<tr class="separator:ga95539796ed8672eda06bfc363883a508"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3caa666e2a56338f45fa9a008473694d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ga3caa666e2a56338f45fa9a008473694d">FOUR_CHAR_CODE</a>(a, b, c, d)&#160;&#160;&#160;(((d) &lt;&lt; 24) | ((c) &lt;&lt; 16) | ((b) &lt;&lt; 8) | ((a)))</td></tr>
<tr class="memdesc:ga3caa666e2a56338f45fa9a008473694d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs the four character code for the Flash driver API key. <a href="#ga3caa666e2a56338f45fa9a008473694d">More...</a><br/></td></tr>
<tr class="separator:ga3caa666e2a56338f45fa9a008473694d"><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>
Initialization</h2></td></tr>
<tr class="memitem:ga19c10d3524010a2d33369855d74a5c04"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ga19c10d3524010a2d33369855d74a5c04">FLASH_Init</a> (<a class="el" href="a00018.html#ga0dfc969e6f9e17c17e60d823565141a5">flash_config_t</a> *config)</td></tr>
<tr class="memdesc:ga19c10d3524010a2d33369855d74a5c04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the global flash properties structure members. <a href="#ga19c10d3524010a2d33369855d74a5c04">More...</a><br/></td></tr>
<tr class="separator:ga19c10d3524010a2d33369855d74a5c04"><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>
Erasing</h2></td></tr>
<tr class="memitem:gae9cb58f4cf76fec37631c4f344e2fb10"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#gae9cb58f4cf76fec37631c4f344e2fb10">FLASH_Erase</a> (<a class="el" href="a00018.html#ga0dfc969e6f9e17c17e60d823565141a5">flash_config_t</a> *config, uint32_t start, uint32_t lengthInBytes, uint32_t key)</td></tr>
<tr class="memdesc:gae9cb58f4cf76fec37631c4f344e2fb10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erases the flash sectors encompassed by parameters passed into function. <a href="#gae9cb58f4cf76fec37631c4f344e2fb10">More...</a><br/></td></tr>
<tr class="separator:gae9cb58f4cf76fec37631c4f344e2fb10"><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>
Programming</h2></td></tr>
<tr class="memitem:ga2c5c46f3f1ea3c7ae95d26cbfd383a9d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ga2c5c46f3f1ea3c7ae95d26cbfd383a9d">FLASH_Program</a> (<a class="el" href="a00018.html#ga0dfc969e6f9e17c17e60d823565141a5">flash_config_t</a> *config, uint32_t start, const uint8_t *src, uint32_t lengthInBytes)</td></tr>
<tr class="memdesc:ga2c5c46f3f1ea3c7ae95d26cbfd383a9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Programs flash with data at locations passed in through parameters. <a href="#ga2c5c46f3f1ea3c7ae95d26cbfd383a9d">More...</a><br/></td></tr>
<tr class="separator:ga2c5c46f3f1ea3c7ae95d26cbfd383a9d"><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>
Verification</h2></td></tr>
<tr class="memitem:ga26fdbf648f4d801db902b3f5fa336ebb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ga26fdbf648f4d801db902b3f5fa336ebb">FLASH_VerifyErase</a> (<a class="el" href="a00018.html#ga0dfc969e6f9e17c17e60d823565141a5">flash_config_t</a> *config, uint32_t start, uint32_t lengthInBytes)</td></tr>
<tr class="memdesc:ga26fdbf648f4d801db902b3f5fa336ebb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verifies an erasure of the desired flash area at a specified margin level. <a href="#ga26fdbf648f4d801db902b3f5fa336ebb">More...</a><br/></td></tr>
<tr class="separator:ga26fdbf648f4d801db902b3f5fa336ebb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga63e625ccc6cd5f2ae161e662e6f13665"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ga63e625ccc6cd5f2ae161e662e6f13665">FLASH_VerifyProgram</a> (<a class="el" href="a00018.html#ga0dfc969e6f9e17c17e60d823565141a5">flash_config_t</a> *config, uint32_t start, uint32_t lengthInBytes, const uint8_t *expectedData, uint32_t *failedAddress, uint32_t *failedData)</td></tr>
<tr class="memdesc:ga63e625ccc6cd5f2ae161e662e6f13665"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verifies programming of the desired flash area at a specified margin level. <a href="#ga63e625ccc6cd5f2ae161e662e6f13665">More...</a><br/></td></tr>
<tr class="separator:ga63e625ccc6cd5f2ae161e662e6f13665"><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>
Properties</h2></td></tr>
<tr class="memitem:gafd0d83bc8fec50fe9a9121d2ec906697"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#gafd0d83bc8fec50fe9a9121d2ec906697">FLASH_GetProperty</a> (<a class="el" href="a00018.html#ga0dfc969e6f9e17c17e60d823565141a5">flash_config_t</a> *config, <a class="el" href="a00018.html#gaded074dd3bc89c29d97e51089902698a">flash_property_tag_t</a> whichProperty, uint32_t *value)</td></tr>
<tr class="memdesc:gafd0d83bc8fec50fe9a9121d2ec906697"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the desired flash property. <a href="#gafd0d83bc8fec50fe9a9121d2ec906697">More...</a><br/></td></tr>
<tr class="separator:gafd0d83bc8fec50fe9a9121d2ec906697"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4c6329c6e19bff8910ab842bc28945c6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ga4c6329c6e19bff8910ab842bc28945c6">BOOTLOADER_UserEntry</a> (void *arg)</td></tr>
<tr class="memdesc:ga4c6329c6e19bff8910ab842bc28945c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run the Bootloader API to force into the ISP mode base on the user arg. <a href="#ga4c6329c6e19bff8910ab842bc28945c6">More...</a><br/></td></tr>
<tr class="separator:ga4c6329c6e19bff8910ab842bc28945c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="a00323" id="a00323"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _flash_ecc_log</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div>
</div>
</div>
<a name="a00325" id="a00325"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _flash_mode_config</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div>
</div>
</div>
<a name="a00324" id="a00324"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _flash_ffr_config</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div>
</div>
</div>
<a name="a00322" id="a00322"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _flash_config</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"><p>An instance of this structure is allocated by the user of the flash driver and passed into each of the driver APIs. </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a2c1f568fd0cca0b26a53dbadb38bda41"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c1f568fd0cca0b26a53dbadb38bda41"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#a2c1f568fd0cca0b26a53dbadb38bda41">PFlashBlockBase</a></td></tr>
<tr class="memdesc:a2c1f568fd0cca0b26a53dbadb38bda41"><td class="mdescLeft">&#160;</td><td class="mdescRight">A base address of the first PFlash block. <br/></td></tr>
<tr class="separator:a2c1f568fd0cca0b26a53dbadb38bda41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9dce19d47fe12bac9c3973bd18e841cc"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#a9dce19d47fe12bac9c3973bd18e841cc">PFlashTotalSize</a></td></tr>
<tr class="memdesc:a9dce19d47fe12bac9c3973bd18e841cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size of the combined PFlash block. <a href="#a9dce19d47fe12bac9c3973bd18e841cc">More...</a><br/></td></tr>
<tr class="separator:a9dce19d47fe12bac9c3973bd18e841cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43b92388175d8f5d2db56cc127fc4cf8"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#a43b92388175d8f5d2db56cc127fc4cf8">PFlashBlockCount</a></td></tr>
<tr class="memdesc:a43b92388175d8f5d2db56cc127fc4cf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">A number of PFlash blocks. <a href="#a43b92388175d8f5d2db56cc127fc4cf8">More...</a><br/></td></tr>
<tr class="separator:a43b92388175d8f5d2db56cc127fc4cf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae05849956d9b90d26af7d2402762dddf"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ae05849956d9b90d26af7d2402762dddf">PFlashPageSize</a></td></tr>
<tr class="memdesc:ae05849956d9b90d26af7d2402762dddf"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size in bytes of a page of PFlash. <a href="#ae05849956d9b90d26af7d2402762dddf">More...</a><br/></td></tr>
<tr class="separator:ae05849956d9b90d26af7d2402762dddf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a071934842a0306726d5d9193f39ebb3e"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#a071934842a0306726d5d9193f39ebb3e">PFlashSectorSize</a></td></tr>
<tr class="memdesc:a071934842a0306726d5d9193f39ebb3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size in bytes of a sector of PFlash. <a href="#a071934842a0306726d5d9193f39ebb3e">More...</a><br/></td></tr>
<tr class="separator:a071934842a0306726d5d9193f39ebb3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a9dce19d47fe12bac9c3973bd18e841cc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _flash_config::PFlashTotalSize</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a43b92388175d8f5d2db56cc127fc4cf8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _flash_config::PFlashBlockCount</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae05849956d9b90d26af7d2402762dddf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _flash_config::PFlashPageSize</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a071934842a0306726d5d9193f39ebb3e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _flash_config::PFlashSectorSize</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="gae110eddb64c67bfc620e80afd94dd281"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FSL_FLASH_DRIVER_VERSION&#160;&#160;&#160;(<a class="el" href="a00242.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 1, 5))</td>
</tr>
</table>
</div><div class="memdoc">
<p>Flash driver version for SDK Version 2.1.5. </p>
</div>
</div>
<a class="anchor" id="gab55b9dd1052d90b7ae52e8590e196d49"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FSL_FEATURE_FLASH_IP_IS_C040HD_ATFC&#160;&#160;&#160;(1)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gae148d1f9acb1fee339187aabba151288"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define kStatusGroupGeneric&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga3caa666e2a56338f45fa9a008473694d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FOUR_CHAR_CODE</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">a, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">b, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">c, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">d&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;(((d) &lt;&lt; 24) | ((c) &lt;&lt; 16) | ((b) &lt;&lt; 8) | ((a)))</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="gabb2e62ba77b27315f25d8faea0d0a5ee"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00018.html#a00323">_flash_ecc_log</a> <a class="el" href="a00018.html#gabb2e62ba77b27315f25d8faea0d0a5ee">flash_ecc_log_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga6ae0ee845f11a458da25f02dc79b95ce"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00018.html#a00325">_flash_mode_config</a> <a class="el" href="a00018.html#ga6ae0ee845f11a458da25f02dc79b95ce">flash_mode_config_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gac258bbee14592147674984d16ac3897e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00018.html#a00324">_flash_ffr_config</a> <a class="el" href="a00018.html#gac258bbee14592147674984d16ac3897e">flash_ffr_config_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga0dfc969e6f9e17c17e60d823565141a5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00018.html#a00322">_flash_config</a> <a class="el" href="a00018.html#ga0dfc969e6f9e17c17e60d823565141a5">flash_config_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>An instance of this structure is allocated by the user of the flash driver and passed into each of the driver APIs. </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga2cdaf5b1f6b03013e2f0cf2c6d26adae"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00018.html#ga2cdaf5b1f6b03013e2f0cf2c6d26adae">_flash_driver_version_constants</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="gga2cdaf5b1f6b03013e2f0cf2c6d26adaea599e22575bcd9a7aa32a1c7b43591f0b"></a>kFLASH_DriverVersionName</em>&nbsp;</td><td class="fielddoc">
<p>Flash driver version name. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2cdaf5b1f6b03013e2f0cf2c6d26adaea4735add39aa49ca212b24fbef9fcb952"></a>kFLASH_DriverVersionMajor</em>&nbsp;</td><td class="fielddoc">
<p>Major flash driver version. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2cdaf5b1f6b03013e2f0cf2c6d26adaeab54b9127ada5f04373dd17edc4e005f4"></a>kFLASH_DriverVersionMinor</em>&nbsp;</td><td class="fielddoc">
<p>Minor flash driver version. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2cdaf5b1f6b03013e2f0cf2c6d26adaea1a3661a27450809aa90f49d6b01781b3"></a>kFLASH_DriverVersionBugfix</em>&nbsp;</td><td class="fielddoc">
<p>Bugfix for flash driver version. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gaa4639fd4d4503c0dec9925f749d308b2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00018.html#gaa4639fd4d4503c0dec9925f749d308b2">_flash_status</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Flash driver status codes. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2aacee5186bbe9db2e091dc5c36531cd7c"></a>kStatus_FLASH_Success</em>&nbsp;</td><td class="fielddoc">
<p>API is executed successfully. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867"></a>kStatus_FLASH_InvalidArgument</em>&nbsp;</td><td class="fielddoc">
<p>Invalid argument. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a6735801bd1fbd61f7d96a07c2c2f9a76"></a>kStatus_FLASH_SizeError</em>&nbsp;</td><td class="fielddoc">
<p>Error size. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a098148af25679d78133103cace7580ea"></a>kStatus_FLASH_AlignmentError</em>&nbsp;</td><td class="fielddoc">
<p>Parameter is not aligned with the specified baseline. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2acc367a368270606eae83264f59b55211"></a>kStatus_FLASH_AddressError</em>&nbsp;</td><td class="fielddoc">
<p>Address is out of range. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528"></a>kStatus_FLASH_AccessError</em>&nbsp;</td><td class="fielddoc">
<p>Invalid instruction codes and out-of bound addresses. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3"></a>kStatus_FLASH_ProtectionViolation</em>&nbsp;</td><td class="fielddoc">
<p>The program/erase operation is requested to execute on protected areas. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed"></a>kStatus_FLASH_CommandFailure</em>&nbsp;</td><td class="fielddoc">
<p>Run-time error during command execution. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a0ac435d9c4aa24ccb8ab983de1979780"></a>kStatus_FLASH_UnknownProperty</em>&nbsp;</td><td class="fielddoc">
<p>Unknown property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a9741e88e6013710b11b81e2af7071a92"></a>kStatus_FLASH_EraseKeyError</em>&nbsp;</td><td class="fielddoc">
<p>API erase key is invalid. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2aa3ace4bf14ea333efd6189b8ddf47aca"></a>kStatus_FLASH_RegionExecuteOnly</em>&nbsp;</td><td class="fielddoc">
<p>The current region is execute-only. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32"></a>kStatus_FLASH_ExecuteInRamFunctionNotReady</em>&nbsp;</td><td class="fielddoc">
<p>Execute-in-RAM function is not available. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2ab032e11743a3397f9c81afac3faa9c25"></a>kStatus_FLASH_CommandNotSupported</em>&nbsp;</td><td class="fielddoc">
<p>Flash API is not supported. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2aa8ed02f4e56f8d6d9ce74b231b5ae2ab"></a>kStatus_FLASH_ReadOnlyProperty</em>&nbsp;</td><td class="fielddoc">
<p>The flash property is read-only. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a78a2e4b86462e7e7ee6090cb81eb9f56"></a>kStatus_FLASH_InvalidPropertyValue</em>&nbsp;</td><td class="fielddoc">
<p>The flash property value is out of range. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2aecec5f61f7266f73c1dbce151a56e4f7"></a>kStatus_FLASH_InvalidSpeculationOption</em>&nbsp;</td><td class="fielddoc">
<p>The option of flash prefetch speculation is invalid. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2ae61db800e78c6aa18cb5ecafe60058fc"></a>kStatus_FLASH_EccError</em>&nbsp;</td><td class="fielddoc">
<p>A correctable or uncorrectable error during command execution. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a689905485e100ba188d62655fa6455a4"></a>kStatus_FLASH_CompareError</em>&nbsp;</td><td class="fielddoc">
<p>Destination and source memory contents do not match. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a7658ff942b68e88c05b6591769da7440"></a>kStatus_FLASH_RegulationLoss</em>&nbsp;</td><td class="fielddoc">
<p>A loss of regulation during read. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a34e4ad327a559d624f1b591584295e89"></a>kStatus_FLASH_InvalidWaitStateCycles</em>&nbsp;</td><td class="fielddoc">
<p>The wait state cycle set to r/w mode is invalid. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2aee06c15421a173764c51130b365a5db0"></a>kStatus_FLASH_OutOfDateCfpaPage</em>&nbsp;</td><td class="fielddoc">
<p>CFPA page version is out of date. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a7b3feace7a7c605ea939fc812856b5cc"></a>kStatus_FLASH_BlankIfrPageData</em>&nbsp;</td><td class="fielddoc">
<p>Blank page cannnot be read. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2ac3c5247a67d36e5b3c28c586f964dfa5"></a>kStatus_FLASH_EncryptedRegionsEraseNotDoneAtOnce</em>&nbsp;</td><td class="fielddoc">
<p>Encrypted flash subregions are not erased at once. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a4259d6179f5320f73679eaa78052513c"></a>kStatus_FLASH_ProgramVerificationNotAllowed</em>&nbsp;</td><td class="fielddoc">
<p>Program verification is not allowed when the encryption is enabled. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2ad80bb34aa0bbed461b6d386dadf66741"></a>kStatus_FLASH_HashCheckError</em>&nbsp;</td><td class="fielddoc">
<p>Hash check of page data is failed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a51ac86a021ca31d714fc6bc69eea2d4c"></a>kStatus_FLASH_SealedFfrRegion</em>&nbsp;</td><td class="fielddoc">
<p>The FFR region is sealed. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2aca73e832cd4bd22fce84bab006abeebb"></a>kStatus_FLASH_FfrRegionWriteBroken</em>&nbsp;</td><td class="fielddoc">
<p>The FFR Spec region is not allowed to be written discontinuously. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a06ec84d22856b132b301d4462ff6d5b8"></a>kStatus_FLASH_NmpaAccessNotAllowed</em>&nbsp;</td><td class="fielddoc">
<p>The NMPA region is not allowed to be read/written/erased. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2af58dcb851f274f66c407a310eceb2c0f"></a>kStatus_FLASH_CmpaCfgDirectEraseNotAllowed</em>&nbsp;</td><td class="fielddoc">
<p>The CMPA Cfg region is not allowed to be erased directly. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a8707630df501c47bcd6e4783f3219f93"></a>kStatus_FLASH_FfrBankIsLocked</em>&nbsp;</td><td class="fielddoc">
<p>The FFR bank region is locked. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a9bcb83e012bdf67caa15b8f86a7ad88b"></a>kStatus_FLASH_EraseFrequencyError</em>&nbsp;</td><td class="fielddoc">
<p>Core frequency is over 100MHZ. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2abe315c67c01b783594b8510b84b8ec80"></a>kStatus_FLASH_ProgramFrequencyError</em>&nbsp;</td><td class="fielddoc">
<p>Core frequency is over 100MHZ. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga95539796ed8672eda06bfc363883a508"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00018.html#ga95539796ed8672eda06bfc363883a508">_flash_driver_api_keys</a></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>The resulting value is built with a byte order such that the string being readable in expected order when viewed in a hex editor, if the value is treated as a 32-bit little endian value. </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga95539796ed8672eda06bfc363883a508a5b52819ce5c4ed6cb099b6f89b7eac56"></a>kFLASH_ApiEraseKey</em>&nbsp;</td><td class="fielddoc">
<p>Key value used to validate all flash erase APIs. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gab58c8e11c7236162806360885b462391"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00018.html#gab58c8e11c7236162806360885b462391">_flash_property_tag</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="ggab58c8e11c7236162806360885b462391aa6c433411ecb4bfea9d74504e266e219"></a>kFLASH_PropertyPflashSectorSize</em>&nbsp;</td><td class="fielddoc">
<p>Pflash sector size property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab58c8e11c7236162806360885b462391a68caa1558315b7704b08d85c42869eb5"></a>kFLASH_PropertyPflashTotalSize</em>&nbsp;</td><td class="fielddoc">
<p>Pflash total size property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab58c8e11c7236162806360885b462391ad8c3b85ca1dc8fc5ef03e1954aef873e"></a>kFLASH_PropertyPflashBlockSize</em>&nbsp;</td><td class="fielddoc">
<p>Pflash block size property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab58c8e11c7236162806360885b462391abb40541593520b9c1a87648a26e81957"></a>kFLASH_PropertyPflashBlockCount</em>&nbsp;</td><td class="fielddoc">
<p>Pflash block count property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab58c8e11c7236162806360885b462391a0159abfba4e6ca47c70a89ea2fc24ab9"></a>kFLASH_PropertyPflashBlockBaseAddr</em>&nbsp;</td><td class="fielddoc">
<p>Pflash block base address property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab58c8e11c7236162806360885b462391a1a961d022c505c2bf7c33a35ee2cb97e"></a>kFLASH_PropertyPflashPageSize</em>&nbsp;</td><td class="fielddoc">
<p>Pflash page size property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab58c8e11c7236162806360885b462391ab4f2ba3cd4bcc09b05d316ba52741ce1"></a>kFLASH_PropertyPflashSystemFreq</em>&nbsp;</td><td class="fielddoc">
<p>System Frequency System Frequency. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab58c8e11c7236162806360885b462391ae62486678e9684e2466e76bf2585edbe"></a>kFLASH_PropertyFfrSectorSize</em>&nbsp;</td><td class="fielddoc">
<p>FFR sector size property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab58c8e11c7236162806360885b462391a49790dbb13068c8bfb83ed898733754c"></a>kFLASH_PropertyFfrTotalSize</em>&nbsp;</td><td class="fielddoc">
<p>FFR total size property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab58c8e11c7236162806360885b462391a08f490d4df6717895bccc2baf53521db"></a>kFLASH_PropertyFfrBlockBaseAddr</em>&nbsp;</td><td class="fielddoc">
<p>FFR block base address property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab58c8e11c7236162806360885b462391a133f45cffe10550cb20471dd5c2986ae"></a>kFLASH_PropertyFfrPageSize</em>&nbsp;</td><td class="fielddoc">
<p>FFR page size property. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga175706da61374ffa328aefca6baeeef9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00018.html#ga175706da61374ffa328aefca6baeeef9">_flash_max_erase_page_value</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="gga175706da61374ffa328aefca6baeeef9ac46736f6f2c4068b76fb336a63231955"></a>kFLASH_MaxPagesToErase</em>&nbsp;</td><td class="fielddoc">
<p>The max value in pages to erase. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga4f704fb04b083ac1b935e7970efcd7f3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00018.html#ga4f704fb04b083ac1b935e7970efcd7f3">_flash_alignment_property</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="gga4f704fb04b083ac1b935e7970efcd7f3aa260fe0e5f3491829454440bcd6903b1"></a>kFLASH_AlignementUnitVerifyErase</em>&nbsp;</td><td class="fielddoc">
<p>The alignment unit in bytes used for verify erase operation. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4f704fb04b083ac1b935e7970efcd7f3a30967bbae71ada9c3f3e752e975fcf1c"></a>kFLASH_AlignementUnitProgram</em>&nbsp;</td><td class="fielddoc">
<p>The alignment unit in bytes used for program operation. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4f704fb04b083ac1b935e7970efcd7f3ab962d52eb119a4ab6fc2caed4b76d3da"></a>kFLASH_AlignementUnitSingleWordRead</em>&nbsp;</td><td class="fielddoc">
<p>The alignment unit in bytes used for verify program operation. </p>
<p>The alignment unit in bytes used for SingleWordRead command. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga7d0033f5217bee3498ba6727bb8436f5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00018.html#ga7d0033f5217bee3498ba6727bb8436f5">_flash_read_ecc_option</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="gga7d0033f5217bee3498ba6727bb8436f5af3e9ff48112cec21e101dffe72176a3e"></a>kFLASH_ReadWithEccOff</em>&nbsp;</td><td class="fielddoc">
<p>ECC is on. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga49049f8b00b784727809e0975d4ee8f5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00018.html#ga49049f8b00b784727809e0975d4ee8f5">_flash_read_margin_option</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="gga49049f8b00b784727809e0975d4ee8f5a060396654b64f81aa4a9836528aad620"></a>kFLASH_ReadMarginNormal</em>&nbsp;</td><td class="fielddoc">
<p>Normal read. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga49049f8b00b784727809e0975d4ee8f5a1db7060ce9ed8443bec1601d47bba106"></a>kFLASH_ReadMarginVsProgram</em>&nbsp;</td><td class="fielddoc">
<p>Margin vs. </p>
<p>program </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga49049f8b00b784727809e0975d4ee8f5a87a40e374177043fefd1b746e4947b0b"></a>kFLASH_ReadMarginVsErase</em>&nbsp;</td><td class="fielddoc">
<p>Margin vs. </p>
<p>erase </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga49049f8b00b784727809e0975d4ee8f5a352ba8303fb2a95d00e8bbd24e202785"></a>kFLASH_ReadMarginIllegalBitCombination</em>&nbsp;</td><td class="fielddoc">
<p>Illegal bit combination. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga3751bb2569ae737e5715f11690863b9e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00018.html#ga3751bb2569ae737e5715f11690863b9e">_flash_read_dmacc_option</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="gga3751bb2569ae737e5715f11690863b9eae4229283767c59eaecc6a51042bdea2c"></a>kFLASH_ReadDmaccDisabled</em>&nbsp;</td><td class="fielddoc">
<p>Memory word. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3751bb2569ae737e5715f11690863b9ea672221e49ca5d1dda37acbb6c5cf50e1"></a>kFLASH_ReadDmaccEnabled</em>&nbsp;</td><td class="fielddoc">
<p>DMACC word. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga5fa983c5d1d7c4eb9a72d6a6e1779ea2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00018.html#ga5fa983c5d1d7c4eb9a72d6a6e1779ea2">_flash_ramp_control_option</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="gga5fa983c5d1d7c4eb9a72d6a6e1779ea2ad138cd6599cd9280a1266e0c9da94d8c"></a>kFLASH_RampControlDivisionFactorReserved</em>&nbsp;</td><td class="fielddoc">
<p>Reserved. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5fa983c5d1d7c4eb9a72d6a6e1779ea2ac76e44dd23b04a52405112eadd7c4a4c"></a>kFLASH_RampControlDivisionFactor256</em>&nbsp;</td><td class="fielddoc">
<p>clk48mhz / 256 = 187.5KHz </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5fa983c5d1d7c4eb9a72d6a6e1779ea2aed97fd3eb0e662e8e9f19b236cc59c5a"></a>kFLASH_RampControlDivisionFactor128</em>&nbsp;</td><td class="fielddoc">
<p>clk48mhz / 128 = 375KHz </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5fa983c5d1d7c4eb9a72d6a6e1779ea2a18fd5e4820b865ebff51028789ee2784"></a>kFLASH_RampControlDivisionFactor64</em>&nbsp;</td><td class="fielddoc">
<p>clk48mhz / 64 = 750KHz </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga19c10d3524010a2d33369855d74a5c04"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> FLASH_Init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00018.html#ga0dfc969e6f9e17c17e60d823565141a5">flash_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 checks and initializes the Flash module for the other Flash APIs.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>Pointer to the storage for the driver runtime state.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2aacee5186bbe9db2e091dc5c36531cd7c" title="API is executed successfully. ">kStatus_FLASH_Success</a></td><td>API was executed successfully. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>An invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during the command execution. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ab032e11743a3397f9c81afac3faa9c25" title="Flash API is not supported. ">kStatus_FLASH_CommandNotSupported</a></td><td>Flash API is not supported. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ae61db800e78c6aa18cb5ecafe60058fc" title="A correctable or uncorrectable error during command execution. ">kStatus_FLASH_EccError</a></td><td>A correctable or uncorrectable error during command execution. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae9cb58f4cf76fec37631c4f344e2fb10"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> FLASH_Erase </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00018.html#ga0dfc969e6f9e17c17e60d823565141a5">flash_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>lengthInBytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>key</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function erases the appropriate number of flash sectors based on the desired start address and length.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>The pointer to the storage for the driver runtime state. </td></tr>
<tr><td class="paramname">start</td><td>The start address of the desired flash memory to be erased. The start address need to be 512bytes-aligned. </td></tr>
<tr><td class="paramname">lengthInBytes</td><td>The length, given in bytes (not words or long-words) to be erased. Must be 512bytes-aligned. </td></tr>
<tr><td class="paramname">key</td><td>The value used to validate all flash erase APIs.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2aacee5186bbe9db2e091dc5c36531cd7c" title="API is executed successfully. ">kStatus_FLASH_Success</a></td><td>API was executed successfully; the appropriate number of flash sectors based on the desired start address and length were erased successfully. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>An invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a098148af25679d78133103cace7580ea" title="Parameter is not aligned with the specified baseline. ">kStatus_FLASH_AlignmentError</a></td><td>The parameter is not aligned with the specified baseline. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2acc367a368270606eae83264f59b55211" title="Address is out of range. ">kStatus_FLASH_AddressError</a></td><td>The address is out of range. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a9741e88e6013710b11b81e2af7071a92" title="API erase key is invalid. ">kStatus_FLASH_EraseKeyError</a></td><td>The API erase key is invalid. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during the command execution. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ab032e11743a3397f9c81afac3faa9c25" title="Flash API is not supported. ">kStatus_FLASH_CommandNotSupported</a></td><td>Flash API is not supported. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ae61db800e78c6aa18cb5ecafe60058fc" title="A correctable or uncorrectable error during command execution. ">kStatus_FLASH_EccError</a></td><td>A correctable or uncorrectable error during command execution. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga2c5c46f3f1ea3c7ae95d26cbfd383a9d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> FLASH_Program </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00018.html#ga0dfc969e6f9e17c17e60d823565141a5">flash_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>lengthInBytes</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function programs the flash memory with the desired data for a given flash area as determined by the start address and the length.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>A pointer to the storage for the driver runtime state. </td></tr>
<tr><td class="paramname">start</td><td>The start address of the desired flash memory to be programmed. Must be 512bytes-aligned. </td></tr>
<tr><td class="paramname">src</td><td>A pointer to the source buffer of data that is to be programmed into the flash. </td></tr>
<tr><td class="paramname">lengthInBytes</td><td>The length, given in bytes (not words or long-words), to be programmed. Must be 512bytes-aligned.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2aacee5186bbe9db2e091dc5c36531cd7c" title="API is executed successfully. ">kStatus_FLASH_Success</a></td><td>API was executed successfully; the desired data were programed successfully into flash based on desired start address and length. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>An invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a098148af25679d78133103cace7580ea" title="Parameter is not aligned with the specified baseline. ">kStatus_FLASH_AlignmentError</a></td><td>Parameter is not aligned with the specified baseline. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2acc367a368270606eae83264f59b55211" title="Address is out of range. ">kStatus_FLASH_AddressError</a></td><td>Address is out of range. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bound addresses. ">kStatus_FLASH_AccessError</a></td><td>Invalid instruction codes and out-of bounds addresses. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during the command execution. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during the command execution. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ab032e11743a3397f9c81afac3faa9c25" title="Flash API is not supported. ">kStatus_FLASH_CommandNotSupported</a></td><td>Flash API is not supported. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ae61db800e78c6aa18cb5ecafe60058fc" title="A correctable or uncorrectable error during command execution. ">kStatus_FLASH_EccError</a></td><td>A correctable or uncorrectable error during command execution. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaae47f95ee6e3867f4767ce91bd1503d2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> FLASH_Read </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00018.html#ga0dfc969e6f9e17c17e60d823565141a5">flash_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>dest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>lengthInBytes</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function read the flash memory from a given flash area as determined by the start address and the length.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>A pointer to the storage for the driver runtime state. </td></tr>
<tr><td class="paramname">start</td><td>The start address of the desired flash memory to be read. </td></tr>
<tr><td class="paramname">dest</td><td>A pointer to the dest buffer of data that is to be read from the flash. </td></tr>
<tr><td class="paramname">lengthInBytes</td><td>The length, given in bytes (not words or long-words), to be read.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2aacee5186bbe9db2e091dc5c36531cd7c" title="API is executed successfully. ">kStatus_FLASH_Success</a></td><td>API was executed successfully. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>An invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a098148af25679d78133103cace7580ea" title="Parameter is not aligned with the specified baseline. ">kStatus_FLASH_AlignmentError</a></td><td>Parameter is not aligned with the specified baseline. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2acc367a368270606eae83264f59b55211" title="Address is out of range. ">kStatus_FLASH_AddressError</a></td><td>Address is out of range. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bound addresses. ">kStatus_FLASH_AccessError</a></td><td>Invalid instruction codes and out-of bounds addresses. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during the command execution. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during the command execution. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ab032e11743a3397f9c81afac3faa9c25" title="Flash API is not supported. ">kStatus_FLASH_CommandNotSupported</a></td><td>Flash API is not supported. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ae61db800e78c6aa18cb5ecafe60058fc" title="A correctable or uncorrectable error during command execution. ">kStatus_FLASH_EccError</a></td><td>A correctable or uncorrectable error during command execution. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga26fdbf648f4d801db902b3f5fa336ebb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> FLASH_VerifyErase </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00018.html#ga0dfc969e6f9e17c17e60d823565141a5">flash_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>lengthInBytes</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function checks the appropriate number of flash sectors based on the desired start address and length to check whether the flash is erased to the specified read margin level.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>A pointer to the storage for the driver runtime state. </td></tr>
<tr><td class="paramname">start</td><td>The start address of the desired flash memory to be verified. The start address need to be 512bytes-aligned. </td></tr>
<tr><td class="paramname">lengthInBytes</td><td>The length, given in bytes (not words or long-words), to be verified. Must be 512bytes-aligned.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2aacee5186bbe9db2e091dc5c36531cd7c" title="API is executed successfully. ">kStatus_FLASH_Success</a></td><td>API was executed successfully; the specified FLASH region has been erased. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>An invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a098148af25679d78133103cace7580ea" title="Parameter is not aligned with the specified baseline. ">kStatus_FLASH_AlignmentError</a></td><td>Parameter is not aligned with specified baseline. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2acc367a368270606eae83264f59b55211" title="Address is out of range. ">kStatus_FLASH_AddressError</a></td><td>Address is out of range. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bound addresses. ">kStatus_FLASH_AccessError</a></td><td>Invalid instruction codes and out-of bounds addresses. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during the command execution. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during the command execution. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ab032e11743a3397f9c81afac3faa9c25" title="Flash API is not supported. ">kStatus_FLASH_CommandNotSupported</a></td><td>Flash API is not supported. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ae61db800e78c6aa18cb5ecafe60058fc" title="A correctable or uncorrectable error during command execution. ">kStatus_FLASH_EccError</a></td><td>A correctable or uncorrectable error during command execution. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga63e625ccc6cd5f2ae161e662e6f13665"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> FLASH_VerifyProgram </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00018.html#ga0dfc969e6f9e17c17e60d823565141a5">flash_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>lengthInBytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>expectedData</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>failedAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>failedData</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function verifies the data programed in the flash memory using the Flash Program Check Command and compares it to the expected data for a given flash area as determined by the start address and length.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>A pointer to the storage for the driver runtime state. </td></tr>
<tr><td class="paramname">start</td><td>The start address of the desired flash memory to be verified. need be 512bytes-aligned. </td></tr>
<tr><td class="paramname">lengthInBytes</td><td>The length, given in bytes (not words or long-words), to be verified. need be 512bytes-aligned. </td></tr>
<tr><td class="paramname">expectedData</td><td>A pointer to the expected data that is to be verified against. </td></tr>
<tr><td class="paramname">failedAddress</td><td>A pointer to the returned failing address. </td></tr>
<tr><td class="paramname">failedData</td><td>A pointer to the returned failing data. Some derivatives do not include failed data as part of the FCCOBx registers. In this case, zeros are returned upon failure.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2aacee5186bbe9db2e091dc5c36531cd7c" title="API is executed successfully. ">kStatus_FLASH_Success</a></td><td>API was executed successfully; the desired data have been successfully programed into specified FLASH region.</td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>An invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a098148af25679d78133103cace7580ea" title="Parameter is not aligned with the specified baseline. ">kStatus_FLASH_AlignmentError</a></td><td>Parameter is not aligned with specified baseline. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2acc367a368270606eae83264f59b55211" title="Address is out of range. ">kStatus_FLASH_AddressError</a></td><td>Address is out of range. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bound addresses. ">kStatus_FLASH_AccessError</a></td><td>Invalid instruction codes and out-of bounds addresses. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during the command execution. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during the command execution. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ab032e11743a3397f9c81afac3faa9c25" title="Flash API is not supported. ">kStatus_FLASH_CommandNotSupported</a></td><td>Flash API is not supported. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2ae61db800e78c6aa18cb5ecafe60058fc" title="A correctable or uncorrectable error during command execution. ">kStatus_FLASH_EccError</a></td><td>A correctable or uncorrectable error during command execution. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gafd0d83bc8fec50fe9a9121d2ec906697"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> FLASH_GetProperty </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00018.html#ga0dfc969e6f9e17c17e60d823565141a5">flash_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="a00018.html#gaded074dd3bc89c29d97e51089902698a">flash_property_tag_t</a>&#160;</td>
<td class="paramname"><em>whichProperty</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>value</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">config</td><td>A pointer to the storage for the driver runtime state. </td></tr>
<tr><td class="paramname">whichProperty</td><td>The desired property from the list of properties in enum flash_property_tag_t </td></tr>
<tr><td class="paramname">value</td><td>A pointer to the value returned for the desired flash property.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2aacee5186bbe9db2e091dc5c36531cd7c" title="API is executed successfully. ">kStatus_FLASH_Success</a></td><td>API was executed successfully; the flash property was stored to value. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>An invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="a00018.html#ggaa4639fd4d4503c0dec9925f749d308b2a0ac435d9c4aa24ccb8ab983de1979780" title="Unknown property. ">kStatus_FLASH_UnknownProperty</a></td><td>An unknown property tag. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga4c6329c6e19bff8910ab842bc28945c6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void BOOTLOADER_UserEntry </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>arg</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">arg</td><td>Indicates API prototype fields definition. Refer to the above user_app_boot_invoke_option_t 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">&copy; 2016 NXP Semiconductors. All rights reserved.
</li>
</ul>
</div>
</body>
</html>