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

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

<--------------------------------------------------------------------------------
Demo introduction:
--------------------------------------------------------------------------------->
本示例功能：app_private_code工程用于生成私有代码，私有代码最终分配到0x3F000~0x40000的范围内

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

辅助软件：
ESBurner上位机软件、串口调试助手
<--------------------------------------------------------------------------------
测试步骤：
--------------------------------------------------------------------------------->
1.打开app_code和private_code文件夹下的IDE工程，编译生成ihex文件备用；
2.生成符号定义文件：工程配置User界面勾选“Run User Program After Build/Rebuild”，
  并添加脚本“riscv64-unknown-elf-readelf -s Obj/demo.elf > crc32.txt”；
3.打开ESBurner上位机软件，加载步骤1中所述的private_code对应的ihex文件，
  并进行配置（GBRDP:读保护等级level0，PCROP0_ENB：使能，PCROP0_START：Flash Page504，
  PCROP0_END：Flash Sector511，PCROP1_ENB：禁止，其他选项与常规一致）；
4.依次点击“擦除->全擦除”，“编程”，“校验”，“加密”；
5.ESBurner加载步骤1中所述的app_code对应的ihex文件，并按照步骤2修改配置字；
6.依次点击“擦除->二次开发擦除”，“编程”，“校验”，“加密”；
7.关闭ESBurner上位机；
8.打开串口调试助手，115200-N-1；
9.复位MCU，APP程序开始运行，可以观察到CRC32校验和（0x3FCA88C5）打印到串口调试助手，
  之后开发板上的LED闪烁。

<--------------------------------------------------------------------------------
注意：
--------------------------------------------------------------------------------->
1) ESBurner上位机软件使用完毕后需要及时关闭，否则将始终占用串口导致通信不正常
2) ESBurner上位机软件版本须大于等于1.0.1.74

<--------------------------------------------------------------------------------
System clock:
--------------------------------------------------------------------------------->
Internal HRC 48MHz

<--------------------------------------------------------------------------------
Pin connection: 
--------------------------------------------------------------------------------->
CUART1_TX ---- PA2[GPIO_FUNC_2]
