/**************************************************************************//** * @file system_M251.c * @version V0.10 * @brief System Setting Source File * * SPDX-License-Identifier: Apache-2.0 * @copyright (C) 2020 Nuvoton Technology Corp. All rights reserved. ****************************************************************************/ #include #include #include #include "NuMicro.h" #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) #include "partition_M251.h" #endif extern void *__Vectors; /* see startup file */ /*---------------------------------------------------------------------------- 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 */ const uint32_t gau32ClkSrcTbl[8] = {__HXT, __LXT, 0UL, __LIRC, 0UL, __MIRC, 0UL, __HIRC}; /** * @brief System Initialization * * @details The necessary initialization of system. Global variables are forbidden here. */ void SystemInit(void) { /* Set access cycle for CPU @ 48MHz */ FMC->CYCCTL = (FMC->CYCCTL & ~FMC_CYCCTL_CYCLE_Msk) | (3 << FMC_CYCCTL_CYCLE_Pos) | 0x100; #if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) SCB->VTOR = (uint32_t) &__Vectors; #endif #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) TZ_SAU_Setup(); SCU_Setup(); FMC_NSBA_Setup(); #endif #ifdef INIT_SYSCLK_AT_BOOTING #endif } #if USE_ASSERT /** * @brief Assert Error Message * * @param[in] file the source file name * @param[in] line line number * * @details The function prints the source file name and line number where * the ASSERT_PARAM() error occurs, and then stops in an infinite loop. */ void AssertError(uint8_t *file, uint32_t line) { printf("[%s] line %u : wrong parameters.\r\n", file, line); /* Infinite loop */ while (1) ; } #endif