Files
MicrochipFor32/Doc/docbook/bsp___s_d_8h_source.xml
2022-11-23 23:59:23 +08:00

190 lines
62 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_bsp___s_d_8h_source" xml:lang="zh">
<title>bsp_SD.h</title>
<indexterm><primary>D:/gitt/MicrochipFor32/bsp_Device/bsp_SD.h</primary></indexterm>
浏览该文件的文档.<programlisting linenumbering="unnumbered"><anchor xml:id="_bsp___s_d_8h_source_1l00001"/>00001 <emphasis role="comment">/*----------------------------------------------------------------------------------------------------</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00002"/>00002 <emphasis role="comment">&#32;#</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00003"/>00003 <emphasis role="comment">&#32;#&#32;&#32;Copyright&#32;(c)&#32;2022&#32;Yuankang&#32;Liang(XerolySkinner)</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00004"/>00004 <emphasis role="comment">&#32;#</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00005"/>00005 <emphasis role="comment">&#32;#&#32;&#32;本软件按原样提供,无任何明示或暗示</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00006"/>00006 <emphasis role="comment">&#32;#&#32;&#32;在任何情况下,作者都不承担任何损害赔偿责任</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00007"/>00007 <emphasis role="comment">&#32;#</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00008"/>00008 <emphasis role="comment">&#32;#&#32;&#32;使用的许可声明:</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00009"/>00009 <emphasis role="comment">&#32;#&#32;&#32;1.&#32;&#32;不得歪曲本软件的来源,你不能声称你编写了原始软件.</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00010"/>00010 <emphasis role="comment">&#32;#&#32;&#32;2.&#32;&#32;免费授予以任何目的,前提是版权声明出现在所有副本中.</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00011"/>00011 <emphasis role="comment">&#32;#&#32;&#32;&#32;&#32;&#32;&#32;并且版权声明和许可声明同时出现.</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00012"/>00012 <emphasis role="comment">&#32;#&#32;&#32;3.&#32;&#32;你有使用,复制,修改,分发,和销售本软件的许可.</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00013"/>00013 <emphasis role="comment">&#32;#&#32;&#32;4.&#32;&#32;如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的.</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00014"/>00014 <emphasis role="comment">&#32;#&#32;&#32;5.&#32;&#32;本通知不得从任何来源删除或更改.</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00015"/>00015 <emphasis role="comment">&#32;#</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00016"/>00016 <emphasis role="comment">&#32;#&#32;&#32;Yuankang&#32;Liang(XerolySkinner)</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00017"/>00017 <emphasis role="comment">&#32;#&#32;&#32;&#32;&#32;&#32;&#32;E-mail:zabbcccbbaz@163.com</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00018"/>00018 <emphasis role="comment">&#32;#&#32;&#32;&#32;&#32;&#32;&#32;QQ:2715099320</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00019"/>00019 <emphasis role="comment">&#32;#&#32;&#32;&#32;&#32;&#32;&#32;Mobile&#32;Phone:13005636215</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00020"/>00020 <emphasis role="comment">&#32;#</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00021"/>00021 <emphasis role="comment">&#32;#&#32;&#32;All&#32;rights&#32;reserved.</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00022"/>00022 <emphasis role="comment">&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00023"/>00023
<anchor xml:id="_bsp___s_d_8h_source_1l00034"/>00034 <emphasis role="preprocessor">#pragma&#32;once</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00035"/>00035 <emphasis role="preprocessor">#ifdef&#32;__cplusplus</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00037"/>00037 <emphasis role="comment">//----------------------------------------------------------------------------------------------------</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00038"/>00038 <emphasis role="comment">//&#32;&#32;头文件</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00039"/>00039 <emphasis role="comment">//&#32;&#32;</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00040"/>00040 <emphasis role="preprocessor">#include&#32;&quot;spi.h&quot;</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00041"/>00041 <emphasis role="preprocessor">#include&#32;&quot;<link linkend="_varint_8h">varint.h</link>&quot;</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00043"/>00043 <emphasis role="comment">//----------------------------------------------------------------------------------------------------</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00044"/>00044 <emphasis role="comment">//&#32;&#32;数据</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00045"/>00045 <emphasis role="comment">//&#32;&#32;</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00046"/>00046 <emphasis role="comment">//----------------------------------------------------------------------------------------------------</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00047"/>00047 <emphasis role="comment">//SD卡类型</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00048"/><link linkend="_bsp___s_d_8h_1a735563036dced0b7d6cc98f97ea4978b">00048</link> <emphasis role="preprocessor">#define&#32;ERR&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;0x00</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00049"/><link linkend="_bsp___s_d_8h_1ab5a7d5477e55758bde614bda3250a93c">00049</link> <emphasis role="preprocessor">#define&#32;MMC&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;0x01</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00050"/><link linkend="_bsp___s_d_8h_1ae21a9518b4dd62d2baeab430c89a657a">00050</link> <emphasis role="preprocessor">#define&#32;V1&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;0x02</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00051"/><link linkend="_bsp___s_d_8h_1a9173468f90b474471bfff59f8487cbc1">00051</link> <emphasis role="preprocessor">#define&#32;V2&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;0x04</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00052"/><link linkend="_bsp___s_d_8h_1ae52e14c1b95e5162f4fe492d9b1b0fec">00052</link> <emphasis role="preprocessor">#define&#32;V2HC&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;0x06</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00053"/><link linkend="_bsp___s_d_8h_1adc81a065700d3af56b6fb631585e3641">00053</link> <emphasis role="preprocessor">#define&#32;DUMMY_BYTE&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;0xFF&#32;</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00054"/><link linkend="_bsp___s_d_8h_1a5bda0c70032a9b8625ae5a3c55d21c38">00054</link> <emphasis role="preprocessor">#define&#32;MSD_BLOCKSIZE&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;512</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00055"/>00055 <emphasis role="comment">//----------------------------------------------------------------------------------------------------</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00056"/>00056 <emphasis role="comment">//CMD定义</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00057"/><link linkend="_bsp___s_d_8h_1a938c1466755f12fb04ac0d1b775584d1">00057</link> <emphasis role="preprocessor">#define&#32;CMD0&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;0&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">//卡复位</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00058"/><link linkend="_bsp___s_d_8h_1aca9979f299fa78c1128d778084478673">00058</link> <emphasis role="preprocessor">#define&#32;CMD1&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;1</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00059"/><link linkend="_bsp___s_d_8h_1ac75b3e0ad1fb013ea946fb49bbe65668">00059</link> <emphasis role="preprocessor">#define&#32;CMD8&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;8&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">//命令8&#32;SEND_IF_COND</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00060"/><link linkend="_bsp___s_d_8h_1a1fac6a251d7e7dc204d21639bf521459">00060</link> <emphasis role="preprocessor">#define&#32;CMD9&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;9&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">//命令9&#32;读CSD数据</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00061"/><link linkend="_bsp___s_d_8h_1ae7b800ed8e7bd52e6f570a5ce72b8104">00061</link> <emphasis role="preprocessor">#define&#32;CMD10&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;10&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">//命令10读CID数据</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00062"/><link linkend="_bsp___s_d_8h_1a8d6283c9b060afbaa0e6d1ff7e5ea7b8">00062</link> <emphasis role="preprocessor">#define&#32;CMD12&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;12&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">//命令12停止数据传输</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00063"/><link linkend="_bsp___s_d_8h_1aaeab261b94f2031ba41a1d4d857c3541">00063</link> <emphasis role="preprocessor">#define&#32;CMD16&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;16&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">//命令16设置SectorSize&#32;应返回0x00</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00064"/><link linkend="_bsp___s_d_8h_1a6bbfe7dc16a19b7f40efcf554b5666ad">00064</link> <emphasis role="preprocessor">#define&#32;CMD17&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;17&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">//命令17读sector</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00065"/><link linkend="_bsp___s_d_8h_1a3d32c27a6be061b865ba539127278f14">00065</link> <emphasis role="preprocessor">#define&#32;CMD18&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;18&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">//命令18读Multi&#32;sector</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00066"/><link linkend="_bsp___s_d_8h_1a14506e981f38b6177bc36f72c2ca18b1">00066</link> <emphasis role="preprocessor">#define&#32;CMD23&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;23&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">//命令23设置多sector写入前预先擦除N个block</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00067"/><link linkend="_bsp___s_d_8h_1a252300302c6f7960df547a7f5c25be85">00067</link> <emphasis role="preprocessor">#define&#32;CMD24&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;24&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">//命令24写sector</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00068"/><link linkend="_bsp___s_d_8h_1aee2c673fba987178f4642531fdeefe9e">00068</link> <emphasis role="preprocessor">#define&#32;CMD25&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;25&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">//命令25写Multi&#32;sector</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00069"/><link linkend="_bsp___s_d_8h_1a3ca1450d0ac55d2705aab03537bf2865">00069</link> <emphasis role="preprocessor">#define&#32;CMD41&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;41&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">//命令41应返回0x00</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00070"/><link linkend="_bsp___s_d_8h_1a78289a7a85ffcfddd626694105dc0780">00070</link> <emphasis role="preprocessor">#define&#32;CMD55&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;55&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">//命令55应返回0x01</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00071"/><link linkend="_bsp___s_d_8h_1aa7a26b2cf17e1ff5967820a1fa41a7aa">00071</link> <emphasis role="preprocessor">#define&#32;CMD58&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;58&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">//命令58读OCR信息</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00072"/><link linkend="_bsp___s_d_8h_1aa8ea570644ddff6d18b63e4abbf39e0d">00072</link> <emphasis role="preprocessor">#define&#32;CMD59&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;59&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">//命令59使能/禁止CRC应返回0x00</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00073"/>00073 <emphasis role="comment">//----------------------------------------------------------------------------------------------------</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00074"/>00074 <emphasis role="comment">//数据写入回应字意义</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00075"/><link linkend="_bsp___s_d_8h_1ab953703883503eb3ce420f096b1621d0">00075</link> <emphasis role="preprocessor">#define&#32;MSD_DATA_OK&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;0x05</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00076"/><link linkend="_bsp___s_d_8h_1a7ba9783b76cf956a82211e058071f984">00076</link> <emphasis role="preprocessor">#define&#32;MSD_DATA_CRC_ERROR&#32;&#32;&#32;&#32;&#32;&#32;0x0B</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00077"/><link linkend="_bsp___s_d_8h_1a6a6a48e9e40eda37b834b23d5320dfdf">00077</link> <emphasis role="preprocessor">#define&#32;MSD_DATA_WRITE_ERROR&#32;&#32;&#32;&#32;0x0D</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00078"/><link linkend="_bsp___s_d_8h_1ad68bbaecb6931999de71e8a6b703574f">00078</link> <emphasis role="preprocessor">#define&#32;MSD_DATA_OTHER_ERROR&#32;&#32;&#32;&#32;0xFF</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00079"/>00079 <emphasis role="comment">//SD卡回应标记字</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00080"/><link linkend="_bsp___s_d_8h_1afa5629413ae6bf82d3f1182df4cea0cf">00080</link> <emphasis role="preprocessor">#define&#32;MSD_RESPONSE_NO_ERROR&#32;&#32;&#32;0x00</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00081"/><link linkend="_bsp___s_d_8h_1a70bdd15776b2a749ae184132d2a5da28">00081</link> <emphasis role="preprocessor">#define&#32;MSD_IN_IDLE_STATE&#32;&#32;&#32;&#32;&#32;&#32;&#32;0x01</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00082"/><link linkend="_bsp___s_d_8h_1ad0ce329dc56b89327987e754ab0e93b8">00082</link> <emphasis role="preprocessor">#define&#32;MSD_ERASE_RESET&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;0x02</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00083"/><link linkend="_bsp___s_d_8h_1a80ede800869bbe11125170faf44ad94f">00083</link> <emphasis role="preprocessor">#define&#32;MSD_ILLEGAL_COMMAND&#32;&#32;&#32;&#32;&#32;0x04</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00084"/><link linkend="_bsp___s_d_8h_1a8c6cecbb8cb9921c38776a83ed4ad343">00084</link> <emphasis role="preprocessor">#define&#32;MSD_COM_CRC_ERROR&#32;&#32;&#32;&#32;&#32;&#32;&#32;0x08</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00085"/><link linkend="_bsp___s_d_8h_1a8c7923c819c9ba27f65a380f7360f429">00085</link> <emphasis role="preprocessor">#define&#32;MSD_ERASE_SEQUENCE_ERROR&#32;0x10</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00086"/><link linkend="_bsp___s_d_8h_1a211793a480ef462b7a1c55d6d36a8c25">00086</link> <emphasis role="preprocessor">#define&#32;MSD_ADDRESS_ERROR&#32;&#32;&#32;&#32;&#32;&#32;&#32;0x20</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00087"/><link linkend="_bsp___s_d_8h_1ae3555061fbbb3bd2becaa0d1bdf6c825">00087</link> <emphasis role="preprocessor">#define&#32;MSD_PARAMETER_ERROR&#32;&#32;&#32;&#32;&#32;0x40</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00088"/><link linkend="_bsp___s_d_8h_1ab5e7857b07a45a8828a235c55d3873ff">00088</link> <emphasis role="preprocessor">#define&#32;MSD_RESPONSE_FAILURE&#32;&#32;&#32;&#32;0xFF</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00089"/>00089 <emphasis role="comment">//----------------------------------------------------------------------------------------------------</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00090"/><link linkend="_bsp___s_d_8h_1a81ab6678d52bfaa2c2dc9048f5215cf9">00090</link> <emphasis role="keyword">enum</emphasis>&#32;<link linkend="_bsp___s_d_8h_1a81ab6678d52bfaa2c2dc9048f5215cf9">_CD_HOLD</link>&#32;{
<anchor xml:id="_bsp___s_d_8h_source_1l00091"/><link linkend="_bsp___s_d_8h_1a81ab6678d52bfaa2c2dc9048f5215cf9a9cfa27b414cab750fb14ec07cdf5cf6a">00091</link> &#32;&#32;&#32;&#32;<link linkend="_bsp___s_d_8h_1a81ab6678d52bfaa2c2dc9048f5215cf9a9cfa27b414cab750fb14ec07cdf5cf6a">HOLD</link>&#32;=&#32;0,&#32;
<anchor xml:id="_bsp___s_d_8h_source_1l00092"/><link linkend="_bsp___s_d_8h_1a81ab6678d52bfaa2c2dc9048f5215cf9ad590443978dc58d64aed5001f56efcdf">00092</link> &#32;&#32;&#32;&#32;<link linkend="_bsp___s_d_8h_1a81ab6678d52bfaa2c2dc9048f5215cf9ad590443978dc58d64aed5001f56efcdf">RELEASE</link>&#32;=&#32;1,&#32;
<anchor xml:id="_bsp___s_d_8h_source_1l00093"/>00093 &#32;&#32;&#32;&#32;};
<anchor xml:id="_bsp___s_d_8h_source_1l00094"/>00094 <emphasis role="comment">//----------------------------------------------------------------------------------------------------</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00095"/><link linkend="_struct_m_s_d___c_s_d">00095</link> <emphasis role="keyword">typedef</emphasis>&#32;<emphasis role="keyword">struct&#32;</emphasis>{&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Card&#32;Specific&#32;Data&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00096"/><link linkend="_struct_m_s_d___c_s_d_1a53c6d82426462a5f31a0e07bc2014d97">00096</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a53c6d82426462a5f31a0e07bc2014d97">CSDStruct</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;CSD&#32;structure&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00097"/><link linkend="_struct_m_s_d___c_s_d_1a8709246fbcaa2984e8752e5d028a25e1">00097</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a8709246fbcaa2984e8752e5d028a25e1">SysSpecVersion</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;System&#32;specification&#32;version&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00098"/><link linkend="_struct_m_s_d___c_s_d_1a43d9f48b7a10b9b16700cc4df7f944c0">00098</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a43d9f48b7a10b9b16700cc4df7f944c0">Reserved1</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Reserved&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00099"/><link linkend="_struct_m_s_d___c_s_d_1ac80ef2c5f8eedf6e361b9d48da66d98d">00099</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1ac80ef2c5f8eedf6e361b9d48da66d98d">TAAC</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Data&#32;read&#32;access-time&#32;1&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00100"/><link linkend="_struct_m_s_d___c_s_d_1ae9fdc21394cb38fc96de03821b5b1f5b">00100</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1ae9fdc21394cb38fc96de03821b5b1f5b">NSAC</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Data&#32;read&#32;access-time&#32;2&#32;in&#32;CLK&#32;cycles&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00101"/><link linkend="_struct_m_s_d___c_s_d_1ae4fe7f59ec2c0fec2d5c5edc912de487">00101</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1ae4fe7f59ec2c0fec2d5c5edc912de487">MaxBusClkFrec</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Max.&#32;bus&#32;clock&#32;frequency&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00102"/><link linkend="_struct_m_s_d___c_s_d_1a235ebfcf7116a28eb8f7e2348b46c279">00102</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1ace9d960e74685e2cd84b36132dbbf8aa">u16</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a235ebfcf7116a28eb8f7e2348b46c279">CardComdClasses</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Card&#32;command&#32;classes&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00103"/><link linkend="_struct_m_s_d___c_s_d_1a0d503ea30e3553e3dbf1d259c1835bca">00103</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a0d503ea30e3553e3dbf1d259c1835bca">RdBlockLen</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Max.&#32;read&#32;data&#32;block&#32;length&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00104"/><link linkend="_struct_m_s_d___c_s_d_1a7e302d0f797f25a53205bf683fcb9315">00104</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a7e302d0f797f25a53205bf683fcb9315">PartBlockRead</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Partial&#32;blocks&#32;for&#32;read&#32;allowed&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00105"/><link linkend="_struct_m_s_d___c_s_d_1aaf61be1914d24eeef107b78d57f96f66">00105</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1aaf61be1914d24eeef107b78d57f96f66">WrBlockMisalign</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Write&#32;block&#32;misalignment&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00106"/><link linkend="_struct_m_s_d___c_s_d_1ad4c2ce16da22ad02424466d1b42d04b0">00106</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1ad4c2ce16da22ad02424466d1b42d04b0">RdBlockMisalign</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Read&#32;block&#32;misalignment&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00107"/><link linkend="_struct_m_s_d___c_s_d_1a6010a523c29470b3fca2a179608bb165">00107</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a6010a523c29470b3fca2a179608bb165">DSRImpl</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;DSR&#32;implemented&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00108"/><link linkend="_struct_m_s_d___c_s_d_1af46b7c72145239d75dcf08e97a8015cb">00108</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1af46b7c72145239d75dcf08e97a8015cb">Reserved2</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Reserved&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00109"/><link linkend="_struct_m_s_d___c_s_d_1ab2341b019f101f621817ab7f13f85321">00109</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1afaa62991928fb9fb18ff0db62a040aba">u32</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1ab2341b019f101f621817ab7f13f85321">DeviceSize</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Device&#32;Size&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00110"/><link linkend="_struct_m_s_d___c_s_d_1a5f028ae76ae390e7efc7581863f86fa4">00110</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a5f028ae76ae390e7efc7581863f86fa4">MaxRdCurrentVDDMin</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Max.&#32;read&#32;current&#32;@&#32;VDD&#32;min&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00111"/><link linkend="_struct_m_s_d___c_s_d_1a81dee06837a4a641a428af5271ce7881">00111</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a81dee06837a4a641a428af5271ce7881">MaxRdCurrentVDDMax</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Max.&#32;read&#32;current&#32;@&#32;VDD&#32;max&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00112"/><link linkend="_struct_m_s_d___c_s_d_1a4312d08d19360f8cda0fdcefea8c58a8">00112</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a4312d08d19360f8cda0fdcefea8c58a8">MaxWrCurrentVDDMin</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Max.&#32;write&#32;current&#32;@&#32;VDD&#32;min&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00113"/><link linkend="_struct_m_s_d___c_s_d_1a5a4157c022770f5f2a22da59f1287ec1">00113</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a5a4157c022770f5f2a22da59f1287ec1">MaxWrCurrentVDDMax</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Max.&#32;write&#32;current&#32;@&#32;VDD&#32;max&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00114"/><link linkend="_struct_m_s_d___c_s_d_1a021add43b09781e1c4feb5a911bab718">00114</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a021add43b09781e1c4feb5a911bab718">DeviceSizeMul</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Device&#32;size&#32;multiplier&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00115"/><link linkend="_struct_m_s_d___c_s_d_1a3217bd2b49b77943bcb3e5a6f5f0e419">00115</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a3217bd2b49b77943bcb3e5a6f5f0e419">EraseGrSize</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Erase&#32;group&#32;size&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00116"/><link linkend="_struct_m_s_d___c_s_d_1a6d4b83a1a42edb0e08f674fa6e611d28">00116</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a6d4b83a1a42edb0e08f674fa6e611d28">EraseGrMul</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Erase&#32;group&#32;size&#32;multiplier&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00117"/><link linkend="_struct_m_s_d___c_s_d_1aa21f77c612167167e40003b6d3784689">00117</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1aa21f77c612167167e40003b6d3784689">WrProtectGrSize</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Write&#32;protect&#32;group&#32;size&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00118"/><link linkend="_struct_m_s_d___c_s_d_1a0d11fc6f8c1e51d1b63887603eee8915">00118</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a0d11fc6f8c1e51d1b63887603eee8915">WrProtectGrEnable</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Write&#32;protect&#32;group&#32;enable&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00119"/><link linkend="_struct_m_s_d___c_s_d_1a1ee9e5144b15487f92f6d9ce59835428">00119</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a1ee9e5144b15487f92f6d9ce59835428">ManDeflECC</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Manufacturer&#32;default&#32;ECC&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00120"/><link linkend="_struct_m_s_d___c_s_d_1a3ededd192a17234569a584cbd72b12ae">00120</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a3ededd192a17234569a584cbd72b12ae">WrSpeedFact</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Write&#32;speed&#32;factor&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00121"/><link linkend="_struct_m_s_d___c_s_d_1a0dcba500cb60f6ce8d95864ae2eaa307">00121</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a0dcba500cb60f6ce8d95864ae2eaa307">MaxWrBlockLen</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Max.&#32;write&#32;data&#32;block&#32;length&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00122"/><link linkend="_struct_m_s_d___c_s_d_1a3c32bff0de0b6cba1f9bd3205159e6e4">00122</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a3c32bff0de0b6cba1f9bd3205159e6e4">WriteBlockPaPartial</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Partial&#32;blocks&#32;for&#32;write&#32;allowed&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00123"/><link linkend="_struct_m_s_d___c_s_d_1a83b44a54e8cefcfffdfb5a744d0bf3d5">00123</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a83b44a54e8cefcfffdfb5a744d0bf3d5">Reserved3</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Reserded&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00124"/><link linkend="_struct_m_s_d___c_s_d_1aaadb152d2dce1323e589580ef0099fec">00124</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1aaadb152d2dce1323e589580ef0099fec">ContentProtectAppli</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Content&#32;protection&#32;application&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00125"/><link linkend="_struct_m_s_d___c_s_d_1a08f8247c46de7ef2b0677886470d7792">00125</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a08f8247c46de7ef2b0677886470d7792">FileFormatGrouop</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;File&#32;format&#32;group&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00126"/><link linkend="_struct_m_s_d___c_s_d_1a17f58dd1f98e6e6376efe142f352cb59">00126</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a17f58dd1f98e6e6376efe142f352cb59">CopyFlag</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Copy&#32;flag&#32;(OTP)&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00127"/><link linkend="_struct_m_s_d___c_s_d_1a150bf25ff42008d58320a6b7e531c9ab">00127</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a150bf25ff42008d58320a6b7e531c9ab">PermWrProtect</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Permanent&#32;write&#32;protection&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00128"/><link linkend="_struct_m_s_d___c_s_d_1a3f2c48bb307e7779173e3563bbd5038f">00128</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a3f2c48bb307e7779173e3563bbd5038f">TempWrProtect</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Temporary&#32;write&#32;protection&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00129"/><link linkend="_struct_m_s_d___c_s_d_1ac3510e157155d4b9d9f67591b1cb0c8e">00129</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1ac3510e157155d4b9d9f67591b1cb0c8e">FileFormat</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;File&#32;Format&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00130"/><link linkend="_struct_m_s_d___c_s_d_1a1e153d660ffe4bbafa596d4b0b8c2906">00130</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a1e153d660ffe4bbafa596d4b0b8c2906">ECC</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;ECC&#32;code&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00131"/><link linkend="_struct_m_s_d___c_s_d_1a81e9f99cdd87dd2e0305b3b191aa5226">00131</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a81e9f99cdd87dd2e0305b3b191aa5226">CSD_CRC</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;CSD&#32;CRC&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00132"/><link linkend="_struct_m_s_d___c_s_d_1a36b124f6ffc0716dc0dc93c407b975d1">00132</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d_1a36b124f6ffc0716dc0dc93c407b975d1">Reserved4</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;always&#32;1*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00133"/>00133 }&#32;<link linkend="_struct_m_s_d___c_s_d">MSD_CSD</link>;
<anchor xml:id="_bsp___s_d_8h_source_1l00134"/>00134
<anchor xml:id="_bsp___s_d_8h_source_1l00135"/>00135 <emphasis role="comment">//----------------------------------------------------------------------------------------------------</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00136"/><link linkend="_struct_m_s_d___c_i_d">00136</link> <emphasis role="keyword">typedef</emphasis>&#32;<emphasis role="keyword">struct&#32;</emphasis>{&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*Card&#32;Identification&#32;Data*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00137"/><link linkend="_struct_m_s_d___c_i_d_1a5ae9ad5d65182a34e20b87fa2752010e">00137</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_i_d_1a5ae9ad5d65182a34e20b87fa2752010e">ManufacturerID</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;ManufacturerID&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00138"/><link linkend="_struct_m_s_d___c_i_d_1acd04644e46f7ceca82bbe9bdc80f1d53">00138</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1ace9d960e74685e2cd84b36132dbbf8aa">u16</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_i_d_1acd04644e46f7ceca82bbe9bdc80f1d53">OEM_AppliID</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;OEM/Application&#32;ID&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00139"/><link linkend="_struct_m_s_d___c_i_d_1ab7e359a09fecf1fa2d1b18e708dcc292">00139</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1afaa62991928fb9fb18ff0db62a040aba">u32</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_i_d_1ab7e359a09fecf1fa2d1b18e708dcc292">ProdName1</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Product&#32;Name&#32;part1&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00140"/><link linkend="_struct_m_s_d___c_i_d_1ad0d7606f38a0140075647fb3f66614ea">00140</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_i_d_1ad0d7606f38a0140075647fb3f66614ea">ProdName2</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Product&#32;Name&#32;part2*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00141"/><link linkend="_struct_m_s_d___c_i_d_1acd9fbacd30fdff0eef7d885ad4ec438b">00141</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_i_d_1acd9fbacd30fdff0eef7d885ad4ec438b">ProdRev</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Product&#32;Revision&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00142"/><link linkend="_struct_m_s_d___c_i_d_1a0c5c88d258f73f17a496f3b92d9cfd5c">00142</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1afaa62991928fb9fb18ff0db62a040aba">u32</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_i_d_1a0c5c88d258f73f17a496f3b92d9cfd5c">ProdSN</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Product&#32;Serial&#32;Number&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00143"/><link linkend="_struct_m_s_d___c_i_d_1a1be2e4d82c95f2d158ce5f5157a7fd5b">00143</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_i_d_1a1be2e4d82c95f2d158ce5f5157a7fd5b">Reserved1</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Reserved1&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00144"/><link linkend="_struct_m_s_d___c_i_d_1a55015d75002e50ff4f23cd19c9b5c90a">00144</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1ace9d960e74685e2cd84b36132dbbf8aa">u16</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_i_d_1a55015d75002e50ff4f23cd19c9b5c90a">ManufactDate</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Manufacturing&#32;Date&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00145"/><link linkend="_struct_m_s_d___c_i_d_1a61fe89c386eb7bf7b8e2ba44545168de">00145</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_i_d_1a61fe89c386eb7bf7b8e2ba44545168de">CID_CRC</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;CID&#32;CRC&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00146"/><link linkend="_struct_m_s_d___c_i_d_1aac8e73e305ea1ff29ae195a6c0a63e05">00146</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_i_d_1aac8e73e305ea1ff29ae195a6c0a63e05">Reserved2</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;always&#32;1&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00147"/>00147 }&#32;<link linkend="_struct_m_s_d___c_i_d">MSD_CID</link>;
<anchor xml:id="_bsp___s_d_8h_source_1l00148"/>00148 <emphasis role="comment">//----------------------------------------------------------------------------------------------------</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00149"/><link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o">00149</link> <emphasis role="keyword">typedef</emphasis>&#32;<emphasis role="keyword">struct&#32;</emphasis>{
<anchor xml:id="_bsp___s_d_8h_source_1l00150"/><link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o_1a9893f18007a0897aa45869e703f4cc2a">00150</link> &#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_s_d">MSD_CSD</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o_1a9893f18007a0897aa45869e703f4cc2a">CSD</link>;
<anchor xml:id="_bsp___s_d_8h_source_1l00151"/><link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o_1ab267c45d70fa28f9ff17829fa8753509">00151</link> &#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_i_d">MSD_CID</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o_1ab267c45d70fa28f9ff17829fa8753509">CID</link>;
<anchor xml:id="_bsp___s_d_8h_source_1l00152"/><link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o_1a4e5da8ba91229ac3ccb2d3f11f1ab4bf">00152</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1afaa62991928fb9fb18ff0db62a040aba">u32</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o_1a4e5da8ba91229ac3ccb2d3f11f1ab4bf">Capacity</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Card&#32;Capacity&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00153"/><link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o_1aadaf986217b3c403be1cc4a2fd2fd148">00153</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1afaa62991928fb9fb18ff0db62a040aba">u32</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o_1aadaf986217b3c403be1cc4a2fd2fd148">BlockSize</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Card&#32;Block&#32;Size&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00154"/><link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o_1aee98628e11a144ac136f22aefcab744a">00154</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1ace9d960e74685e2cd84b36132dbbf8aa">u16</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o_1aee98628e11a144ac136f22aefcab744a">RCA</link>;
<anchor xml:id="_bsp___s_d_8h_source_1l00155"/><link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o_1a8f29efd96df6abb8cd6353787eebca04">00155</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o_1a8f29efd96df6abb8cd6353787eebca04">CardType</link>;
<anchor xml:id="_bsp___s_d_8h_source_1l00156"/><link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o_1a1c923e804e2658280f90cdbfaefe1568">00156</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1afaa62991928fb9fb18ff0db62a040aba">u32</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o_1a1c923e804e2658280f90cdbfaefe1568">SpaceTotal</link>;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Total&#32;space&#32;size&#32;in&#32;file&#32;system&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00157"/><link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o_1a6d9423ab31cd74088dc7b8aadaa20e24">00157</link> &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1afaa62991928fb9fb18ff0db62a040aba">u32</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o_1a6d9423ab31cd74088dc7b8aadaa20e24">SpaceFree</link>;
<anchor xml:id="_bsp___s_d_8h_source_1l00158"/>00158 }&#32;<emphasis role="comment">/*&#32;Free&#32;space&#32;size&#32;in&#32;file&#32;system&#32;*/</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00159"/>00159 <emphasis role="comment">//----------------------------------------------------------------------------------------------------</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00160"/><link linkend="_bsp___s_d_8h_1a64c818be5c771b5bcfd5cbd998c0f9c6">00160</link> <link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o">MSD_CARDINFO</link>,&#32;*<link linkend="_bsp___s_d_8h_1a64c818be5c771b5bcfd5cbd998c0f9c6">PMSD_CARDINFO</link>;
<anchor xml:id="_bsp___s_d_8h_source_1l00161"/>00161 <emphasis role="keyword">extern</emphasis>&#32;<link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o">MSD_CARDINFO</link>&#32;<link linkend="_bsp___s_d_8h_1a2c85a6a257358283b46ba829ae0c2dba">SD0_CardInfo</link>;
<anchor xml:id="_bsp___s_d_8h_source_1l00163"/>00163 <emphasis role="comment">//----------------------------------------------------------------------------------------------------</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00164"/>00164 <emphasis role="comment">//&#32;&#32;类目</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00165"/>00165 <emphasis role="comment">//&#32;&#32;</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00169"/><link linkend="_classbsp___s_d">00169</link> <emphasis role="comment"></emphasis><emphasis role="keyword">class&#32;</emphasis><link linkend="_classbsp___s_d">bsp_SD</link>{
<anchor xml:id="_bsp___s_d_8h_source_1l00170"/>00170 &#32;&#32;&#32;&#32;<emphasis role="keyword">public</emphasis>:
<anchor xml:id="_bsp___s_d_8h_source_1l00171"/>00171 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d">bsp_SD</link>(SPI_HandleTypeDef&#32;*<link linkend="_classbsp___s_d_1a227c7eb7a28e89d6adfda085a4217992">hspi</link>,GPIO_TypeDef&#32;*<link linkend="_classbsp___s_d_1ad7788d2e62152a2fb1a6b307fa902180">GPIOx_CS</link>,uint16_t&#32;<link linkend="_classbsp___s_d_1a4525b5c0f62e39af1c9adb9a9c22239f">GPIO_Pin_CS</link>);
<anchor xml:id="_bsp___s_d_8h_source_1l00172"/>00172 &#32;&#32;&#32;&#32;<emphasis role="keyword">public</emphasis>:
<anchor xml:id="_bsp___s_d_8h_source_1l00173"/>00173 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1a1e0a3f09367627bcafc8efaaeb90b066">SD_init</link>(<emphasis role="keywordtype">void</emphasis>);
<anchor xml:id="_bsp___s_d_8h_source_1l00174"/>00174 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1a96f32b50ec777acc0dd819150cd28937">SD_ReadDisk</link>(<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;*&#32;buf,&#32;<link linkend="_varint_8h_1afaa62991928fb9fb18ff0db62a040aba">u32</link>&#32;sector,&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;cnt);
<anchor xml:id="_bsp___s_d_8h_source_1l00175"/>00175 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1af203b65e00206d38ef14640f7b7242b6">SD_WriteDisk</link>(<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;*&#32;buf,&#32;<link linkend="_varint_8h_1afaa62991928fb9fb18ff0db62a040aba">u32</link>&#32;sector,&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;cnt);
<anchor xml:id="_bsp___s_d_8h_source_1l00176"/>00176 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_varint_8h_1afaa62991928fb9fb18ff0db62a040aba">u32</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1a600cc886dc5da6d34f75d0bf226c1b92">SD_GetSectorCount</link>(<emphasis role="keywordtype">void</emphasis>);
<anchor xml:id="_bsp___s_d_8h_source_1l00177"/>00177 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1a164f0bb03133464f2da485f362a52718">offsetWrite</link>(<link linkend="_varint_8h_1a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</link>&#32;offset,<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>*&#32;dat,<link linkend="_varint_8h_1a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</link>&#32;datlen);
<anchor xml:id="_bsp___s_d_8h_source_1l00178"/>00178 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1a1c78e6f5a72f3bdec600a52331dd4d20">offsetRead</link>(<link linkend="_varint_8h_1a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</link>&#32;offset,<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>*&#32;dat,<link linkend="_varint_8h_1a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</link>&#32;datlen);
<anchor xml:id="_bsp___s_d_8h_source_1l00179"/>00179 &#32;&#32;&#32;&#32;<emphasis role="keyword">private</emphasis>:
<anchor xml:id="_bsp___s_d_8h_source_1l00180"/><link linkend="_classbsp___s_d_1a227c7eb7a28e89d6adfda085a4217992">00180</link> &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;SPI_HandleTypeDef&#32;&#32;&#32;*<link linkend="_classbsp___s_d_1a227c7eb7a28e89d6adfda085a4217992">hspi</link>;
<anchor xml:id="_bsp___s_d_8h_source_1l00181"/><link linkend="_classbsp___s_d_1ad7788d2e62152a2fb1a6b307fa902180">00181</link> &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;GPIO_TypeDef&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*<link linkend="_classbsp___s_d_1ad7788d2e62152a2fb1a6b307fa902180">GPIOx_CS</link>;
<anchor xml:id="_bsp___s_d_8h_source_1l00182"/><link linkend="_classbsp___s_d_1a4525b5c0f62e39af1c9adb9a9c22239f">00182</link> &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;uint16_t&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1a4525b5c0f62e39af1c9adb9a9c22239f">GPIO_Pin_CS</link>;
<anchor xml:id="_bsp___s_d_8h_source_1l00183"/>00183
<anchor xml:id="_bsp___s_d_8h_source_1l00184"/><link linkend="_classbsp___s_d_1a6c68fa82294f18968a92719931cff5fa">00184</link> &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1a6c68fa82294f18968a92719931cff5fa">DFF</link>;
<anchor xml:id="_bsp___s_d_8h_source_1l00185"/><link linkend="_classbsp___s_d_1a2350601b90ad75bd434094a9c31475c4">00185</link> &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1a2350601b90ad75bd434094a9c31475c4">SD_TYPE</link>;
<anchor xml:id="_bsp___s_d_8h_source_1l00186"/><link linkend="_classbsp___s_d_1aab1487286ac43dc9110e65b52c850de4">00186</link> &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o">MSD_CARDINFO</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1aab1487286ac43dc9110e65b52c850de4">SD0_CardInfo</link>;
<anchor xml:id="_bsp___s_d_8h_source_1l00187"/>00187 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;
<anchor xml:id="_bsp___s_d_8h_source_1l00188"/>00188 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordtype">void</emphasis>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1a3250f411819ed57543b0326d13faddc6">SD_CS</link>(<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;p);
<anchor xml:id="_bsp___s_d_8h_source_1l00189"/>00189 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1a25bc03ff69d0c3c9a73153c71c84a8b0">SD_GETCID</link>(<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;*&#32;cid_data);
<anchor xml:id="_bsp___s_d_8h_source_1l00190"/>00190 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1ad0426f6a4b550e60a926c95724d81665">SD_GETCSD</link>(<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;*&#32;csd_data);
<anchor xml:id="_bsp___s_d_8h_source_1l00191"/>00191 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordtype">int</emphasis>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1aaf2d27cc9275f3ffa71556124f143d12">MSD0_GetCardInfo</link>(<link linkend="_struct_m_s_d___c_a_r_d_i_n_f_o">PMSD_CARDINFO</link>&#32;<link linkend="_classbsp___s_d_1aab1487286ac43dc9110e65b52c850de4">SD0_CardInfo</link>);
<anchor xml:id="_bsp___s_d_8h_source_1l00192"/>00192 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1a242ec4ccd88203b6691cf4ae1e77fdfe">SD_ReceiveData</link>(<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;*&#32;data,&#32;<link linkend="_varint_8h_1ace9d960e74685e2cd84b36132dbbf8aa">u16</link>&#32;len);
<anchor xml:id="_bsp___s_d_8h_source_1l00193"/>00193 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1a2df843979bb4c764422a37b255c184ea">SD_SendBlock</link>(<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;*&#32;buf,&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;cmd);
<anchor xml:id="_bsp___s_d_8h_source_1l00194"/>00194 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_varint_8h_1afaa62991928fb9fb18ff0db62a040aba">u32</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1ab799d7d8ebaf4c304bf62722ba10ba37">SD_sendcmd</link>(<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;cmd,&#32;<link linkend="_varint_8h_1afaa62991928fb9fb18ff0db62a040aba">u32</link>&#32;arg,&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;crc);
<anchor xml:id="_bsp___s_d_8h_source_1l00195"/>00195
<anchor xml:id="_bsp___s_d_8h_source_1l00196"/>00196 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordtype">void</emphasis>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1a5ed95b95b141ee21d83ca70c1b06a31a">SPI_setspeed</link>(<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;speed);
<anchor xml:id="_bsp___s_d_8h_source_1l00197"/>00197 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_classbsp___s_d_1a36d1110bcbe2404ddd5796dc078ce1f5">spi_readwrite</link>(<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;Txdata);
<anchor xml:id="_bsp___s_d_8h_source_1l00198"/>00198 &#32;&#32;&#32;&#32;};
<anchor xml:id="_bsp___s_d_8h_source_1l00200"/>00200 <emphasis role="preprocessor">#endif</emphasis>
<anchor xml:id="_bsp___s_d_8h_source_1l00201"/>00201
</programlisting></section>