/**
  ******************************************************************************
  * 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:
--------------------------------------------------------------------------------->
本示例功能：
本例程为故障注入测试，模拟Flash数据出错，使用ECC对1bit错误进行纠错，对2bit及以上的错误进行检测并报错，
出现1bit或2bit及以上错误后，均会触发ECC错误中断，并在回调函数中打印对应日志信息，反馈错误数据的地址。

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

辅助工具：
ES-LINK II

辅助软件：
串口上位机软件

<--------------------------------------------------------------------------------
测试步骤：
--------------------------------------------------------------------------------->
(1) 使能Flash ECC功能，在ESBurner配置字界面将CFG_FLSECC选择为Enable，其他配置项按需选择，确定后点击“配编”。
(2) 将PDS板的TX引脚与ES-LINK II的RX相连，可直接将PDS板上的DEBUG_UART区域的TX短接。
(3) 在串口上位机选择对应的串口选项(波特率115200、数据位8、停止位1、无奇偶校验位)，打开串口。
(4) 编译该例程，烧录程序至MCU，运行程序，观察串口打印的日志信息。
(5) 如打印modify 0x0001CC00 data 0x00 => 0x01，1bit error correction success，则ECC 1bit纠错成功。
(6) 如打印ECC test success! Error addr = 0001CC00，则ECC错误中断响应成功。
(7) 可将函数ecc_1_bit_error_correction和ecc_2_bit_detect_error中模拟Flash数据出错的擦写操作代码屏蔽，则不会响应ECC错误中断。

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

<--------------------------------------------------------------------------------
Pin connection: 
--------------------------------------------------------------------------------->
UART_TX_PIN  ----  PB25[GPIO_FUNC_2]
