mirror of
https://github.com/dougg3/mac-rom-simm-programmer.git
synced 2024-11-15 06:07:46 +00:00
7ad248e5aa
The default values for SystemCoreClock, CyclesPerUs, and PllClock work fine for my purposes of running from the 48 MHz HIRC. Remove unnecessary initialization code. This is especially useful for the bootloader where flash space is at a premium. Also strip out unneeded UART setup code.
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
|