mirror of
https://github.com/dougg3/mac-rom-simm-programmer.git
synced 2024-12-12 14:31:15 +00:00
77 lines
2.2 KiB
C
77 lines
2.2 KiB
C
|
/**************************************************************************//**
|
||
|
* @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 <arm_cmse.h>
|
||
|
#include <stdio.h>
|
||
|
#include <stdint.h>
|
||
|
#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
|