Files
KSDK_2.0_MK22FN512xxx12/docs/Kinetis SDK v.2.0 API Reference Manual/group__flash__driver.html
2016-08-09 18:06:35 +02:00

2776 lines
201 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.6"/>
<title>Kinetis SDK v.2.0 API Reference Manual: C90TFS Flash Driver</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="fs_logo.gif"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">Kinetis SDK v.2.0 API Reference Manual
&#160;<span id="projectnumber">Rev. 0</span>
</div>
<div id="projectbrief">Freescale Semiconductor, Inc.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<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('group__flash__driver.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">C90TFS Flash Driver</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>The flash provides the C90TFS Flash driver of Kinetis devices with the C90TFS Flash module inside. The flash provides general APIs to handle specific operations on C90TFS/FTFx Flash module. The user can use those APIs directly in the application. In addition, it provides internal functions called by the driver. Although these functions are not meant to be called from the user's application directly, the APIs can still be used. </p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:structflash__execute__in__ram__function__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#structflash__execute__in__ram__function__config__t">flash_execute_in_ram_function_config_t</a></td></tr>
<tr class="memdesc:structflash__execute__in__ram__function__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash execute-in-ram function information. <a href="group__flash__driver.html#structflash__execute__in__ram__function__config__t">More...</a><br/></td></tr>
<tr class="separator:structflash__execute__in__ram__function__config__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structflash__swap__state__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#structflash__swap__state__config__t">flash_swap_state_config_t</a></td></tr>
<tr class="memdesc:structflash__swap__state__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash Swap information. <a href="group__flash__driver.html#structflash__swap__state__config__t">More...</a><br/></td></tr>
<tr class="separator:structflash__swap__state__config__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structflash__swap__ifr__field__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#structflash__swap__ifr__field__config__t">flash_swap_ifr_field_config_t</a></td></tr>
<tr class="memdesc:structflash__swap__ifr__field__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash Swap IFR fileds. <a href="group__flash__driver.html#structflash__swap__ifr__field__config__t">More...</a><br/></td></tr>
<tr class="separator:structflash__swap__ifr__field__config__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structflash__operation__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#structflash__operation__config__t">flash_operation_config_t</a></td></tr>
<tr class="memdesc:structflash__operation__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Active flash information for current operation. <a href="group__flash__driver.html#structflash__operation__config__t">More...</a><br/></td></tr>
<tr class="separator:structflash__operation__config__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structflash__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a></td></tr>
<tr class="memdesc:structflash__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash driver state information. <a href="group__flash__driver.html#structflash__config__t">More...</a><br/></td></tr>
<tr class="separator:structflash__config__t"><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:ga0b6fe9da451666f9c9f48e4c281c9ba5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0b6fe9da451666f9c9f48e4c281c9ba5"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga0b6fe9da451666f9c9f48e4c281c9ba5">flash_callback_t</a> )(void)</td></tr>
<tr class="memdesc:ga0b6fe9da451666f9c9f48e4c281c9ba5"><td class="mdescLeft">&#160;</td><td class="mdescRight">callback type used for pflash block <br/></td></tr>
<tr class="separator:ga0b6fe9da451666f9c9f48e4c281c9ba5"><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:ga2105f5de393a06479e62141dab8dd3fc"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga2105f5de393a06479e62141dab8dd3fc">flash_margin_value_t</a> { <br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga2105f5de393a06479e62141dab8dd3fca86401bd13b20fb2769feb2d376fe63f8">kFLASH_marginValueNormal</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga2105f5de393a06479e62141dab8dd3fca835e36458d04964f14a28dca101ae8e1">kFLASH_marginValueUser</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga2105f5de393a06479e62141dab8dd3fca90e8461e1b2cc2771f31c1fbf49dc411">kFLASH_marginValueFactory</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga2105f5de393a06479e62141dab8dd3fca0c83dd80267e6be92eb877a70edb3d67">kFLASH_marginValueInvalid</a>
<br/>
}</td></tr>
<tr class="memdesc:ga2105f5de393a06479e62141dab8dd3fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for supported flash margin levels. <a href="group__flash__driver.html#ga2105f5de393a06479e62141dab8dd3fc">More...</a><br/></td></tr>
<tr class="separator:ga2105f5de393a06479e62141dab8dd3fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga00b3eb2666116e617f6e45a10218f6a9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga00b3eb2666116e617f6e45a10218f6a9">flash_security_state_t</a> { <br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga00b3eb2666116e617f6e45a10218f6a9af0467debfe888cdc294b4a541476d9a8">kFLASH_securityStateNotSecure</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga00b3eb2666116e617f6e45a10218f6a9a4c3f924bf529eb9e8d845d308927c4ee">kFLASH_securityStateBackdoorEnabled</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga00b3eb2666116e617f6e45a10218f6a9a2aacad860cb61b8ddf74be73993799e1">kFLASH_securityStateBackdoorDisabled</a>
<br/>
}</td></tr>
<tr class="memdesc:ga00b3eb2666116e617f6e45a10218f6a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for the three possible flash security states. <a href="group__flash__driver.html#ga00b3eb2666116e617f6e45a10218f6a9">More...</a><br/></td></tr>
<tr class="separator:ga00b3eb2666116e617f6e45a10218f6a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9378245c649eebea9451367d6b8f9ce2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga9378245c649eebea9451367d6b8f9ce2">flash_protection_state_t</a> { <br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga9378245c649eebea9451367d6b8f9ce2a3c1dc57d87250bcd3219dd7a6eb2820b">kFLASH_protectionStateUnprotected</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga9378245c649eebea9451367d6b8f9ce2a895a84f94bc5133f1fff66b3f842c3b9">kFLASH_protectionStateProtected</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga9378245c649eebea9451367d6b8f9ce2ae39b1cbcf8aa2812cd1d2839bc5f5744">kFLASH_protectionStateMixed</a>
<br/>
}</td></tr>
<tr class="memdesc:ga9378245c649eebea9451367d6b8f9ce2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for the three possible flash protection levels. <a href="group__flash__driver.html#ga9378245c649eebea9451367d6b8f9ce2">More...</a><br/></td></tr>
<tr class="separator:ga9378245c649eebea9451367d6b8f9ce2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad38961e5692f64548dbf84d652b9ccde"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#gad38961e5692f64548dbf84d652b9ccde">flash_execute_only_access_state_t</a> { <br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggad38961e5692f64548dbf84d652b9ccdea109aa284db3559f6ae4d5ef91b136c6b">kFLASH_accessStateUnLimited</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggad38961e5692f64548dbf84d652b9ccdea6f95d9a59ba3d4236bf82b51e1acc36d">kFLASH_accessStateExecuteOnly</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggad38961e5692f64548dbf84d652b9ccdea58d22b99329858aae78b94f5e5fb92e7">kFLASH_accessStateMixed</a>
<br/>
}</td></tr>
<tr class="memdesc:gad38961e5692f64548dbf84d652b9ccde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for the three possible flash execute access levels. <a href="group__flash__driver.html#gad38961e5692f64548dbf84d652b9ccde">More...</a><br/></td></tr>
<tr class="separator:gad38961e5692f64548dbf84d652b9ccde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7b6766fe08a63cf92a5e2a90dd6d010f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga7b6766fe08a63cf92a5e2a90dd6d010f">flash_property_tag_t</a> { <br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga7b6766fe08a63cf92a5e2a90dd6d010fa48219185555ed390a6c8515e15fdcdd5">kFLASH_propertyPflashSectorSize</a> = 0x00U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga7b6766fe08a63cf92a5e2a90dd6d010fa5cb87d92cc447ccd90b944708dbbbcb1">kFLASH_propertyPflashTotalSize</a> = 0x01U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga7b6766fe08a63cf92a5e2a90dd6d010fa8e5554e86decd51a12256baa4abf8e0d">kFLASH_propertyPflashBlockSize</a> = 0x02U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga7b6766fe08a63cf92a5e2a90dd6d010fa6936f9de54632a5d184a05c0cce7cc30">kFLASH_propertyPflashBlockCount</a> = 0x03U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga7b6766fe08a63cf92a5e2a90dd6d010fa213bf86b0ae319eb3a3966ca764ae6fd">kFLASH_propertyPflashBlockBaseAddr</a> = 0x04U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga7b6766fe08a63cf92a5e2a90dd6d010fa3c0b18a9c5a8f8a447832f783568bf1e">kFLASH_propertyPflashFacSupport</a> = 0x05U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga7b6766fe08a63cf92a5e2a90dd6d010fa1b98d5b1b283c20a870c40c552d610a6">kFLASH_propertyPflashAccessSegmentSize</a> = 0x06U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga7b6766fe08a63cf92a5e2a90dd6d010fa4c109d46004feb6592a8ab6ba6432583">kFLASH_propertyPflashAccessSegmentCount</a> = 0x07U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga7b6766fe08a63cf92a5e2a90dd6d010fa714912184b28ad68ebad61e1965aeecb">kFLASH_propertyFlexRamBlockBaseAddr</a> = 0x08U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga7b6766fe08a63cf92a5e2a90dd6d010fa39f4fe10c71aceadc26eea3bc6aa072e">kFLASH_propertyFlexRamTotalSize</a> = 0x09U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga7b6766fe08a63cf92a5e2a90dd6d010fa41e621eecc80d595718bba413e423e58">kFLASH_propertyDflashSectorSize</a> = 0x10U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga7b6766fe08a63cf92a5e2a90dd6d010faffc68eb961af773cbfe0aff00287c25d">kFLASH_propertyDflashTotalSize</a> = 0x11U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga7b6766fe08a63cf92a5e2a90dd6d010fac7cbbd7a4f22b973991efd6a80a68133">kFLASH_propertyDflashBlockSize</a> = 0x12U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga7b6766fe08a63cf92a5e2a90dd6d010fa76b9a68b9c74e7cdc1a61fb6618c2beb">kFLASH_propertyDflashBlockCount</a> = 0x13U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga7b6766fe08a63cf92a5e2a90dd6d010fa7de520c3891c79adf3f6597abe9cbe86">kFLASH_propertyDflashBlockBaseAddr</a> = 0x14U
<br/>
}</td></tr>
<tr class="memdesc:ga7b6766fe08a63cf92a5e2a90dd6d010f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for various flash properties. <a href="group__flash__driver.html#ga7b6766fe08a63cf92a5e2a90dd6d010f">More...</a><br/></td></tr>
<tr class="separator:ga7b6766fe08a63cf92a5e2a90dd6d010f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae76bb8924742f0483f66c4d3917bb31e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#gae76bb8924742f0483f66c4d3917bb31e">_flash_execute_in_ram_function_constants</a> { <br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggae76bb8924742f0483f66c4d3917bb31eab96b61fc8ecacd40591f367a9ca817f8">kFLASH_executeInRamFunctionMaxSize</a> = 64U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggae76bb8924742f0483f66c4d3917bb31eab0d3958382b926e486413d1d08d74df8">kFLASH_executeInRamFunctionTotalNum</a> = 2U
<br/>
}</td></tr>
<tr class="memdesc:gae76bb8924742f0483f66c4d3917bb31e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants for execute-in-ram flash function. <a href="group__flash__driver.html#gae76bb8924742f0483f66c4d3917bb31e">More...</a><br/></td></tr>
<tr class="separator:gae76bb8924742f0483f66c4d3917bb31e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga70d45ebc64d50e9868f7016c8a417c51"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga70d45ebc64d50e9868f7016c8a417c51">flash_read_resource_option_t</a> { <br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga70d45ebc64d50e9868f7016c8a417c51ab079a92f4efe661bf672d6841a8fd4dd">kFLASH_resourceOptionFlashIfr</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga70d45ebc64d50e9868f7016c8a417c51aa137d8bd71c78b9abf89bb2082b81c32">kFLASH_resourceOptionVersionId</a> = 0x01U
<br/>
}</td></tr>
<tr class="memdesc:ga70d45ebc64d50e9868f7016c8a417c51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for the two possible options of flash read resource command. <a href="group__flash__driver.html#ga70d45ebc64d50e9868f7016c8a417c51">More...</a><br/></td></tr>
<tr class="separator:ga70d45ebc64d50e9868f7016c8a417c51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4fcca89ee32fbd2497a2ee1f8425a0ea"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga4fcca89ee32fbd2497a2ee1f8425a0ea">_flash_read_resource_range</a> { <br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga4fcca89ee32fbd2497a2ee1f8425a0eaa2555fee8c72da68751655fb741a8e47c">kFLASH_resourceRangePflashIfrSizeInBytes</a> = 256U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga4fcca89ee32fbd2497a2ee1f8425a0eaa2eed513f95a8fd850bbc9f2fe3883e08">kFLASH_resourceRangeVersionIdSizeInBytes</a> = 8U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga4fcca89ee32fbd2497a2ee1f8425a0eaa8d5e9ab4f131b342326066174fdc7b26">kFLASH_resourceRangeVersionIdStart</a> = 0x00U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga4fcca89ee32fbd2497a2ee1f8425a0eaa899f44675d925a16f9b6a6198ec09f93">kFLASH_resourceRangeVersionIdEnd</a> = 0x07U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga4fcca89ee32fbd2497a2ee1f8425a0eaaca8bf60aeef41d237096dc74112a2da7">kFLASH_resourceRangePflashSwapIfrStart</a> = 0x40000U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga4fcca89ee32fbd2497a2ee1f8425a0eaa50d9ce58881027bf60b1a8fe1bba251f">kFLASH_resourceRangePflashSwapIfrEnd</a> = 0x403FFU,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga4fcca89ee32fbd2497a2ee1f8425a0eaaf491d7dd6cb88c403ecfd1183c687256">kFLASH_resourceRangeDflashIfrStart</a> = 0x800000U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga4fcca89ee32fbd2497a2ee1f8425a0eaa0ab76f5493a9757bbc188ba8f8ea3022">kFLASH_resourceRangeDflashIfrEnd</a> = 0x8003FFU
<br/>
}</td></tr>
<tr class="memdesc:ga4fcca89ee32fbd2497a2ee1f8425a0ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for the range of special-purpose flash resource. <a href="group__flash__driver.html#ga4fcca89ee32fbd2497a2ee1f8425a0ea">More...</a><br/></td></tr>
<tr class="separator:ga4fcca89ee32fbd2497a2ee1f8425a0ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3812bab3ef6aacfbe889b1a81e25c76d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga3812bab3ef6aacfbe889b1a81e25c76d">flash_flexram_function_option_t</a> { <br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga3812bab3ef6aacfbe889b1a81e25c76da8d1947b4ab266dc6464afac5e7595888">kFLASH_flexramFunctionOptionAvailableAsRam</a> = 0xFFU,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga3812bab3ef6aacfbe889b1a81e25c76da751666b4fbb570523810c08a075f38ac">kFLASH_flexramFunctionOptionAvailableForEeprom</a> = 0x00U
<br/>
}</td></tr>
<tr class="memdesc:ga3812bab3ef6aacfbe889b1a81e25c76d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for the two possilbe options of set flexram function command. <a href="group__flash__driver.html#ga3812bab3ef6aacfbe889b1a81e25c76d">More...</a><br/></td></tr>
<tr class="separator:ga3812bab3ef6aacfbe889b1a81e25c76d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga799e1be1686e21a35457d674fc746728"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga799e1be1686e21a35457d674fc746728">flash_swap_function_option_t</a> { <br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga799e1be1686e21a35457d674fc746728a019efb91c642be3f5dbf44909c910735">kFLASH_swapFunctionOptionEnable</a> = 0x00U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga799e1be1686e21a35457d674fc746728a3d1ae650c3bad63eac2f9c1524e4ad20">kFLASH_swapFunctionOptionDisable</a> = 0x01U
<br/>
}</td></tr>
<tr class="memdesc:ga799e1be1686e21a35457d674fc746728"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for the possible options of Swap function. <a href="group__flash__driver.html#ga799e1be1686e21a35457d674fc746728">More...</a><br/></td></tr>
<tr class="separator:ga799e1be1686e21a35457d674fc746728"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac4c39d832a41bddec3f2953df588adeb"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#gac4c39d832a41bddec3f2953df588adeb">flash_swap_control_option_t</a> { <br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggac4c39d832a41bddec3f2953df588adeba3d7a86f896ea31f76de03aebb0b05e41">kFLASH_swapControlOptionIntializeSystem</a> = 0x01U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggac4c39d832a41bddec3f2953df588adeba76436465635dbc177523bc1d4b92c95d">kFLASH_swapControlOptionSetInUpdateState</a> = 0x02U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggac4c39d832a41bddec3f2953df588adeba5d61ae321e334b8128ad7dd39ad5d9f6">kFLASH_swapControlOptionSetInCompleteState</a> = 0x04U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggac4c39d832a41bddec3f2953df588adebaa9d409e2e08dc52c6b592595543212f7">kFLASH_swapControlOptionReportStatus</a> = 0x08U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggac4c39d832a41bddec3f2953df588adeba04ab928cb158c06c2caa3c5912e15101">kFLASH_swapControlOptionDisableSystem</a> = 0x10U
<br/>
}</td></tr>
<tr class="memdesc:gac4c39d832a41bddec3f2953df588adeb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for the possible options of Swap Control commands. <a href="group__flash__driver.html#gac4c39d832a41bddec3f2953df588adeb">More...</a><br/></td></tr>
<tr class="separator:gac4c39d832a41bddec3f2953df588adeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabbbbdf78a0245100d29ad83bd6f0d141"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#gabbbbdf78a0245100d29ad83bd6f0d141">flash_swap_state_t</a> { <br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggabbbbdf78a0245100d29ad83bd6f0d141a2c845854d65761c3fc2ef3b7af6c3f3b">kFLASH_swapStateUninitialized</a> = 0x00U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggabbbbdf78a0245100d29ad83bd6f0d141a53bff4dffd58b8516c2154bd7c024807">kFLASH_swapStateReady</a> = 0x01U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggabbbbdf78a0245100d29ad83bd6f0d141a90967831e9b424965e5ca6cf1ddb699b">kFLASH_swapStateUpdate</a> = 0x02U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggabbbbdf78a0245100d29ad83bd6f0d141abdecf61c981c7602b2bc9392da181dad">kFLASH_swapStateUpdateErased</a> = 0x03U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggabbbbdf78a0245100d29ad83bd6f0d141a9ec55168fa8430020670404fb31fb079">kFLASH_swapStateComplete</a> = 0x04U,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggabbbbdf78a0245100d29ad83bd6f0d141a045b5fbd5179bffe257bf54746564278">kFLASH_swapStateDisabled</a> = 0x05U
<br/>
}</td></tr>
<tr class="memdesc:gabbbbdf78a0245100d29ad83bd6f0d141"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for the possible flash swap status. <a href="group__flash__driver.html#gabbbbdf78a0245100d29ad83bd6f0d141">More...</a><br/></td></tr>
<tr class="separator:gabbbbdf78a0245100d29ad83bd6f0d141"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafa125571c739fe8d5c41cfe9402cb063"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#gafa125571c739fe8d5c41cfe9402cb063">flash_swap_block_status_t</a> { <br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggafa125571c739fe8d5c41cfe9402cb063a5b7a8a4b07c2df172577211a5ef7f2bd">kFLASH_swapBlockStatusLowerHalfProgramBlocksAtZero</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggafa125571c739fe8d5c41cfe9402cb063aa01c739dfe19e4f8ed2b8d9bc38945fe">kFLASH_swapBlockStatusUpperHalfProgramBlocksAtZero</a>
<br/>
}</td></tr>
<tr class="memdesc:gafa125571c739fe8d5c41cfe9402cb063"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for the possible flash swap block status <a href="group__flash__driver.html#gafa125571c739fe8d5c41cfe9402cb063">More...</a><br/></td></tr>
<tr class="separator:gafa125571c739fe8d5c41cfe9402cb063"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga46a69f0afbc5ceaae3748429aa2d7901"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga46a69f0afbc5ceaae3748429aa2d7901">flash_partition_flexram_load_option_t</a> { <br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga46a69f0afbc5ceaae3748429aa2d7901a68834dd191753750b10619af7d95c803">kFLASH_partitionFlexramLoadOptionLoadedWithValidEepromData</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga46a69f0afbc5ceaae3748429aa2d7901a5d73e6fa10a4c94c365e18b20af3ff78">kFLASH_partitionFlexramLoadOptionNotLoaded</a> = 0x01U
<br/>
}</td></tr>
<tr class="memdesc:ga46a69f0afbc5ceaae3748429aa2d7901"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for FlexRAM load during reset option. <a href="group__flash__driver.html#ga46a69f0afbc5ceaae3748429aa2d7901">More...</a><br/></td></tr>
<tr class="separator:ga46a69f0afbc5ceaae3748429aa2d7901"><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="group__flash__driver.html#ga2cdaf5b1f6b03013e2f0cf2c6d26adae">_flash_driver_version_constants</a> { <br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga2cdaf5b1f6b03013e2f0cf2c6d26adaeaec1789bc169e02ed2ca7d55ba0528532">kFLASH_driverVersionName</a> = 'F',
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga2cdaf5b1f6b03013e2f0cf2c6d26adaea3549183dd111aadd056c14d322a28ec9">kFLASH_driverVersionMajor</a> = 2,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga2cdaf5b1f6b03013e2f0cf2c6d26adaea63bb9f08b9c104b77bbd2752d9ef64dd">kFLASH_driverVersionMinor</a> = 1,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#gga2cdaf5b1f6b03013e2f0cf2c6d26adaead72f463d8ddd064f9e09d98f55e23ac9">kFLASH_driverVersionBugfix</a> = 0
<br/>
}</td></tr>
<tr class="memdesc:ga2cdaf5b1f6b03013e2f0cf2c6d26adae"><td class="mdescLeft">&#160;</td><td class="mdescRight">FLASH driver version for ROM. <a href="group__flash__driver.html#ga2cdaf5b1f6b03013e2f0cf2c6d26adae">More...</a><br/></td></tr>
<tr class="separator:ga2cdaf5b1f6b03013e2f0cf2c6d26adae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga812138aa3315b0c6953c1a26130bcc37"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(major, minor, bugfix)&#160;&#160;&#160;(((major) &lt;&lt; 16) | ((minor) &lt;&lt; 8) | (bugfix))</td></tr>
<tr class="memdesc:ga812138aa3315b0c6953c1a26130bcc37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the version number for drivers. <a href="#ga812138aa3315b0c6953c1a26130bcc37">More...</a><br/></td></tr>
<tr class="separator:ga812138aa3315b0c6953c1a26130bcc37"><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="group__flash__driver.html#gae110eddb64c67bfc620e80afd94dd281">FSL_FLASH_DRIVER_VERSION</a>&#160;&#160;&#160;(<a class="el" href="group__flash__driver.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 1, 0))</td></tr>
<tr class="memdesc:gae110eddb64c67bfc620e80afd94dd281"><td class="mdescLeft">&#160;</td><td class="mdescRight">FLASH driver version for SDK. <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:ga11c88faa6e9203bb2a2e32914344e4de"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga11c88faa6e9203bb2a2e32914344e4de">FLASH_SSD_CONFIG_ENABLE_FLEXNVM_SUPPORT</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga11c88faa6e9203bb2a2e32914344e4de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to support FlexNVM in flash driver. <a href="#ga11c88faa6e9203bb2a2e32914344e4de">More...</a><br/></td></tr>
<tr class="separator:ga11c88faa6e9203bb2a2e32914344e4de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga19c2c365c7d5884b9193e2ff4c63c906"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga19c2c365c7d5884b9193e2ff4c63c906"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga19c2c365c7d5884b9193e2ff4c63c906">FLASH_SSD_IS_FLEXNVM_ENABLED</a>&#160;&#160;&#160;(<a class="el" href="group__flash__driver.html#ga11c88faa6e9203bb2a2e32914344e4de">FLASH_SSD_CONFIG_ENABLE_FLEXNVM_SUPPORT</a> &amp;&amp; FSL_FEATURE_FLASH_HAS_FLEX_NVM)</td></tr>
<tr class="memdesc:ga19c2c365c7d5884b9193e2ff4c63c906"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether the FlexNVM is enabled in flash driver. <br/></td></tr>
<tr class="separator:ga19c2c365c7d5884b9193e2ff4c63c906"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1984b55076c622b4ec6bbf187b9a6612"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga1984b55076c622b4ec6bbf187b9a6612">FLASH_DRIVER_IS_FLASH_RESIDENT</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga1984b55076c622b4ec6bbf187b9a6612"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash driver location. <a href="#ga1984b55076c622b4ec6bbf187b9a6612">More...</a><br/></td></tr>
<tr class="separator:ga1984b55076c622b4ec6bbf187b9a6612"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c3e3dfacf9227253ad6dfc0b95e5c20"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga7c3e3dfacf9227253ad6dfc0b95e5c20">FLASH_DRIVER_IS_EXPORTED</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:ga7c3e3dfacf9227253ad6dfc0b95e5c20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash Driver Export option. <a href="#ga7c3e3dfacf9227253ad6dfc0b95e5c20">More...</a><br/></td></tr>
<tr class="separator:ga7c3e3dfacf9227253ad6dfc0b95e5c20"><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="group__flash__driver.html#gaa4639fd4d4503c0dec9925f749d308b2">_flash_status</a> { <br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2aacee5186bbe9db2e091dc5c36531cd7c">kStatus_FLASH_Success</a> = MAKE_STATUS(kStatusGroupGeneric, 0),
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867">kStatus_FLASH_InvalidArgument</a> = MAKE_STATUS(kStatusGroupGeneric, 4),
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a6735801bd1fbd61f7d96a07c2c2f9a76">kStatus_FLASH_SizeError</a> = MAKE_STATUS(kStatusGroupFlashDriver, 0),
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a098148af25679d78133103cace7580ea">kStatus_FLASH_AlignmentError</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2acc367a368270606eae83264f59b55211">kStatus_FLASH_AddressError</a> = MAKE_STATUS(kStatusGroupFlashDriver, 2),
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528">kStatus_FLASH_AccessError</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3">kStatus_FLASH_ProtectionViolation</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed">kStatus_FLASH_CommandFailure</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a0ac435d9c4aa24ccb8ab983de1979780">kStatus_FLASH_UnknownProperty</a> = MAKE_STATUS(kStatusGroupFlashDriver, 6),
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a9741e88e6013710b11b81e2af7071a92">kStatus_FLASH_EraseKeyError</a> = MAKE_STATUS(kStatusGroupFlashDriver, 7),
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2aa3ace4bf14ea333efd6189b8ddf47aca">kStatus_FLASH_RegionExecuteOnly</a> = MAKE_STATUS(kStatusGroupFlashDriver, 8),
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32">kStatus_FLASH_ExecuteInRamFunctionNotReady</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a91eb156935e27973454eb8df37a36c53">kStatus_FLASH_PartitionStatusUpdateFailure</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab8b9f6c116209a00338a430e741a1a40">kStatus_FLASH_SetFlexramAsEepromError</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a128d2d13d9674d46619a5c698bc7a7b9">kStatus_FLASH_RecoverFlexramAsRamError</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2abf40cb19a8c5af9880414ef5f9be1c6d">kStatus_FLASH_SetFlexramAsRamError</a> = MAKE_STATUS(kStatusGroupFlashDriver, 13),
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2aa7652faf3cc559ccda57f8aea502045b">kStatus_FLASH_RecoverFlexramAsEepromError</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab032e11743a3397f9c81afac3faa9c25">kStatus_FLASH_CommandNotSupported</a> = MAKE_STATUS(kStatusGroupFlashDriver, 15),
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a5e0c3747a74458caefc231b995f09679">kStatus_FLASH_SwapSystemNotInUninitialized</a>,
<br/>
&#160;&#160;<a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2aefaeaf1008f0361fb3ff2d051720cd82">kStatus_FLASH_SwapIndicatorAddressError</a>
<br/>
}</td></tr>
<tr class="memdesc:gaa4639fd4d4503c0dec9925f749d308b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash driver status codes. <a href="group__flash__driver.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="group__flash__driver.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>
<tr class="memitem:gad76dfbb0423d0cd3a7b77cbcd9043146"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#gad76dfbb0423d0cd3a7b77cbcd9043146">MAKE_STATUS</a>(group, code)&#160;&#160;&#160;((((group)*100) + (code)))</td></tr>
<tr class="memdesc:gad76dfbb0423d0cd3a7b77cbcd9043146"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a status code value from a group and code number. <a href="#gad76dfbb0423d0cd3a7b77cbcd9043146">More...</a><br/></td></tr>
<tr class="separator:gad76dfbb0423d0cd3a7b77cbcd9043146"><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="group__flash__driver.html#ga95539796ed8672eda06bfc363883a508">_flash_driver_api_keys</a> { <a class="el" href="group__flash__driver.html#gga95539796ed8672eda06bfc363883a508ab16b85961b62b1b7c2c8da430876fbcb">kFLASH_apiEraseKey</a> = FOUR_CHAR_CODE('k', '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="group__flash__driver.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="group__flash__driver.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">Construct the four char code for 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">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga19c10d3524010a2d33369855d74a5c04">FLASH_Init</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config)</td></tr>
<tr class="memdesc:ga19c10d3524010a2d33369855d74a5c04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes 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>
<tr class="memitem:gaa89a4c7704b471af58c2d0f629a87ff4"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#gaa89a4c7704b471af58c2d0f629a87ff4">FLASH_SetCallback</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, <a class="el" href="group__flash__driver.html#ga0b6fe9da451666f9c9f48e4c281c9ba5">flash_callback_t</a> callback)</td></tr>
<tr class="memdesc:gaa89a4c7704b471af58c2d0f629a87ff4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the desired flash callback function. <a href="#gaa89a4c7704b471af58c2d0f629a87ff4">More...</a><br/></td></tr>
<tr class="separator:gaa89a4c7704b471af58c2d0f629a87ff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab69bf91c617921217e0c5f302cc33daf"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#gab69bf91c617921217e0c5f302cc33daf">FLASH_PrepareExecuteInRamFunctions</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config)</td></tr>
<tr class="memdesc:gab69bf91c617921217e0c5f302cc33daf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepare flash execute-in-ram functions. <a href="#gab69bf91c617921217e0c5f302cc33daf">More...</a><br/></td></tr>
<tr class="separator:gab69bf91c617921217e0c5f302cc33daf"><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:ga620aad3b28de9e89e3297bd1bbcd5618"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga620aad3b28de9e89e3297bd1bbcd5618">FLASH_EraseAll</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t key)</td></tr>
<tr class="memdesc:ga620aad3b28de9e89e3297bd1bbcd5618"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erases entire flash. <a href="#ga620aad3b28de9e89e3297bd1bbcd5618">More...</a><br/></td></tr>
<tr class="separator:ga620aad3b28de9e89e3297bd1bbcd5618"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae9cb58f4cf76fec37631c4f344e2fb10"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#gae9cb58f4cf76fec37631c4f344e2fb10">FLASH_Erase</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">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 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>
<tr class="memitem:gad39d36451aef62e097b545518ef984f6"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#gad39d36451aef62e097b545518ef984f6">FLASH_EraseAllExecuteOnlySegments</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t key)</td></tr>
<tr class="memdesc:gad39d36451aef62e097b545518ef984f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erases entire flash, including protected sectors. <a href="#gad39d36451aef62e097b545518ef984f6">More...</a><br/></td></tr>
<tr class="separator:gad39d36451aef62e097b545518ef984f6"><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:gaac44aa0a054e62adb306bf4910a99bd4"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#gaac44aa0a054e62adb306bf4910a99bd4">FLASH_Program</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t start, uint32_t *src, uint32_t lengthInBytes)</td></tr>
<tr class="memdesc:gaac44aa0a054e62adb306bf4910a99bd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Programs flash with data at locations passed in through parameters. <a href="#gaac44aa0a054e62adb306bf4910a99bd4">More...</a><br/></td></tr>
<tr class="separator:gaac44aa0a054e62adb306bf4910a99bd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7e45501b1e1c6ddd5b10a76e422c4d29"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga7e45501b1e1c6ddd5b10a76e422c4d29">FLASH_ProgramOnce</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t index, uint32_t *src, uint32_t lengthInBytes)</td></tr>
<tr class="memdesc:ga7e45501b1e1c6ddd5b10a76e422c4d29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Programs Program Once Field through parameters. <a href="#ga7e45501b1e1c6ddd5b10a76e422c4d29">More...</a><br/></td></tr>
<tr class="separator:ga7e45501b1e1c6ddd5b10a76e422c4d29"><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>
Reading</h2></td></tr>
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp26fccddf2f94b1685b184267996e10f8"></a>Programs flash with data at locations passed in through parameters via Program Section command</p>
<p>This function programs the flash memory with desired 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>Pointer to 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 word-aligned. </td></tr>
<tr><td class="paramname">src</td><td>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 word-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="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a098148af25679d78133103cace7580ea" title="Parameter is not aligned with 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="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2abf40cb19a8c5af9880414ef5f9be1c6d" title="Failed to set flexram as ram. ">kStatus_FLASH_SetFlexramAsRamError</a></td><td>Failed to set flexram as ram </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32" title="Execute-in-ram function is not available. ">kStatus_FLASH_ExecuteInRamFunctionNotReady</a></td><td>Execute-in-ram function is not available. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bounds 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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3" title="The program/erase operation is requested to execute on protected areas. ">kStatus_FLASH_ProtectionViolation</a></td><td>The program/erase operation is requested to execute on protected areas. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during command execution. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2aa7652faf3cc559ccda57f8aea502045b" title="Failed to recover flexram as eeprom. ">kStatus_FLASH_RecoverFlexramAsEepromError</a></td><td>Failed to recover flexram as eeprom</td></tr>
</table>
</dd>
</dl>
<p>Programs EEPROM with data at locations passed in through parameters</p>
<p>This function programs the Emulated EEPROM with desired 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>Pointer to 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 word-aligned. </td></tr>
<tr><td class="paramname">src</td><td>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 word-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="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab8b9f6c116209a00338a430e741a1a40" title="Failed to set flexram as eeprom. ">kStatus_FLASH_SetFlexramAsEepromError</a></td><td>Failed to set flexram as eeprom. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3" title="The program/erase operation is requested to execute on protected areas. ">kStatus_FLASH_ProtectionViolation</a></td><td>The program/erase operation is requested to execute on protected areas. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a128d2d13d9674d46619a5c698bc7a7b9" title="Failed to recover flexram as ram. ">kStatus_FLASH_RecoverFlexramAsRamError</a></td><td>Failed to recover flexram as ram </td></tr>
</table>
</dd>
</dl>
</td></tr>
<tr class="memitem:ga3921a84a4dc5f7f824d6816d17cbc55b"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga3921a84a4dc5f7f824d6816d17cbc55b">FLASH_ReadOnce</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t index, uint32_t *dst, uint32_t lengthInBytes)</td></tr>
<tr class="memdesc:ga3921a84a4dc5f7f824d6816d17cbc55b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read resource with data at locations passed in through parameters. <a href="#ga3921a84a4dc5f7f824d6816d17cbc55b">More...</a><br/></td></tr>
<tr class="separator:ga3921a84a4dc5f7f824d6816d17cbc55b"><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>
Security</h2></td></tr>
<tr class="memitem:gac228a2b25c575e489b47ac3c0652a50a"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#gac228a2b25c575e489b47ac3c0652a50a">FLASH_GetSecurityState</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, <a class="el" href="group__flash__driver.html#ga00b3eb2666116e617f6e45a10218f6a9">flash_security_state_t</a> *state)</td></tr>
<tr class="memdesc:gac228a2b25c575e489b47ac3c0652a50a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the security state via the pointer passed into the function. <a href="#gac228a2b25c575e489b47ac3c0652a50a">More...</a><br/></td></tr>
<tr class="separator:gac228a2b25c575e489b47ac3c0652a50a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae54de3df1d9c73f19b1bd2ad713c2607"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#gae54de3df1d9c73f19b1bd2ad713c2607">FLASH_SecurityBypass</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, const uint8_t *backdoorKey)</td></tr>
<tr class="memdesc:gae54de3df1d9c73f19b1bd2ad713c2607"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows user to bypass security with a backdoor key. <a href="#gae54de3df1d9c73f19b1bd2ad713c2607">More...</a><br/></td></tr>
<tr class="separator:gae54de3df1d9c73f19b1bd2ad713c2607"><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:ga85a55ca1a9dcdd134989e6c722007db6"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga85a55ca1a9dcdd134989e6c722007db6">FLASH_VerifyEraseAll</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, <a class="el" href="group__flash__driver.html#ga2105f5de393a06479e62141dab8dd3fc">flash_margin_value_t</a> margin)</td></tr>
<tr class="memdesc:ga85a55ca1a9dcdd134989e6c722007db6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verifies erasure of entire flash at specified margin level. <a href="#ga85a55ca1a9dcdd134989e6c722007db6">More...</a><br/></td></tr>
<tr class="separator:ga85a55ca1a9dcdd134989e6c722007db6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf88e46a975e29f113fd29798aeb5b66c"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#gaf88e46a975e29f113fd29798aeb5b66c">FLASH_VerifyErase</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t start, uint32_t lengthInBytes, <a class="el" href="group__flash__driver.html#ga2105f5de393a06479e62141dab8dd3fc">flash_margin_value_t</a> margin)</td></tr>
<tr class="memdesc:gaf88e46a975e29f113fd29798aeb5b66c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verifies erasure of desired flash area at specified margin level. <a href="#gaf88e46a975e29f113fd29798aeb5b66c">More...</a><br/></td></tr>
<tr class="separator:gaf88e46a975e29f113fd29798aeb5b66c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga17820a03a93127cf52f6e7b5ed830c8b"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga17820a03a93127cf52f6e7b5ed830c8b">FLASH_VerifyProgram</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t start, uint32_t lengthInBytes, const uint32_t *expectedData, <a class="el" href="group__flash__driver.html#ga2105f5de393a06479e62141dab8dd3fc">flash_margin_value_t</a> margin, uint32_t *failedAddress, uint32_t *failedData)</td></tr>
<tr class="memdesc:ga17820a03a93127cf52f6e7b5ed830c8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verifies programming of desired flash area at specified margin level. <a href="#ga17820a03a93127cf52f6e7b5ed830c8b">More...</a><br/></td></tr>
<tr class="separator:ga17820a03a93127cf52f6e7b5ed830c8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab15b9e74df82e1ebc15c802c34eaeaab"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#gab15b9e74df82e1ebc15c802c34eaeaab">FLASH_VerifyEraseAllExecuteOnlySegments</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, <a class="el" href="group__flash__driver.html#ga2105f5de393a06479e62141dab8dd3fc">flash_margin_value_t</a> margin)</td></tr>
<tr class="memdesc:gab15b9e74df82e1ebc15c802c34eaeaab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verifies if the program flash executeonly segments have been erased to the specified read margin level. <a href="#gab15b9e74df82e1ebc15c802c34eaeaab">More...</a><br/></td></tr>
<tr class="separator:gab15b9e74df82e1ebc15c802c34eaeaab"><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>
Protection</h2></td></tr>
<tr class="memitem:ga3c28d781a630bb833e469cd11342f03a"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga3c28d781a630bb833e469cd11342f03a">FLASH_IsProtected</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t start, uint32_t lengthInBytes, <a class="el" href="group__flash__driver.html#ga9378245c649eebea9451367d6b8f9ce2">flash_protection_state_t</a> *protection_state)</td></tr>
<tr class="memdesc:ga3c28d781a630bb833e469cd11342f03a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the protection state of desired flash area via the pointer passed into the function. <a href="#ga3c28d781a630bb833e469cd11342f03a">More...</a><br/></td></tr>
<tr class="separator:ga3c28d781a630bb833e469cd11342f03a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga288c88008135094a458b0464aca7724a"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga288c88008135094a458b0464aca7724a">FLASH_IsExecuteOnly</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t start, uint32_t lengthInBytes, <a class="el" href="group__flash__driver.html#gad38961e5692f64548dbf84d652b9ccde">flash_execute_only_access_state_t</a> *access_state)</td></tr>
<tr class="memdesc:ga288c88008135094a458b0464aca7724a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the access state of desired flash area via the pointer passed into the function. <a href="#ga288c88008135094a458b0464aca7724a">More...</a><br/></td></tr>
<tr class="separator:ga288c88008135094a458b0464aca7724a"><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">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#gafd0d83bc8fec50fe9a9121d2ec906697">FLASH_GetProperty</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, <a class="el" href="group__flash__driver.html#ga7b6766fe08a63cf92a5e2a90dd6d010f">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>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Flash Protection Utilities</h2></td></tr>
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp66f4586b41eeb7a3b57734d055d38c3a"></a>Prepares the FlexNVM block for use as data flash, EEPROM backup, or a combination of both and initializes the FlexRAM.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>Pointer to storage for the driver runtime state. </td></tr>
<tr><td class="paramname">option</td><td>The option used to set FlexRAM load behavior during reset. </td></tr>
<tr><td class="paramname">eepromDataSizeCode</td><td>Determines the amount of FlexRAM used in each of the available EEPROM subsystems. </td></tr>
<tr><td class="paramname">flexnvmPartitionCode</td><td>Specifies how to split the FlexNVM block between data flash memory and EEPROM backup memory supporting EEPROM functions.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32" title="Execute-in-ram function is not available. ">kStatus_FLASH_ExecuteInRamFunctionNotReady</a></td><td>Execute-in-ram function is not available. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bounds 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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3" title="The program/erase operation is requested to execute on protected areas. ">kStatus_FLASH_ProtectionViolation</a></td><td>The program/erase operation is requested to execute on protected areas. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during command execution. </td></tr>
</table>
</dd>
</dl>
</td></tr>
<tr class="memitem:ga005996f64ae3b43e613ace953d613841"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga005996f64ae3b43e613ace953d613841">FLASH_PflashSetProtection</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t protectStatus)</td></tr>
<tr class="memdesc:ga005996f64ae3b43e613ace953d613841"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set PFLASH Protection to the intended protection status. <a href="#ga005996f64ae3b43e613ace953d613841">More...</a><br/></td></tr>
<tr class="separator:ga005996f64ae3b43e613ace953d613841"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga381fa81510e9aa0f83e117dc9b8ebcef"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ga381fa81510e9aa0f83e117dc9b8ebcef">FLASH_PflashGetProtection</a> (<a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *config, uint32_t *protectStatus)</td></tr>
<tr class="memdesc:ga381fa81510e9aa0f83e117dc9b8ebcef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get PFLASH Protection Status. <a href="#ga381fa81510e9aa0f83e117dc9b8ebcef">More...</a><br/></td></tr>
<tr class="separator:ga381fa81510e9aa0f83e117dc9b8ebcef"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="structflash__execute__in__ram__function__config__t" id="structflash__execute__in__ram__function__config__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct flash_execute_in_ram_function_config_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a219f882d6490567a156d8e03f38807a6"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#a219f882d6490567a156d8e03f38807a6">activeFunctionCount</a></td></tr>
<tr class="memdesc:a219f882d6490567a156d8e03f38807a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of available execute-in-ram functions. <a href="#a219f882d6490567a156d8e03f38807a6">More...</a><br/></td></tr>
<tr class="separator:a219f882d6490567a156d8e03f38807a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adec513393a5da3b670ea3242d687ed5f"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#adec513393a5da3b670ea3242d687ed5f">flashRunCommand</a></td></tr>
<tr class="memdesc:adec513393a5da3b670ea3242d687ed5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">execute-in-ram function: flash_run_command. <a href="#adec513393a5da3b670ea3242d687ed5f">More...</a><br/></td></tr>
<tr class="separator:adec513393a5da3b670ea3242d687ed5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad8bf14f362dfdd2aa6640a37f4e21f1"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#aad8bf14f362dfdd2aa6640a37f4e21f1">flashCacheClearCommand</a></td></tr>
<tr class="memdesc:aad8bf14f362dfdd2aa6640a37f4e21f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">execute-in-ram function: flash_cache_clear_command. <a href="#aad8bf14f362dfdd2aa6640a37f4e21f1">More...</a><br/></td></tr>
<tr class="separator:aad8bf14f362dfdd2aa6640a37f4e21f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a219f882d6490567a156d8e03f38807a6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t flash_execute_in_ram_function_config_t::activeFunctionCount</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="adec513393a5da3b670ea3242d687ed5f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t* flash_execute_in_ram_function_config_t::flashRunCommand</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aad8bf14f362dfdd2aa6640a37f4e21f1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t* flash_execute_in_ram_function_config_t::flashCacheClearCommand</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="structflash__swap__state__config__t" id="structflash__swap__state__config__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct flash_swap_state_config_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a2096dae01732139381f9c675424a14a8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__flash__driver.html#gabbbbdf78a0245100d29ad83bd6f0d141">flash_swap_state_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#a2096dae01732139381f9c675424a14a8">flashSwapState</a></td></tr>
<tr class="memdesc:a2096dae01732139381f9c675424a14a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current swap system status. <a href="#a2096dae01732139381f9c675424a14a8">More...</a><br/></td></tr>
<tr class="separator:a2096dae01732139381f9c675424a14a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acaf7027b909be19405f506077e3a1d1c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__flash__driver.html#gafa125571c739fe8d5c41cfe9402cb063">flash_swap_block_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#acaf7027b909be19405f506077e3a1d1c">currentSwapBlockStatus</a></td></tr>
<tr class="memdesc:acaf7027b909be19405f506077e3a1d1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current swap block status. <a href="#acaf7027b909be19405f506077e3a1d1c">More...</a><br/></td></tr>
<tr class="separator:acaf7027b909be19405f506077e3a1d1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a46cdb3ff6bce898f3adcc01755aae9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__flash__driver.html#gafa125571c739fe8d5c41cfe9402cb063">flash_swap_block_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#a8a46cdb3ff6bce898f3adcc01755aae9">nextSwapBlockStatus</a></td></tr>
<tr class="memdesc:a8a46cdb3ff6bce898f3adcc01755aae9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Next swap block status. <a href="#a8a46cdb3ff6bce898f3adcc01755aae9">More...</a><br/></td></tr>
<tr class="separator:a8a46cdb3ff6bce898f3adcc01755aae9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a2096dae01732139381f9c675424a14a8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__flash__driver.html#gabbbbdf78a0245100d29ad83bd6f0d141">flash_swap_state_t</a> flash_swap_state_config_t::flashSwapState</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="acaf7027b909be19405f506077e3a1d1c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__flash__driver.html#gafa125571c739fe8d5c41cfe9402cb063">flash_swap_block_status_t</a> flash_swap_state_config_t::currentSwapBlockStatus</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8a46cdb3ff6bce898f3adcc01755aae9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__flash__driver.html#gafa125571c739fe8d5c41cfe9402cb063">flash_swap_block_status_t</a> flash_swap_state_config_t::nextSwapBlockStatus</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="structflash__swap__ifr__field__config__t" id="structflash__swap__ifr__field__config__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct flash_swap_ifr_field_config_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:ad2d35cf06849eb4a9d7623a44f31d18e"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ad2d35cf06849eb4a9d7623a44f31d18e">swapIndicatorAddress</a></td></tr>
<tr class="memdesc:ad2d35cf06849eb4a9d7623a44f31d18e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap indicator address field. <a href="#ad2d35cf06849eb4a9d7623a44f31d18e">More...</a><br/></td></tr>
<tr class="separator:ad2d35cf06849eb4a9d7623a44f31d18e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af16943eff42ca625a095685327a8208c"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#af16943eff42ca625a095685327a8208c">swapEnableWord</a></td></tr>
<tr class="memdesc:af16943eff42ca625a095685327a8208c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap enable word field. <a href="#af16943eff42ca625a095685327a8208c">More...</a><br/></td></tr>
<tr class="separator:af16943eff42ca625a095685327a8208c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d0f1fe79eed287f13d92d24ad6ef207"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#a5d0f1fe79eed287f13d92d24ad6ef207">reserved0</a> [6]</td></tr>
<tr class="memdesc:a5d0f1fe79eed287f13d92d24ad6ef207"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserved field. <a href="#a5d0f1fe79eed287f13d92d24ad6ef207">More...</a><br/></td></tr>
<tr class="separator:a5d0f1fe79eed287f13d92d24ad6ef207"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2c01b673f1f2767c6261df04449906c"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ac2c01b673f1f2767c6261df04449906c">swapDisableWord</a></td></tr>
<tr class="memdesc:ac2c01b673f1f2767c6261df04449906c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap disable word field. <a href="#ac2c01b673f1f2767c6261df04449906c">More...</a><br/></td></tr>
<tr class="separator:ac2c01b673f1f2767c6261df04449906c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa6353af8f98666afd4f359a50da78bb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#afa6353af8f98666afd4f359a50da78bb">reserved1</a> [4]</td></tr>
<tr class="memdesc:afa6353af8f98666afd4f359a50da78bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserved field. <a href="#afa6353af8f98666afd4f359a50da78bb">More...</a><br/></td></tr>
<tr class="separator:afa6353af8f98666afd4f359a50da78bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="ad2d35cf06849eb4a9d7623a44f31d18e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t flash_swap_ifr_field_config_t::swapIndicatorAddress</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af16943eff42ca625a095685327a8208c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t flash_swap_ifr_field_config_t::swapEnableWord</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5d0f1fe79eed287f13d92d24ad6ef207"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t flash_swap_ifr_field_config_t::reserved0[6]</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ac2c01b673f1f2767c6261df04449906c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t flash_swap_ifr_field_config_t::swapDisableWord</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="afa6353af8f98666afd4f359a50da78bb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t flash_swap_ifr_field_config_t::reserved1[4]</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="structflash__operation__config__t" id="structflash__operation__config__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct flash_operation_config_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a8c896af670931c72a880df56624ee9eb"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#a8c896af670931c72a880df56624ee9eb">convertedAddress</a></td></tr>
<tr class="memdesc:a8c896af670931c72a880df56624ee9eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converted address for current flash type. <a href="#a8c896af670931c72a880df56624ee9eb">More...</a><br/></td></tr>
<tr class="separator:a8c896af670931c72a880df56624ee9eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd7eaf8c4af1e02f2b343cbfb67899b9"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#acd7eaf8c4af1e02f2b343cbfb67899b9">activeSectorSize</a></td></tr>
<tr class="memdesc:acd7eaf8c4af1e02f2b343cbfb67899b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sector size of current flash type. <a href="#acd7eaf8c4af1e02f2b343cbfb67899b9">More...</a><br/></td></tr>
<tr class="separator:acd7eaf8c4af1e02f2b343cbfb67899b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b4b0904f376a3518805d0dd51356fe7"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#a6b4b0904f376a3518805d0dd51356fe7">activeBlockSize</a></td></tr>
<tr class="memdesc:a6b4b0904f376a3518805d0dd51356fe7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Block size of current flash type. <a href="#a6b4b0904f376a3518805d0dd51356fe7">More...</a><br/></td></tr>
<tr class="separator:a6b4b0904f376a3518805d0dd51356fe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1a2d9d6cf1d620134f3d668319d56fa"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ab1a2d9d6cf1d620134f3d668319d56fa">blockWriteUnitSize</a></td></tr>
<tr class="memdesc:ab1a2d9d6cf1d620134f3d668319d56fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">write unit size. <a href="#ab1a2d9d6cf1d620134f3d668319d56fa">More...</a><br/></td></tr>
<tr class="separator:ab1a2d9d6cf1d620134f3d668319d56fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b16324d8c454e26e3184f73b23d278d"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#a3b16324d8c454e26e3184f73b23d278d">sectorCmdAddressAligment</a></td></tr>
<tr class="memdesc:a3b16324d8c454e26e3184f73b23d278d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase sector command address alignment. <a href="#a3b16324d8c454e26e3184f73b23d278d">More...</a><br/></td></tr>
<tr class="separator:a3b16324d8c454e26e3184f73b23d278d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace5e7199a69c381ede28bd534efd2707"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ace5e7199a69c381ede28bd534efd2707">sectionCmdAddressAligment</a></td></tr>
<tr class="memdesc:ace5e7199a69c381ede28bd534efd2707"><td class="mdescLeft">&#160;</td><td class="mdescRight">Program/Verify section command address alignment. <a href="#ace5e7199a69c381ede28bd534efd2707">More...</a><br/></td></tr>
<tr class="separator:ace5e7199a69c381ede28bd534efd2707"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac437b13f1b86ee5b52234c81cd150ed5"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ac437b13f1b86ee5b52234c81cd150ed5">resourceCmdAddressAligment</a></td></tr>
<tr class="memdesc:ac437b13f1b86ee5b52234c81cd150ed5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read resource command address alignment. <a href="#ac437b13f1b86ee5b52234c81cd150ed5">More...</a><br/></td></tr>
<tr class="separator:ac437b13f1b86ee5b52234c81cd150ed5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a049b2085180c04ad2f89ef7129667202"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#a049b2085180c04ad2f89ef7129667202">checkCmdAddressAligment</a></td></tr>
<tr class="memdesc:a049b2085180c04ad2f89ef7129667202"><td class="mdescLeft">&#160;</td><td class="mdescRight">Program check command address alignment. <a href="#a049b2085180c04ad2f89ef7129667202">More...</a><br/></td></tr>
<tr class="separator:a049b2085180c04ad2f89ef7129667202"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a8c896af670931c72a880df56624ee9eb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t flash_operation_config_t::convertedAddress</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="acd7eaf8c4af1e02f2b343cbfb67899b9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t flash_operation_config_t::activeSectorSize</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a6b4b0904f376a3518805d0dd51356fe7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t flash_operation_config_t::activeBlockSize</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ab1a2d9d6cf1d620134f3d668319d56fa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t flash_operation_config_t::blockWriteUnitSize</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a3b16324d8c454e26e3184f73b23d278d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t flash_operation_config_t::sectorCmdAddressAligment</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ace5e7199a69c381ede28bd534efd2707"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t flash_operation_config_t::sectionCmdAddressAligment</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ac437b13f1b86ee5b52234c81cd150ed5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t flash_operation_config_t::resourceCmdAddressAligment</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a049b2085180c04ad2f89ef7129667202"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t flash_operation_config_t::checkCmdAddressAligment</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="structflash__config__t" id="structflash__config__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct flash_config_t</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:a38d149791c84262f5526f278c250db6c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a38d149791c84262f5526f278c250db6c"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#a38d149791c84262f5526f278c250db6c">PFlashBlockBase</a></td></tr>
<tr class="memdesc:a38d149791c84262f5526f278c250db6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base address of the first PFlash block. <br/></td></tr>
<tr class="separator:a38d149791c84262f5526f278c250db6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d19cd0bb2c4f30c3a0e1a46400f9184"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#a3d19cd0bb2c4f30c3a0e1a46400f9184">PFlashTotalSize</a></td></tr>
<tr class="memdesc:a3d19cd0bb2c4f30c3a0e1a46400f9184"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of all combined PFlash block. <a href="#a3d19cd0bb2c4f30c3a0e1a46400f9184">More...</a><br/></td></tr>
<tr class="separator:a3d19cd0bb2c4f30c3a0e1a46400f9184"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c8a625e8a513ea640bff4d72cbfb9bf"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#a6c8a625e8a513ea640bff4d72cbfb9bf">PFlashBlockCount</a></td></tr>
<tr class="memdesc:a6c8a625e8a513ea640bff4d72cbfb9bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of PFlash blocks. <a href="#a6c8a625e8a513ea640bff4d72cbfb9bf">More...</a><br/></td></tr>
<tr class="separator:a6c8a625e8a513ea640bff4d72cbfb9bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9bec460d5fd4b27c7e4e7096036eebd"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ae9bec460d5fd4b27c7e4e7096036eebd">PFlashSectorSize</a></td></tr>
<tr class="memdesc:ae9bec460d5fd4b27c7e4e7096036eebd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size in bytes of a sector of PFlash. <a href="#ae9bec460d5fd4b27c7e4e7096036eebd">More...</a><br/></td></tr>
<tr class="separator:ae9bec460d5fd4b27c7e4e7096036eebd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a763d03e1c1230bf10a4c97a364b182b6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__flash__driver.html#ga0b6fe9da451666f9c9f48e4c281c9ba5">flash_callback_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#a763d03e1c1230bf10a4c97a364b182b6">PFlashCallback</a></td></tr>
<tr class="memdesc:a763d03e1c1230bf10a4c97a364b182b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function for flash API. <a href="#a763d03e1c1230bf10a4c97a364b182b6">More...</a><br/></td></tr>
<tr class="separator:a763d03e1c1230bf10a4c97a364b182b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a237cd61f95c8dd86d418f0853eece25d"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#a237cd61f95c8dd86d418f0853eece25d">PFlashAccessSegmentSize</a></td></tr>
<tr class="memdesc:a237cd61f95c8dd86d418f0853eece25d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size in bytes of a access segment of PFlash. <a href="#a237cd61f95c8dd86d418f0853eece25d">More...</a><br/></td></tr>
<tr class="separator:a237cd61f95c8dd86d418f0853eece25d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acef43a75197233cb7dc2cd7bff8dc938"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#acef43a75197233cb7dc2cd7bff8dc938">PFlashAccessSegmentCount</a></td></tr>
<tr class="memdesc:acef43a75197233cb7dc2cd7bff8dc938"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of PFlash access segments. <a href="#acef43a75197233cb7dc2cd7bff8dc938">More...</a><br/></td></tr>
<tr class="separator:acef43a75197233cb7dc2cd7bff8dc938"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01fb9b4fc8ddd85f261eb369febaa9d3"><td class="memItemLeft" align="right" valign="top">uint32_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#a01fb9b4fc8ddd85f261eb369febaa9d3">flashExecuteInRamFunctionInfo</a></td></tr>
<tr class="memdesc:a01fb9b4fc8ddd85f261eb369febaa9d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Info struct of flash execute-in-ram function. <a href="#a01fb9b4fc8ddd85f261eb369febaa9d3">More...</a><br/></td></tr>
<tr class="separator:a01fb9b4fc8ddd85f261eb369febaa9d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8cd40bbadba45089c0f805221974ef4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8cd40bbadba45089c0f805221974ef4"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#ac8cd40bbadba45089c0f805221974ef4">FlexRAMBlockBase</a></td></tr>
<tr class="memdesc:ac8cd40bbadba45089c0f805221974ef4"><td class="mdescLeft">&#160;</td><td class="mdescRight">For FlexNVM device, this is the base address of FlexRAM For non-FlexNVM device, this is the base address of acceleration RAM memory. <br/></td></tr>
<tr class="separator:ac8cd40bbadba45089c0f805221974ef4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d8a95c74597e8741b6fd3b316d89a4d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d8a95c74597e8741b6fd3b316d89a4d"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#a7d8a95c74597e8741b6fd3b316d89a4d">FlexRAMTotalSize</a></td></tr>
<tr class="memdesc:a7d8a95c74597e8741b6fd3b316d89a4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">For FlexNVM device, this is the size of FlexRAM For non-FlexNVM device, this is the size of acceleration RAM memory. <br/></td></tr>
<tr class="separator:a7d8a95c74597e8741b6fd3b316d89a4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b44c68a452f45b1bef4bfbec374baef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3b44c68a452f45b1bef4bfbec374baef"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#a3b44c68a452f45b1bef4bfbec374baef">DFlashBlockBase</a></td></tr>
<tr class="memdesc:a3b44c68a452f45b1bef4bfbec374baef"><td class="mdescLeft">&#160;</td><td class="mdescRight">For FlexNVM device, this is the base address of D-Flash memory (FlexNVM memory); For non-FlexNVM device, this field is unused. <br/></td></tr>
<tr class="separator:a3b44c68a452f45b1bef4bfbec374baef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecc5a6763e38286f9dc40b126b419c47"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aecc5a6763e38286f9dc40b126b419c47"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#aecc5a6763e38286f9dc40b126b419c47">DFlashTotalSize</a></td></tr>
<tr class="memdesc:aecc5a6763e38286f9dc40b126b419c47"><td class="mdescLeft">&#160;</td><td class="mdescRight">For FlexNVM device, this is total size of the FlexNVM memory; For non-FlexNVM device, this field is unused. <br/></td></tr>
<tr class="separator:aecc5a6763e38286f9dc40b126b419c47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a464aa51380e2684a11081d56be79499d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a464aa51380e2684a11081d56be79499d"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flash__driver.html#a464aa51380e2684a11081d56be79499d">EEpromTotalSize</a></td></tr>
<tr class="memdesc:a464aa51380e2684a11081d56be79499d"><td class="mdescLeft">&#160;</td><td class="mdescRight">For FlexNVM device, this is the size in byte of EEPROM area which was partitioned from FlexRAM; For non-FlexNVM device, this field is unused. <br/></td></tr>
<tr class="separator:a464aa51380e2684a11081d56be79499d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a3d19cd0bb2c4f30c3a0e1a46400f9184"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t flash_config_t::PFlashTotalSize</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a6c8a625e8a513ea640bff4d72cbfb9bf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t flash_config_t::PFlashBlockCount</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae9bec460d5fd4b27c7e4e7096036eebd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t flash_config_t::PFlashSectorSize</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a763d03e1c1230bf10a4c97a364b182b6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__flash__driver.html#ga0b6fe9da451666f9c9f48e4c281c9ba5">flash_callback_t</a> flash_config_t::PFlashCallback</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a237cd61f95c8dd86d418f0853eece25d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t flash_config_t::PFlashAccessSegmentSize</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="acef43a75197233cb7dc2cd7bff8dc938"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t flash_config_t::PFlashAccessSegmentCount</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a01fb9b4fc8ddd85f261eb369febaa9d3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t* flash_config_t::flashExecuteInRamFunctionInfo</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga812138aa3315b0c6953c1a26130bcc37"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MAKE_VERSION</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">major, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">minor, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">bugfix&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;(((major) &lt;&lt; 16) | ((minor) &lt;&lt; 8) | (bugfix))</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<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="group__flash__driver.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 1, 0))</td>
</tr>
</table>
</div><div class="memdoc">
<p>Version 2.1.0. </p>
</div>
</div>
<a class="anchor" id="ga11c88faa6e9203bb2a2e32914344e4de"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FLASH_SSD_CONFIG_ENABLE_FLEXNVM_SUPPORT&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p>Enable FlexNVM support by default. </p>
</div>
</div>
<a class="anchor" id="ga1984b55076c622b4ec6bbf187b9a6612"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FLASH_DRIVER_IS_FLASH_RESIDENT&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p>Used for flash resident application. </p>
</div>
</div>
<a class="anchor" id="ga7c3e3dfacf9227253ad6dfc0b95e5c20"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FLASH_DRIVER_IS_EXPORTED&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
<p>Used for SDK application. </p>
</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="gad76dfbb0423d0cd3a7b77cbcd9043146"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MAKE_STATUS</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">group, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">code&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;((((group)*100) + (code)))</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">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="group__flash__driver.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="gga2cdaf5b1f6b03013e2f0cf2c6d26adaeaec1789bc169e02ed2ca7d55ba0528532"></a>kFLASH_driverVersionName</em>&#160;</td><td class="fielddoc">
<p>Flash driver version name. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2cdaf5b1f6b03013e2f0cf2c6d26adaea3549183dd111aadd056c14d322a28ec9"></a>kFLASH_driverVersionMajor</em>&#160;</td><td class="fielddoc">
<p>Major flash driver version. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2cdaf5b1f6b03013e2f0cf2c6d26adaea63bb9f08b9c104b77bbd2752d9ef64dd"></a>kFLASH_driverVersionMinor</em>&#160;</td><td class="fielddoc">
<p>Minor flash driver version. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2cdaf5b1f6b03013e2f0cf2c6d26adaead72f463d8ddd064f9e09d98f55e23ac9"></a>kFLASH_driverVersionBugfix</em>&#160;</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="group__flash__driver.html#gaa4639fd4d4503c0dec9925f749d308b2">_flash_status</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="ggaa4639fd4d4503c0dec9925f749d308b2aacee5186bbe9db2e091dc5c36531cd7c"></a>kStatus_FLASH_Success</em>&#160;</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>&#160;</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>&#160;</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>&#160;</td><td class="fielddoc">
<p>Parameter is not aligned with specified baseline. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2acc367a368270606eae83264f59b55211"></a>kStatus_FLASH_AddressError</em>&#160;</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>&#160;</td><td class="fielddoc">
<p>Invalid instruction codes and out-of bounds addresses. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3"></a>kStatus_FLASH_ProtectionViolation</em>&#160;</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>&#160;</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>&#160;</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>&#160;</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>&#160;</td><td class="fielddoc">
<p>Current region is execute only. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32"></a>kStatus_FLASH_ExecuteInRamFunctionNotReady</em>&#160;</td><td class="fielddoc">
<p>Execute-in-ram function is not available. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a91eb156935e27973454eb8df37a36c53"></a>kStatus_FLASH_PartitionStatusUpdateFailure</em>&#160;</td><td class="fielddoc">
<p>Failed to update partition status. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2ab8b9f6c116209a00338a430e741a1a40"></a>kStatus_FLASH_SetFlexramAsEepromError</em>&#160;</td><td class="fielddoc">
<p>Failed to set flexram as eeprom. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a128d2d13d9674d46619a5c698bc7a7b9"></a>kStatus_FLASH_RecoverFlexramAsRamError</em>&#160;</td><td class="fielddoc">
<p>Failed to recover flexram as ram. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2abf40cb19a8c5af9880414ef5f9be1c6d"></a>kStatus_FLASH_SetFlexramAsRamError</em>&#160;</td><td class="fielddoc">
<p>Failed to set flexram as ram. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2aa7652faf3cc559ccda57f8aea502045b"></a>kStatus_FLASH_RecoverFlexramAsEepromError</em>&#160;</td><td class="fielddoc">
<p>Failed to recover flexram as eeprom. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2ab032e11743a3397f9c81afac3faa9c25"></a>kStatus_FLASH_CommandNotSupported</em>&#160;</td><td class="fielddoc">
<p>Flash api is not supported. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2a5e0c3747a74458caefc231b995f09679"></a>kStatus_FLASH_SwapSystemNotInUninitialized</em>&#160;</td><td class="fielddoc">
<p>Swap system is not in uninitialzed state. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa4639fd4d4503c0dec9925f749d308b2aefaeaf1008f0361fb3ff2d051720cd82"></a>kStatus_FLASH_SwapIndicatorAddressError</em>&#160;</td><td class="fielddoc">
<p>Swap indicator address is invalid. </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="group__flash__driver.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="gga95539796ed8672eda06bfc363883a508ab16b85961b62b1b7c2c8da430876fbcb"></a>kFLASH_apiEraseKey</em>&#160;</td><td class="fielddoc">
<p>Key value used to validate all flash erase APIs. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga2105f5de393a06479e62141dab8dd3fc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__flash__driver.html#ga2105f5de393a06479e62141dab8dd3fc">flash_margin_value_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga2105f5de393a06479e62141dab8dd3fca86401bd13b20fb2769feb2d376fe63f8"></a>kFLASH_marginValueNormal</em>&#160;</td><td class="fielddoc">
<p>Use the 'normal' read level for 1s. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2105f5de393a06479e62141dab8dd3fca835e36458d04964f14a28dca101ae8e1"></a>kFLASH_marginValueUser</em>&#160;</td><td class="fielddoc">
<p>Apply the 'User' margin to the normal read-1 level. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2105f5de393a06479e62141dab8dd3fca90e8461e1b2cc2771f31c1fbf49dc411"></a>kFLASH_marginValueFactory</em>&#160;</td><td class="fielddoc">
<p>Apply the 'Factory' margin to the normal read-1 level. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2105f5de393a06479e62141dab8dd3fca0c83dd80267e6be92eb877a70edb3d67"></a>kFLASH_marginValueInvalid</em>&#160;</td><td class="fielddoc">
<p>Not real margin level, Used to determine the range of valid margin level. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga00b3eb2666116e617f6e45a10218f6a9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__flash__driver.html#ga00b3eb2666116e617f6e45a10218f6a9">flash_security_state_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga00b3eb2666116e617f6e45a10218f6a9af0467debfe888cdc294b4a541476d9a8"></a>kFLASH_securityStateNotSecure</em>&#160;</td><td class="fielddoc">
<p>Flash is not secure. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga00b3eb2666116e617f6e45a10218f6a9a4c3f924bf529eb9e8d845d308927c4ee"></a>kFLASH_securityStateBackdoorEnabled</em>&#160;</td><td class="fielddoc">
<p>Flash backdoor is enabled. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga00b3eb2666116e617f6e45a10218f6a9a2aacad860cb61b8ddf74be73993799e1"></a>kFLASH_securityStateBackdoorDisabled</em>&#160;</td><td class="fielddoc">
<p>Flash backdoor is disabled. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga9378245c649eebea9451367d6b8f9ce2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__flash__driver.html#ga9378245c649eebea9451367d6b8f9ce2">flash_protection_state_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga9378245c649eebea9451367d6b8f9ce2a3c1dc57d87250bcd3219dd7a6eb2820b"></a>kFLASH_protectionStateUnprotected</em>&#160;</td><td class="fielddoc">
<p>Flash region is not protected. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9378245c649eebea9451367d6b8f9ce2a895a84f94bc5133f1fff66b3f842c3b9"></a>kFLASH_protectionStateProtected</em>&#160;</td><td class="fielddoc">
<p>Flash region is protected. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga9378245c649eebea9451367d6b8f9ce2ae39b1cbcf8aa2812cd1d2839bc5f5744"></a>kFLASH_protectionStateMixed</em>&#160;</td><td class="fielddoc">
<p>Flash is mixed with protected and unprotected region. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gad38961e5692f64548dbf84d652b9ccde"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__flash__driver.html#gad38961e5692f64548dbf84d652b9ccde">flash_execute_only_access_state_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggad38961e5692f64548dbf84d652b9ccdea109aa284db3559f6ae4d5ef91b136c6b"></a>kFLASH_accessStateUnLimited</em>&#160;</td><td class="fielddoc">
<p>Flash region is unLimited. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad38961e5692f64548dbf84d652b9ccdea6f95d9a59ba3d4236bf82b51e1acc36d"></a>kFLASH_accessStateExecuteOnly</em>&#160;</td><td class="fielddoc">
<p>Flash region is execute only. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad38961e5692f64548dbf84d652b9ccdea58d22b99329858aae78b94f5e5fb92e7"></a>kFLASH_accessStateMixed</em>&#160;</td><td class="fielddoc">
<p>Flash is mixed with unLimited and execute only region. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga7b6766fe08a63cf92a5e2a90dd6d010f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__flash__driver.html#ga7b6766fe08a63cf92a5e2a90dd6d010f">flash_property_tag_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga7b6766fe08a63cf92a5e2a90dd6d010fa48219185555ed390a6c8515e15fdcdd5"></a>kFLASH_propertyPflashSectorSize</em>&#160;</td><td class="fielddoc">
<p>Pflash sector size property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga7b6766fe08a63cf92a5e2a90dd6d010fa5cb87d92cc447ccd90b944708dbbbcb1"></a>kFLASH_propertyPflashTotalSize</em>&#160;</td><td class="fielddoc">
<p>Pflash total size property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga7b6766fe08a63cf92a5e2a90dd6d010fa8e5554e86decd51a12256baa4abf8e0d"></a>kFLASH_propertyPflashBlockSize</em>&#160;</td><td class="fielddoc">
<p>Pflash block size property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga7b6766fe08a63cf92a5e2a90dd6d010fa6936f9de54632a5d184a05c0cce7cc30"></a>kFLASH_propertyPflashBlockCount</em>&#160;</td><td class="fielddoc">
<p>Pflash block count property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga7b6766fe08a63cf92a5e2a90dd6d010fa213bf86b0ae319eb3a3966ca764ae6fd"></a>kFLASH_propertyPflashBlockBaseAddr</em>&#160;</td><td class="fielddoc">
<p>Pflash block base address property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga7b6766fe08a63cf92a5e2a90dd6d010fa3c0b18a9c5a8f8a447832f783568bf1e"></a>kFLASH_propertyPflashFacSupport</em>&#160;</td><td class="fielddoc">
<p>Pflash fac support property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga7b6766fe08a63cf92a5e2a90dd6d010fa1b98d5b1b283c20a870c40c552d610a6"></a>kFLASH_propertyPflashAccessSegmentSize</em>&#160;</td><td class="fielddoc">
<p>Pflash access segment size property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga7b6766fe08a63cf92a5e2a90dd6d010fa4c109d46004feb6592a8ab6ba6432583"></a>kFLASH_propertyPflashAccessSegmentCount</em>&#160;</td><td class="fielddoc">
<p>Pflash access segment count property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga7b6766fe08a63cf92a5e2a90dd6d010fa714912184b28ad68ebad61e1965aeecb"></a>kFLASH_propertyFlexRamBlockBaseAddr</em>&#160;</td><td class="fielddoc">
<p>FlexRam block base address property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga7b6766fe08a63cf92a5e2a90dd6d010fa39f4fe10c71aceadc26eea3bc6aa072e"></a>kFLASH_propertyFlexRamTotalSize</em>&#160;</td><td class="fielddoc">
<p>FlexRam total size property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga7b6766fe08a63cf92a5e2a90dd6d010fa41e621eecc80d595718bba413e423e58"></a>kFLASH_propertyDflashSectorSize</em>&#160;</td><td class="fielddoc">
<p>Dflash sector size property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga7b6766fe08a63cf92a5e2a90dd6d010faffc68eb961af773cbfe0aff00287c25d"></a>kFLASH_propertyDflashTotalSize</em>&#160;</td><td class="fielddoc">
<p>Dflash total size property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga7b6766fe08a63cf92a5e2a90dd6d010fac7cbbd7a4f22b973991efd6a80a68133"></a>kFLASH_propertyDflashBlockSize</em>&#160;</td><td class="fielddoc">
<p>Dflash block count property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga7b6766fe08a63cf92a5e2a90dd6d010fa76b9a68b9c74e7cdc1a61fb6618c2beb"></a>kFLASH_propertyDflashBlockCount</em>&#160;</td><td class="fielddoc">
<p>Dflash block base address property. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga7b6766fe08a63cf92a5e2a90dd6d010fa7de520c3891c79adf3f6597abe9cbe86"></a>kFLASH_propertyDflashBlockBaseAddr</em>&#160;</td><td class="fielddoc">
<p>Eeprom total size property. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gae76bb8924742f0483f66c4d3917bb31e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__flash__driver.html#gae76bb8924742f0483f66c4d3917bb31e">_flash_execute_in_ram_function_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="ggae76bb8924742f0483f66c4d3917bb31eab96b61fc8ecacd40591f367a9ca817f8"></a>kFLASH_executeInRamFunctionMaxSize</em>&#160;</td><td class="fielddoc">
<p>Max size of execute-in-ram function. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggae76bb8924742f0483f66c4d3917bb31eab0d3958382b926e486413d1d08d74df8"></a>kFLASH_executeInRamFunctionTotalNum</em>&#160;</td><td class="fielddoc">
<p>Total number of execute-in-ram functions. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga70d45ebc64d50e9868f7016c8a417c51"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__flash__driver.html#ga70d45ebc64d50e9868f7016c8a417c51">flash_read_resource_option_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga70d45ebc64d50e9868f7016c8a417c51ab079a92f4efe661bf672d6841a8fd4dd"></a>kFLASH_resourceOptionFlashIfr</em>&#160;</td><td class="fielddoc">
<p>Select code for Program flash 0 IFR, Program flash swap 0 IFR, Data flash 0 IFR. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga70d45ebc64d50e9868f7016c8a417c51aa137d8bd71c78b9abf89bb2082b81c32"></a>kFLASH_resourceOptionVersionId</em>&#160;</td><td class="fielddoc">
<p>Select code for Version ID. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga4fcca89ee32fbd2497a2ee1f8425a0ea"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__flash__driver.html#ga4fcca89ee32fbd2497a2ee1f8425a0ea">_flash_read_resource_range</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="gga4fcca89ee32fbd2497a2ee1f8425a0eaa2555fee8c72da68751655fb741a8e47c"></a>kFLASH_resourceRangePflashIfrSizeInBytes</em>&#160;</td><td class="fielddoc">
<p>Pflash IFR size in byte. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4fcca89ee32fbd2497a2ee1f8425a0eaa2eed513f95a8fd850bbc9f2fe3883e08"></a>kFLASH_resourceRangeVersionIdSizeInBytes</em>&#160;</td><td class="fielddoc">
<p>Version ID IFR size in byte. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4fcca89ee32fbd2497a2ee1f8425a0eaa8d5e9ab4f131b342326066174fdc7b26"></a>kFLASH_resourceRangeVersionIdStart</em>&#160;</td><td class="fielddoc">
<p>Version ID IFR start address. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4fcca89ee32fbd2497a2ee1f8425a0eaa899f44675d925a16f9b6a6198ec09f93"></a>kFLASH_resourceRangeVersionIdEnd</em>&#160;</td><td class="fielddoc">
<p>Version ID IFR end address. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4fcca89ee32fbd2497a2ee1f8425a0eaaca8bf60aeef41d237096dc74112a2da7"></a>kFLASH_resourceRangePflashSwapIfrStart</em>&#160;</td><td class="fielddoc">
<p>Pflash swap IFR start address. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4fcca89ee32fbd2497a2ee1f8425a0eaa50d9ce58881027bf60b1a8fe1bba251f"></a>kFLASH_resourceRangePflashSwapIfrEnd</em>&#160;</td><td class="fielddoc">
<p>Pflash swap IFR end address. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4fcca89ee32fbd2497a2ee1f8425a0eaaf491d7dd6cb88c403ecfd1183c687256"></a>kFLASH_resourceRangeDflashIfrStart</em>&#160;</td><td class="fielddoc">
<p>Dflash IFR start address. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4fcca89ee32fbd2497a2ee1f8425a0eaa0ab76f5493a9757bbc188ba8f8ea3022"></a>kFLASH_resourceRangeDflashIfrEnd</em>&#160;</td><td class="fielddoc">
<p>Dflash IFR end address. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga3812bab3ef6aacfbe889b1a81e25c76d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__flash__driver.html#ga3812bab3ef6aacfbe889b1a81e25c76d">flash_flexram_function_option_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga3812bab3ef6aacfbe889b1a81e25c76da8d1947b4ab266dc6464afac5e7595888"></a>kFLASH_flexramFunctionOptionAvailableAsRam</em>&#160;</td><td class="fielddoc">
<p>Option used to make FlexRAM available as RAM. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3812bab3ef6aacfbe889b1a81e25c76da751666b4fbb570523810c08a075f38ac"></a>kFLASH_flexramFunctionOptionAvailableForEeprom</em>&#160;</td><td class="fielddoc">
<p>Option used to make FlexRAM available for EEPROM. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga799e1be1686e21a35457d674fc746728"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__flash__driver.html#ga799e1be1686e21a35457d674fc746728">flash_swap_function_option_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga799e1be1686e21a35457d674fc746728a019efb91c642be3f5dbf44909c910735"></a>kFLASH_swapFunctionOptionEnable</em>&#160;</td><td class="fielddoc">
<p>Option used to enable Swap function. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga799e1be1686e21a35457d674fc746728a3d1ae650c3bad63eac2f9c1524e4ad20"></a>kFLASH_swapFunctionOptionDisable</em>&#160;</td><td class="fielddoc">
<p>Option used to Disable Swap function. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gac4c39d832a41bddec3f2953df588adeb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__flash__driver.html#gac4c39d832a41bddec3f2953df588adeb">flash_swap_control_option_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggac4c39d832a41bddec3f2953df588adeba3d7a86f896ea31f76de03aebb0b05e41"></a>kFLASH_swapControlOptionIntializeSystem</em>&#160;</td><td class="fielddoc">
<p>Option used to Intialize Swap System. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac4c39d832a41bddec3f2953df588adeba76436465635dbc177523bc1d4b92c95d"></a>kFLASH_swapControlOptionSetInUpdateState</em>&#160;</td><td class="fielddoc">
<p>Option used to Set Swap in Update State. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac4c39d832a41bddec3f2953df588adeba5d61ae321e334b8128ad7dd39ad5d9f6"></a>kFLASH_swapControlOptionSetInCompleteState</em>&#160;</td><td class="fielddoc">
<p>Option used to Set Swap in Complete State. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac4c39d832a41bddec3f2953df588adebaa9d409e2e08dc52c6b592595543212f7"></a>kFLASH_swapControlOptionReportStatus</em>&#160;</td><td class="fielddoc">
<p>Option used to Report Swap Status. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac4c39d832a41bddec3f2953df588adeba04ab928cb158c06c2caa3c5912e15101"></a>kFLASH_swapControlOptionDisableSystem</em>&#160;</td><td class="fielddoc">
<p>Option used to Disable Swap Status. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gabbbbdf78a0245100d29ad83bd6f0d141"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__flash__driver.html#gabbbbdf78a0245100d29ad83bd6f0d141">flash_swap_state_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggabbbbdf78a0245100d29ad83bd6f0d141a2c845854d65761c3fc2ef3b7af6c3f3b"></a>kFLASH_swapStateUninitialized</em>&#160;</td><td class="fielddoc">
<p>Flash swap system is in uninitialized state. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggabbbbdf78a0245100d29ad83bd6f0d141a53bff4dffd58b8516c2154bd7c024807"></a>kFLASH_swapStateReady</em>&#160;</td><td class="fielddoc">
<p>Flash swap system is in ready state. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggabbbbdf78a0245100d29ad83bd6f0d141a90967831e9b424965e5ca6cf1ddb699b"></a>kFLASH_swapStateUpdate</em>&#160;</td><td class="fielddoc">
<p>Flash swap system is in update state. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggabbbbdf78a0245100d29ad83bd6f0d141abdecf61c981c7602b2bc9392da181dad"></a>kFLASH_swapStateUpdateErased</em>&#160;</td><td class="fielddoc">
<p>Flash swap system is in updateErased state. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggabbbbdf78a0245100d29ad83bd6f0d141a9ec55168fa8430020670404fb31fb079"></a>kFLASH_swapStateComplete</em>&#160;</td><td class="fielddoc">
<p>Flash swap system is in complete state. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggabbbbdf78a0245100d29ad83bd6f0d141a045b5fbd5179bffe257bf54746564278"></a>kFLASH_swapStateDisabled</em>&#160;</td><td class="fielddoc">
<p>Flash swap system is in disabled state. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gafa125571c739fe8d5c41cfe9402cb063"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__flash__driver.html#gafa125571c739fe8d5c41cfe9402cb063">flash_swap_block_status_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggafa125571c739fe8d5c41cfe9402cb063a5b7a8a4b07c2df172577211a5ef7f2bd"></a>kFLASH_swapBlockStatusLowerHalfProgramBlocksAtZero</em>&#160;</td><td class="fielddoc">
<p>Swap block status is that lower half program block at zero. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafa125571c739fe8d5c41cfe9402cb063aa01c739dfe19e4f8ed2b8d9bc38945fe"></a>kFLASH_swapBlockStatusUpperHalfProgramBlocksAtZero</em>&#160;</td><td class="fielddoc">
<p>Swap block status is that upper half program block at zero. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga46a69f0afbc5ceaae3748429aa2d7901"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__flash__driver.html#ga46a69f0afbc5ceaae3748429aa2d7901">flash_partition_flexram_load_option_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga46a69f0afbc5ceaae3748429aa2d7901a68834dd191753750b10619af7d95c803"></a>kFLASH_partitionFlexramLoadOptionLoadedWithValidEepromData</em>&#160;</td><td class="fielddoc">
<p>FlexRAM is loaded with valid EEPROM data during reset sequence. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga46a69f0afbc5ceaae3748429aa2d7901a5d73e6fa10a4c94c365e18b20af3ff78"></a>kFLASH_partitionFlexramLoadOptionNotLoaded</em>&#160;</td><td class="fielddoc">
<p>FlexRAM is not loaded during reset sequence. </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">status_t FLASH_Init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">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 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 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="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32" title="Execute-in-ram function is not available. ">kStatus_FLASH_ExecuteInRamFunctionNotReady</a></td><td>Execute-in-ram function is not available. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a91eb156935e27973454eb8df37a36c53" title="Failed to update partition status. ">kStatus_FLASH_PartitionStatusUpdateFailure</a></td><td>Failed to update partition status. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaa89a4c7704b471af58c2d0f629a87ff4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t FLASH_SetCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">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="group__flash__driver.html#ga0b6fe9da451666f9c9f48e4c281c9ba5">flash_callback_t</a>&#160;</td>
<td class="paramname"><em>callback</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>Pointer to storage for the driver runtime state. </td></tr>
<tr><td class="paramname">callback</td><td>callback function to be stored in driver</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gab69bf91c617921217e0c5f302cc33daf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t FLASH_PrepareExecuteInRamFunctions </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *&#160;</td>
<td class="paramname"><em>config</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">config</td><td>Pointer to 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="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga620aad3b28de9e89e3297bd1bbcd5618"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t FLASH_EraseAll </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">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>key</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>Pointer to storage for the driver runtime state. </td></tr>
<tr><td class="paramname">key</td><td>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="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a9741e88e6013710b11b81e2af7071a92" title="Api erase key is invalid. ">kStatus_FLASH_EraseKeyError</a></td><td>Api erase key is invalid. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32" title="Execute-in-ram function is not available. ">kStatus_FLASH_ExecuteInRamFunctionNotReady</a></td><td>Execute-in-ram function is not available. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bounds 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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3" title="The program/erase operation is requested to execute on protected areas. ">kStatus_FLASH_ProtectionViolation</a></td><td>The program/erase operation is requested to execute on protected areas. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during command execution. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a91eb156935e27973454eb8df37a36c53" title="Failed to update partition status. ">kStatus_FLASH_PartitionStatusUpdateFailure</a></td><td>Failed to update partition status </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">status_t FLASH_Erase </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">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>Pointer to 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 does not need to be sector aligned but must be word-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 word aligned. </td></tr>
<tr><td class="paramname">key</td><td>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="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a098148af25679d78133103cace7580ea" title="Parameter is not aligned with 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="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a9741e88e6013710b11b81e2af7071a92" title="Api erase key is invalid. ">kStatus_FLASH_EraseKeyError</a></td><td>Api erase key is invalid. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32" title="Execute-in-ram function is not available. ">kStatus_FLASH_ExecuteInRamFunctionNotReady</a></td><td>Execute-in-ram function is not available. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bounds 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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3" title="The program/erase operation is requested to execute on protected areas. ">kStatus_FLASH_ProtectionViolation</a></td><td>The program/erase operation is requested to execute on protected areas. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during command execution. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gad39d36451aef62e097b545518ef984f6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t FLASH_EraseAllExecuteOnlySegments </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">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>key</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>Pointer to storage for the driver runtime state. </td></tr>
<tr><td class="paramname">key</td><td>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="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a9741e88e6013710b11b81e2af7071a92" title="Api erase key is invalid. ">kStatus_FLASH_EraseKeyError</a></td><td>Api erase key is invalid. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32" title="Execute-in-ram function is not available. ">kStatus_FLASH_ExecuteInRamFunctionNotReady</a></td><td>Execute-in-ram function is not available. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bounds 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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3" title="The program/erase operation is requested to execute on protected areas. ">kStatus_FLASH_ProtectionViolation</a></td><td>The program/erase operation is requested to execute on protected areas. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during command execution. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a91eb156935e27973454eb8df37a36c53" title="Failed to update partition status. ">kStatus_FLASH_PartitionStatusUpdateFailure</a></td><td>Failed to update partition status</td></tr>
</table>
</dd>
</dl>
<p>Erases all program flash execute-only segments defined by the FXACC registers.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>Pointer to storage for the driver runtime state. </td></tr>
<tr><td class="paramname">key</td><td>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="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a9741e88e6013710b11b81e2af7071a92" title="Api erase key is invalid. ">kStatus_FLASH_EraseKeyError</a></td><td>Api erase key is invalid. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32" title="Execute-in-ram function is not available. ">kStatus_FLASH_ExecuteInRamFunctionNotReady</a></td><td>Execute-in-ram function is not available. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bounds 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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3" title="The program/erase operation is requested to execute on protected areas. ">kStatus_FLASH_ProtectionViolation</a></td><td>The program/erase operation is requested to execute on protected areas. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during command execution. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaac44aa0a054e62adb306bf4910a99bd4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t FLASH_Program </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">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>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 desired 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>Pointer to 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 word-aligned. </td></tr>
<tr><td class="paramname">src</td><td>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 word-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="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a098148af25679d78133103cace7580ea" title="Parameter is not aligned with 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="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32" title="Execute-in-ram function is not available. ">kStatus_FLASH_ExecuteInRamFunctionNotReady</a></td><td>Execute-in-ram function is not available. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bounds 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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3" title="The program/erase operation is requested to execute on protected areas. ">kStatus_FLASH_ProtectionViolation</a></td><td>The program/erase operation is requested to execute on protected areas. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during command execution. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga7e45501b1e1c6ddd5b10a76e422c4d29"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t FLASH_ProgramOnce </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">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>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_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 Program Once Field with desired data for a given flash area as determined by the index and length.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>Pointer to storage for the driver runtime state. </td></tr>
<tr><td class="paramname">index</td><td>The index indicating which area of Program Once Field to be programmed. </td></tr>
<tr><td class="paramname">src</td><td>Pointer to the source buffer of data that is to be programmed into the Program Once Field. </td></tr>
<tr><td class="paramname">lengthInBytes</td><td>The length, given in bytes (not words or long-words) to be programmed. Must be word-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="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32" title="Execute-in-ram function is not available. ">kStatus_FLASH_ExecuteInRamFunctionNotReady</a></td><td>Execute-in-ram function is not available. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bounds 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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3" title="The program/erase operation is requested to execute on protected areas. ">kStatus_FLASH_ProtectionViolation</a></td><td>The program/erase operation is requested to execute on protected areas. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during command execution. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga3921a84a4dc5f7f824d6816d17cbc55b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t FLASH_ReadOnce </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">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>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>dst</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 reads the flash memory with desired location 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>Pointer to 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 word-aligned. </td></tr>
<tr><td class="paramname">dst</td><td>Pointer to the destination buffer of data that is used to store data to be read. </td></tr>
<tr><td class="paramname">lengthInBytes</td><td>The length, given in bytes (not words or long-words) to be read. Must be word-aligned. </td></tr>
<tr><td class="paramname">option</td><td>The resource option which indicates which area should be read back.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a098148af25679d78133103cace7580ea" title="Parameter is not aligned with 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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32" title="Execute-in-ram function is not available. ">kStatus_FLASH_ExecuteInRamFunctionNotReady</a></td><td>Execute-in-ram function is not available. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bounds 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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3" title="The program/erase operation is requested to execute on protected areas. ">kStatus_FLASH_ProtectionViolation</a></td><td>The program/erase operation is requested to execute on protected areas. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during command execution.</td></tr>
</table>
</dd>
</dl>
<p>Read Program Once Field through parameters</p>
<p>This function reads the read once feild with given index and length</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>Pointer to storage for the driver runtime state. </td></tr>
<tr><td class="paramname">index</td><td>The index indicating the area of program once field to be read. </td></tr>
<tr><td class="paramname">dst</td><td>Pointer to the destination buffer of data that is used to store data to be read. </td></tr>
<tr><td class="paramname">lengthInBytes</td><td>The length, given in bytes (not words or long-words) to be programmed. Must be word-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="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32" title="Execute-in-ram function is not available. ">kStatus_FLASH_ExecuteInRamFunctionNotReady</a></td><td>Execute-in-ram function is not available. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bounds 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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3" title="The program/erase operation is requested to execute on protected areas. ">kStatus_FLASH_ProtectionViolation</a></td><td>The program/erase operation is requested to execute on protected areas. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during command execution. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gac228a2b25c575e489b47ac3c0652a50a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t FLASH_GetSecurityState </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">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="group__flash__driver.html#ga00b3eb2666116e617f6e45a10218f6a9">flash_security_state_t</a> *&#160;</td>
<td class="paramname"><em>state</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function retrieves the current Flash security status, including the security enabling state and the backdoor key enabling state.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>Pointer to storage for the driver runtime state. </td></tr>
<tr><td class="paramname">state</td><td>Pointer to the value returned for the current security status code:</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae54de3df1d9c73f19b1bd2ad713c2607"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t FLASH_SecurityBypass </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">flash_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>backdoorKey</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>If the MCU is in secured state, this function will unsecure the MCU by comparing the provided backdoor key with ones in the Flash Configuration Field.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>Pointer to storage for the driver runtime state. </td></tr>
<tr><td class="paramname">backdoorKey</td><td>Pointer to the user buffer containing the backdoor key.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32" title="Execute-in-ram function is not available. ">kStatus_FLASH_ExecuteInRamFunctionNotReady</a></td><td>Execute-in-ram function is not available. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bounds 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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3" title="The program/erase operation is requested to execute on protected areas. ">kStatus_FLASH_ProtectionViolation</a></td><td>The program/erase operation is requested to execute on protected areas. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during command execution. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga85a55ca1a9dcdd134989e6c722007db6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t FLASH_VerifyEraseAll </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">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="group__flash__driver.html#ga2105f5de393a06479e62141dab8dd3fc">flash_margin_value_t</a>&#160;</td>
<td class="paramname"><em>margin</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function will check to see if the flash have been 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>Pointer to storage for the driver runtime state. </td></tr>
<tr><td class="paramname">margin</td><td>Read margin choice</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32" title="Execute-in-ram function is not available. ">kStatus_FLASH_ExecuteInRamFunctionNotReady</a></td><td>Execute-in-ram function is not available. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bounds 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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3" title="The program/erase operation is requested to execute on protected areas. ">kStatus_FLASH_ProtectionViolation</a></td><td>The program/erase operation is requested to execute on protected areas. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during command execution. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaf88e46a975e29f113fd29798aeb5b66c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t FLASH_VerifyErase </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">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"><a class="el" href="group__flash__driver.html#ga2105f5de393a06479e62141dab8dd3fc">flash_margin_value_t</a>&#160;</td>
<td class="paramname"><em>margin</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function will check the appropriate number of flash sectors based on the desired start address and length to see if the flash have been 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>Pointer to 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 does not need to be sector aligned but must be word-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 word-aligned. </td></tr>
<tr><td class="paramname">margin</td><td>Read margin choice</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a098148af25679d78133103cace7580ea" title="Parameter is not aligned with 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="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32" title="Execute-in-ram function is not available. ">kStatus_FLASH_ExecuteInRamFunctionNotReady</a></td><td>Execute-in-ram function is not available. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bounds 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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3" title="The program/erase operation is requested to execute on protected areas. ">kStatus_FLASH_ProtectionViolation</a></td><td>The program/erase operation is requested to execute on protected areas. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during command execution. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga17820a03a93127cf52f6e7b5ed830c8b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t FLASH_VerifyProgram </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">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 uint32_t *&#160;</td>
<td class="paramname"><em>expectedData</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#ga2105f5de393a06479e62141dab8dd3fc">flash_margin_value_t</a>&#160;</td>
<td class="paramname"><em>margin</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 with 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>Pointer to 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. Must be word-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 word-aligned. </td></tr>
<tr><td class="paramname">expectedData</td><td>Pointer to the expected data that is to be verified against. </td></tr>
<tr><td class="paramname">margin</td><td>Read margin choice </td></tr>
<tr><td class="paramname">failedAddress</td><td>Pointer to returned failing address. </td></tr>
<tr><td class="paramname">failedData</td><td>Pointer to returned failing data. Some derivitives do not included 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="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a098148af25679d78133103cace7580ea" title="Parameter is not aligned with 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="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32" title="Execute-in-ram function is not available. ">kStatus_FLASH_ExecuteInRamFunctionNotReady</a></td><td>Execute-in-ram function is not available. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bounds 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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3" title="The program/erase operation is requested to execute on protected areas. ">kStatus_FLASH_ProtectionViolation</a></td><td>The program/erase operation is requested to execute on protected areas. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during command execution. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gab15b9e74df82e1ebc15c802c34eaeaab"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t FLASH_VerifyEraseAllExecuteOnlySegments </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">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="group__flash__driver.html#ga2105f5de393a06479e62141dab8dd3fc">flash_margin_value_t</a>&#160;</td>
<td class="paramname"><em>margin</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>Pointer to storage for the driver runtime state. </td></tr>
<tr><td class="paramname">margin</td><td>Read margin choice</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a87d744021836148574383ddcae44db32" title="Execute-in-ram function is not available. ">kStatus_FLASH_ExecuteInRamFunctionNotReady</a></td><td>Execute-in-ram function is not available. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab9e32512512c1ea1508bc2832f2bd528" title="Invalid instruction codes and out-of bounds 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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2ab406157d740ab0a07df1fc5d2b159fc3" title="The program/erase operation is requested to execute on protected areas. ">kStatus_FLASH_ProtectionViolation</a></td><td>The program/erase operation is requested to execute on protected areas. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during command execution. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga3c28d781a630bb833e469cd11342f03a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t FLASH_IsProtected </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">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"><a class="el" href="group__flash__driver.html#ga9378245c649eebea9451367d6b8f9ce2">flash_protection_state_t</a> *&#160;</td>
<td class="paramname"><em>protection_state</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function retrieves the current Flash protect status 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>Pointer to 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 checked. Must be word-aligned. </td></tr>
<tr><td class="paramname">lengthInBytes</td><td>The length, given in bytes (not words or long-words) to be checked. Must be word-aligned. </td></tr>
<tr><td class="paramname">protection_state</td><td>Pointer to the value returned for the current protection status code for the desired flash area.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a098148af25679d78133103cace7580ea" title="Parameter is not aligned with 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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2acc367a368270606eae83264f59b55211" title="Address is out of range. ">kStatus_FLASH_AddressError</a></td><td>Address is out of range. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga288c88008135094a458b0464aca7724a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t FLASH_IsExecuteOnly </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">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"><a class="el" href="group__flash__driver.html#gad38961e5692f64548dbf84d652b9ccde">flash_execute_only_access_state_t</a> *&#160;</td>
<td class="paramname"><em>access_state</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function retrieves the current Flash access status 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>Pointer to 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 checked. Must be word-aligned. </td></tr>
<tr><td class="paramname">lengthInBytes</td><td>The length, given in bytes (not words or long-words) to be checked. Must be word-aligned. </td></tr>
<tr><td class="paramname">access_state</td><td>Pointer to the value returned for the current access status code for the desired flash area.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a098148af25679d78133103cace7580ea" title="Parameter is not aligned with 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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2acc367a368270606eae83264f59b55211" title="Address is out of range. ">kStatus_FLASH_AddressError</a></td><td>Address is out of range. </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">status_t FLASH_GetProperty </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">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="group__flash__driver.html#ga7b6766fe08a63cf92a5e2a90dd6d010f">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>Pointer to 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>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="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a0ac435d9c4aa24ccb8ab983de1979780" title="Unknown property. ">kStatus_FLASH_UnknownProperty</a></td><td>unknown property tag </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga005996f64ae3b43e613ace953d613841"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t FLASH_PflashSetProtection </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">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>protectStatus</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>Pointer to storage for the driver runtime state. </td></tr>
<tr><td class="paramname">protectStatus</td><td>The expected protect status user wants to set to PFlash protection register. Each bit is corresponding to protection of 1/32 of the total PFlash. The least significant bit is corresponding to the lowest address area of P-Flash. The most significant bit is corresponding to the highest address area of PFlash. There are two possible cases as shown below: 0: this area is protected. 1: this area is unprotected.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </td></tr>
<tr><td class="paramname"><a class="el" href="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a42567b719be83f23619c498da80643ed" title="Run-time error during command execution. ">kStatus_FLASH_CommandFailure</a></td><td>Run-time error during command execution. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga381fa81510e9aa0f83e117dc9b8ebcef"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t FLASH_PflashGetProtection </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__flash__driver.html#structflash__config__t">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>protectStatus</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>Pointer to storage for the driver runtime state. </td></tr>
<tr><td class="paramname">protectStatus</td><td>Protect status returned by PFlash IP. Each bit is corresponding to protection of 1/32 of the total PFlash. The least significant bit is corresponding to the lowest address area of PFlash. The most significant bit is corresponding to the highest address area of PFlash. Thee are two possible cases as below: 0: this area is protected. 1: this area is unprotected.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname"><a class="el" href="group__flash__driver.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="group__flash__driver.html#ggaa4639fd4d4503c0dec9925f749d308b2a85c375f1213ec36dd2cf60e8d9851867" title="Invalid argument. ">kStatus_FLASH_InvalidArgument</a></td><td>Invalid argument is provided. </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>