/**
  ******************************************************************************
  * 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:
--------------------------------------------------------------------------------->
2026-04-21	V1.0.0	AE TEAM

<--------------------------------------------------------------------------------
Demo introduction:
--------------------------------------------------------------------------------->
本示例功能：
配置好系统时钟后，将输出系统输出到IO上，观察系统时钟的频率。
系统实时监测外部晶振，如果外部晶振停振，系统时钟自动切换到HRC 48MHz，并且响应CCM中断。

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

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

辅助软件：
ESBridge上位机软件

<--------------------------------------------------------------------------------
测试步骤：
--------------------------------------------------------------------------------->
(1) 编译工程，编译通过后将程序下载到目标芯片。
(2) 将程序配置成时钟输出模式，初始化时钟输出引脚。
(3) ESBridge通过USB线缆连接PC，打开上位机软件，“设备操作”选项里选择“打开”。
(4) 将时钟输出引脚接到示波器观察频率。
(5) 打开串口，等待接收Log日志。
(6) 故障注入测试：程序运行时，将外部晶振去除，调试观察CCM中断是否响应。
    也可通过PDS板载LED灯判断外振状态：若停振过，P2灯长亮，若当前正处于停振状态，P1灯亮，恢复振荡后，P1灯灭。

<--------------------------------------------------------------------------------
System clock:
--------------------------------------------------------------------------------->
PLL 48MHz，PLL时钟源：XTAL 16MHz

<--------------------------------------------------------------------------------
Pin connection: 
--------------------------------------------------------------------------------->
UART_TX_PIN      ----  PB25[GPIO_FUNC_2]
CLOCK_0_OUT_PIN  ----  PB0[GPIO_FUNC_1]
CLOCK_1_OUT_PIN  ----  PB1[GPIO_FUNC_1]
P1_LED           ----  PA5[GPIO_FUNC_0]
P2_LED           ----  PA6[GPIO_FUNC_0]
