/**************************************************************************//** * @file system_NUC200Series.c * @version V3.0 * $Revision: 5 $ * $Date: 14/11/21 5:08p $ * @brief NUC200 Series CMSIS System File * * @note * SPDX-License-Identifier: Apache-2.0 * Copyright (C) 2014 Nuvoton Technology Corp. All rights reserved. * ******************************************************************************/ #include #include "NUC200Series.h" /*---------------------------------------------------------------------------- Clock Variable definitions *----------------------------------------------------------------------------*/ uint32_t SystemCoreClock = __HSI; /*!< System Clock Frequency (Core Clock) */ uint32_t CyclesPerUs = (__HSI / 1000000); /* Cycles per micro second */ uint32_t PllClock = __HSI; /*!< PLL Output Clock Frequency */ uint32_t gau32ClkSrcTbl[] = {__HXT, __LXT, __HSI, __LIRC, NULL, NULL, NULL, __HIRC}; /*---------------------------------------------------------------------------- Clock functions This function is used to update the variable SystemCoreClock and must be called whenever the core clock is changed. *----------------------------------------------------------------------------*/ void SystemCoreClockUpdate(void) /* Get Core Clock Frequency */ { uint32_t u32Freq, u32ClkSrc; uint32_t u32HclkDiv; /* Update PLL Clock */ PllClock = CLK_GetPLLClockFreq(); u32ClkSrc = CLK->CLKSEL0 & CLK_CLKSEL0_HCLK_S_Msk; if(u32ClkSrc != CLK_CLKSEL0_HCLK_S_PLL) { /* Use the clock sources directly */ u32Freq = gau32ClkSrcTbl[u32ClkSrc]; } else { /* Use PLL clock */ u32Freq = PllClock; } u32HclkDiv = (CLK->CLKDIV & CLK_CLKDIV_HCLK_N_Msk) + 1; /* Update System Core Clock */ SystemCoreClock = u32Freq / u32HclkDiv; CyclesPerUs = (SystemCoreClock + 500000) / 1000000; } /*---------------------------------------------------------------------------------------------------------*/ /* Function: SystemInit */ /* */ /* Parameters: */ /* None */ /* */ /* Returns: */ /* None */ /* */ /* Description: */ /* The necessary initialization of system. */ /* */ /*---------------------------------------------------------------------------------------------------------*/ void SystemInit(void) { }