﻿/**
  ******************************************************************************
  * 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-03-20       V1.0.0      AE TEAM

<--------------------------------------------------------------------------------
Demo introduction:
--------------------------------------------------------------------------------->
本示例功能：UART bootloader, 通过uart接收shell命令，xmodem-1k 接收APP文件

<--------------------------------------------------------------------------------
测试环境:
--------------------------------------------------------------------------------->
测试用板；
ES-PDS-ES32VF2264LT

辅助工具：
ES-LINK2OB

辅助软件：
ECOM串口助手

<--------------------------------------------------------------------------------
测试步骤：
--------------------------------------------------------------------------------->
1) 编译BOOT工程，编译通过后将程序下载到目标芯片。
2) 复位芯片，或在线调试，运行程序。
3) 在串口助手软件中找到对应的串口并打开
4) 准备APP程序
  a)打开APP工程，编译后获得APP_bin文件。该文件为路径：CDK\Obj\demo_0x2000.bin。
  b)使用Utilities\add_checksum.exe工具，添加CRC和长度信息。
   【特别注意】XModem bootloader需要手动计算1024字节对齐的长度并填写，具体计算方法如下：文件大小1024字节向上取整-8
               例如：文件大小为4236（工具显示空间占用范围为0x108B）则需取整到5120(0x1400)，再-8得到5112，
                     按照16进制的结果转为13F8后填写，再点击合并生成带有crc和长度的bin 文件 
5) 在串口助手中，点击打开文件，选择生成的demo_0x2000_crc.bin文件，选择传输协议为"1K Xmodom Send"
6) 在串口助手的输入框填入"update"，并勾选转义字符"\r\n",点击"发送数据"
7) 点击"发送文件"按钮，等待文件发送成功
8) 发送成功后，输入reboot即可重启到boot程序并更新app

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

<--------------------------------------------------------------------------------
Pin connection: 
--------------------------------------------------------------------------------->
PA2 --- CUART1_TX
PA3 --- CUART1_RX