/**
  ******************************************************************************
  * 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:
--------------------------------------------------------------------------------->
2025-5-26	V1.0.0	AE TEAM

<--------------------------------------------------------------------------------
Demo introduction:
--------------------------------------------------------------------------------->
本示例功能：
(1).使用ECC功能对1位以上的错误进行纠错，对2位以上的flash错误进行检测，出现1或2位以上的flash数据出错，会触发
ecc的中断错误，在回调函数中打印对应日志信息。

<--------------------------------------------------------------------------------
测试环境:
--------------------------------------------------------------------------------->
测试用板；
ES-GDB-ES8H0484
HRSDK-GMB-01

辅助工具：
多功能接口转换工具ESBridge

辅助软件：
ESBridge上位机软件

<--------------------------------------------------------------------------------
测试步骤：
--------------------------------------------------------------------------------->
(1) 编译工程，编译通过后将程序下载到目标芯片。
(2) 将芯片的配置字FLASH DATA区域读写地址改为230页，选择打开ECC FLASH功能，配编当前配置。
(3) ESBridge通过USB线缆连接PC，打开上位机软件，“设备操作”选项里选择“打开”。
(4) 在ESBridge中选择对应的串口选项卡(波特率115200、数据位8、停止位1、无奇偶校验位)，打开串口。
(5) 下载软件到芯片中，观察反馈的日志信息。
(6) 如出现modify 0x0001CC00 data 0x00 => 0x01，1bit error correction success，ECC纠错成功。
(7) 如出现ecc test success ！！error addr = 0001CC00，ECC触发成功，识别到flash错误的数据。

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

<--------------------------------------------------------------------------------
Pin connection: 
--------------------------------------------------------------------------------->
UART_TX_PIN  ----  PA9[GPIO_FUNC_1]