/**
  ******************************************************************************
  * 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-1-7	V1.00	AE TEAM

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

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

辅助软件：
ESBurner上位机软件
串口调试助手
<--------------------------------------------------------------------------------
测试步骤：
--------------------------------------------------------------------------------->
1.打开IDE编译工程，生成所需的Hex文件，或直接使用工程文件夹中已编译好的Hex文件，即“app_private_code.hex”
2.检查生成的符号定义文件，只保留最终调用的IP-CODE函数，其他函数均应删除，或直接使用工程文件夹中已生成的配置好的符号定义文件，即“crc32.txt”
3.打开ESBurner上位机软件，选择步骤1中所述的Hex文件，并进行配置（GBRDP:读保护等级level0，PCROP0_ENB：使能，PCROP0_START：Flash Page384，PCROP0_END：Flash Sector385，PCROP1_ENB：禁止，其他选项与常规一致）
4.依次点击“擦除->全擦除”，“配编”，“编程”，“校验”，“加密”
5.再次点击“擦除”，然后选择“二次开发擦除”，至此，私有代码烧录已经完成（注意，ESBurner上位机软件的烧录接口应为SWD，否则二次擦出将会失败）
6.关闭ESBurner上位机
7.打开../../app/下的工程文件
8.如使用iar，本步骤忽略，检查../../app中keil包含的“crc32.txt”的文件类型是否为“Object file”，编译工程并生成Hex文件
9.打开串口调试助手，115200-N-1
10.APP程序开始运行后，发送CRC32校验和（0x3FCA88C5）到串口调试助手，之后开发板ES-PDS-ES32F369x开发板上的LED1和LED2每秒交替闪烁

<--------------------------------------------------------------------------------
注意：
--------------------------------------------------------------------------------->
1) ESBurner上位机软件使用完毕后需要及时关闭，否则将始终占用串口导致通信不正常
2) 如在../app例程中使用私有代码保护，则../app和本例程必须使用相同的IDE编译工程，否则将因私有代码的地址不匹配导致程序出错
3) ESBurner上位机软件版本须大于等于1.0.1.74

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

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

TX   ---- PB11[GPIO_FUNC_3]
RX   ---- PB10[GPIO_FUNC_3]