/**
  ******************************************************************************
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * Copyright (C) 2021 Shanghai Eastsoft Microelectronics Co., Ltd. ALL rights reserved.
  *******************************************************************************
  */

<--------------------------------------------------------------------------------
Version history:
--------------------------------------------------------------------------------->
2023-04-17       V1.0.0      AE TEAM

<--------------------------------------------------------------------------------
Demo introduction:
--------------------------------------------------------------------------------->
本示例功能：USB主机，可识别USB MSC设备。MSC设备枚举成功后，会被挂载到fatfs文件系统中，默认挂载到路径为 0:/。可用shell命令对MSC 设备进行操作。

命令的格式、功能和例子如下：

    uint32_t list_cmd(void)
    列出所有命令。
    例子1 = list_cmd()
                          
    uint32_t heap_stat(void)
    显示rtos堆的使用情况。
    例子1 = heap_stat()
                                        
    uint32_t make_dir(char* input_fullpath) 
    生成文件夹。新生成的文件夹路径 = 输入路径。
    例子1 = make_dir("0:/TEST_DIR")
    例子2 = make_dir("0:/TEST_DIR/TEST_DIR2")  
    例子3 = make_dir("0:/TEST_DIR/TEST_DIR2/TEST_DIR3")
    
    uint32_t read_dir(char* input_fullpath)
    查看文件夹中的内容。
    例子1 = read_dir(0)         
    例子2 = read_dir("0:/TEST_DIR")  
    例子3 = read_dir("0:/TEST_DIR/TEST_DIR2")  
    例子4 = read_dir("0:/TEST_DIR/TEST_DIR2/TEST_DIR3")
    
    uint32_t rm_dir(char* input_fullpath)
    删除输入路径文件夹及文件夹下的文件。   。
    例子1 = rm_dir("0:/TEST_DIR")
    
    uint32_t write_file(char *input_fullpath, char *write_buf)
    写文件。如果文件不存在，则创建文件。   。
    例子1 = write_file("0:/test.txt","abc123")

    uint32_t read_file(char* input_fullpath) 
    读文件。                                   。
    例子1 = read_file("0:/test.txt")        

    uint32_t rm_file(char* input_fullpath)
    删除文件。
    例子1 = rm_file("0:/test.txt")
    
    uint32_t move_rename(char* old_fullpath,char* new_fullpath)
    重命名/移动 文件/文件夹
    例子1 = move_rename("0:/test.txt","0:/test1.txt")
    
    uint32_t es_pdf_test(char* input_fullpath)
    生成pdf文件。pdf的文件内容见es_pdf_test.c。 
    例子1 =  es_pdf_test("0:/test.pdf")

<--------------------------------------------------------------------------------
测试环境:
--------------------------------------------------------------------------------->
测试用板；
ES-PDS-ES32VF2264LT-T2
需要对开发板进行如下操作：
1.闭合JP1、JP2、JP3、JP4。
2.断开SB1、SB2、SB3。

辅助工具：
ES-BUR-ESLINKIIOB1

辅助软件：
XCOM-V2.0

<--------------------------------------------------------------------------------
测试步骤：
--------------------------------------------------------------------------------->
1) 连接ES-BUR-ESLINKIIOB1到开发板。编译工程，编译通过后将程序下载到目标芯片；
2) 开发板USB_5V端口连接PC的USB端口，开发板USB_OTG端口连接U盘（USB MSC设备）；
3）用XCOM-V2.0与MCU交互。（调用shell命令）

<--------------------------------------------------------------------------------
注意：
--------------------------------------------------------------------------------->

<--------------------------------------------------------------------------------
System clock:
--------------------------------------------------------------------------------->
PLL 48MHz.

<--------------------------------------------------------------------------------
Pin connection:
--------------------------------------------------------------------------------->

