/**
  ******************************************************************************
  * 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) 2022 Shanghai Eastsoft Microelectronics Co., Ltd. ALL rights reserved.
  *******************************************************************************
  */

<--------------------------------------------------------------------------------
Version history:
--------------------------------------------------------------------------------->
2023-11-02       V1.0.0      AE TEAM

<--------------------------------------------------------------------------------
Demo introduction:
--------------------------------------------------------------------------------->
本示例功能：BOOT作为USB MSC主机，可以读写USB MSC设备。从USB MSC设备中获取新APP。。如果10秒内没有USB MSC设备连接，则跳转到APP。
更新APP的方式为：在PC上，将新的带CRC校验的APP存入USB MSC设备。USB MSC设备与开发板USB_OTG接口连接。

各区域划分如下：

地址范围                       功能
0x00000 - 0x0FFFF（64k）       BOOT程序
0x10000 - 0x3FFFF（192k）      APP程序

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

辅助工具：
ES-BUR-ESLINK2OB

辅助软件：
XCOM上位机软件
add_checksum.exe

<--------------------------------------------------------------------------------
测试步骤：
--------------------------------------------------------------------------------->
1) 编译BOOT工程，编译通过后将程序下载到目标芯片。BOOT工程的SDK绝对路径为：
\Projects\ES32VF2264\Applications\Bootloader\no_backup_app_boot\03_host_msc_boot
2) 编译APP工程，编译通过后将程序下载到目标芯片。APP工程的SDK绝对路径为：
\Projects\ES32VF2264\Applications\Bootloader\no_backup_app_boot\03_host_msc_app
3) 复位芯片，或在线调试，运行程序。
4)打开MCU固件校验码添加工具add_checksum.exe，路径为：es32-sdk-for-risc-v\Utilities\add_checksum.exe。具体操作如下：
"Hex/Bin"：CDK\Obj\demo_0x10000.bin。
“校验方式”：CRC校验
“校验和保存地址”：0x30000
“校验和计算长度”：0x30000
“保存格式”：Bin
点击保存，保存为demo_0x10000_crc.bin
5) 在PC上，将 保存为demo_0x10000_crc.bin 文件放入USB MSC设备。然后拔出USB MSC设备。
6) 将开发板USB_5V接口与PC连接。将开发板USB_OTG接口与USB MSC设备。APP程序将被更新。

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

<--------------------------------------------------------------------------------
System clock:
--------------------------------------------------------------------------------->
PLL 72M

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