text: /*******************************************************************************
   * Copyright (C) 2016, Huada Semiconductor Co.,Ltd All rights reserved.
   *
   * This software is owned and published by:
   * Huada Semiconductor Co.,Ltd ("HDSC").
   *
   * BY DOWNLOADING, INSTALLING OR USING THIS SOFTWARE, YOU AGREE TO BE BOUND
   * BY ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT.
   *
   * This software contains source code for use with HDSC
   * components. This software is licensed by HDSC to be adapted only
   * for use in systems utilizing HDSC components. HDSC shall not be
   * responsible for misuse or illegal use of this software for devices not
   * supported herein. HDSC is providing this software "AS IS" and will
   * not be responsible for issues arising from incorrect user implementation
   * of the software.
   *
   * Disclaimer:
   * HDSC MAKES NO WARRANTY, EXPRESS OR IMPLIED, ARISING BY LAW OR OTHERWISE,
   * REGARDING THE SOFTWARE (INCLUDING ANY ACOOMPANYING WRITTEN MATERIALS),
   * ITS PERFORMANCE OR SUITABILITY FOR YOUR INTENDED USE, INCLUDING,
   * WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, THE IMPLIED
   * WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE, AND THE IMPLIED
   * WARRANTY OF NONINFRINGEMENT.
   * HDSC SHALL HAVE NO LIABILITY (WHETHER IN CONTRACT, WARRANTY, TORT,
   * NEGLIGENCE OR OTHERWISE) FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT
   * LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION,
   * LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING FROM USE OR
   * INABILITY TO USE THE SOFTWARE, INCLUDING, WITHOUT LIMITATION, ANY DIRECT,
   * INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOSS OF DATA,
   * SAVINGS OR PROFITS,
   * EVEN IF Disclaimer HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
   * YOU ASSUME ALL RESPONSIBILITIES FOR SELECTION OF THE SOFTWARE TO ACHIEVE YOUR
   * INTENDED RESULTS, AND FOR THE INSTALLATION OF, USE OF, AND RESULTS OBTAINED
   * FROM, THE SOFTWARE.
   *
   * This software may be replicated in part or whole for the licensed use,
   * with the restriction that this Disclaimer and Copyright notice must be
   * included with each copy of this software, whether used in part or whole,
   * at all times.
   */
  /******************************************************************************/
  /** \file system_hc32f_m14x.c
   **
   ** A detailed description is available at
   ** @link SystemGroup System description @endlink
   **
   **   - 2016-5-16  1.0  Zhangxl First version for Device Driver Library of
   **     system config.
   **
   ******************************************************************************/
  
  /*******************************************************************************
   * Include files
   ******************************************************************************/
  #include "base_types.h"
  #include "hc32f_m14x.h"
  #include "system_hc32f_m14x.h"
  #include "clk.h"
  
  /**
   *******************************************************************************
   ** \addtogroup SystemGroup
   ******************************************************************************/
  //@{
  
  /*******************************************************************************
   * Local type definitions ('typedef')
   ******************************************************************************/
  
  /*******************************************************************************
   * Local pre-processor symbols/macros ('#define')
   ******************************************************************************/
  #define CLK_OSC  4*1000*1000             ///< Freq. of external OSC
  
  /*******************************************************************************
   * Global variable definitions (declared in header file with 'extern')
   ******************************************************************************/
  /**
   *******************************************************************************
   ** System Clock Frequency (Core Clock) Variable according CMSIS
   ******************************************************************************/
  uint32_t SystemCoreClock = CLK_OSC;
  
  /*******************************************************************************
   * Local function prototypes ('static')
   ******************************************************************************/
  
  /*******************************************************************************
   * Local variable definitions ('static')
   ******************************************************************************/
  
  /*******************************************************************************
   * Function implementation - global ('extern') and local ('static')
   ******************************************************************************/
  /**
   *******************************************************************************
   ** \brief  Setup the microcontroller system. Initialize the System and update
   **         the SystemCoreClock variable.
   **
   ******************************************************************************/
  void SystemInit(void)
  {
      stc_clk_config_t stcCfg;
  
  #if (HWWD_DISABLE)                                   /* HW Watchdog Disable */
      M0P_HWWDT->WDT_LCK = 0x1ACCE551u;                /* HW Watchdog Unlock */
      M0P_HWWDT->WDT_LCK = 0xE5331AAEu;
      M0P_HWWDT->WDT_CTL = 0u;                         /* HW Watchdog stop */
  #endif
  
      DDL_ZERO_STRUCT(stcCfg);
  
      stcCfg.enBaseClkDiv = ClkBaseDiv2;
      stcCfg.enAPB1Div = ClkApb1Div2;
      stcCfg.enClkWaitMain = ClkCswtMain1ms;
  
      SystemCoreClockUpdate();
  }
  
  /**
   *******************************************************************************
   ** \brief  Update system base clock.
   *
   ******************************************************************************/
  void SystemCoreClockUpdate(void)
  {
      SystemCoreClock = Clk_GetSystemClk();
  }
  
  //@} // SystemGroup
  
  /*******************************************************************************
   * EOF (not truncated)
   ******************************************************************************/
  