Subversion Repositories CharLCD

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /**************************************************************************//**
  2.  * @file     system_ARMCM7.c
  3.  * @brief    CMSIS Device System Source File for
  4.  *           ARMCM7 Device Series
  5.  * @version  V5.00
  6.  * @date     07. September 2016
  7.  ******************************************************************************/
  8. /*
  9.  * Copyright (c) 2009-2016 ARM Limited. All rights reserved.
  10.  *
  11.  * SPDX-License-Identifier: Apache-2.0
  12.  *
  13.  * Licensed under the Apache License, Version 2.0 (the License); you may
  14.  * not use this file except in compliance with the License.
  15.  * You may obtain a copy of the License at
  16.  *
  17.  * http://www.apache.org/licenses/LICENSE-2.0
  18.  *
  19.  * Unless required by applicable law or agreed to in writing, software
  20.  * distributed under the License is distributed on an AS IS BASIS, WITHOUT
  21.  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  22.  * See the License for the specific language governing permissions and
  23.  * limitations under the License.
  24.  */
  25.  
  26. #if defined (ARMCM7)
  27.   #include "ARMCM7.h"
  28. #elif defined (ARMCM7_SP)
  29.   #include "ARMCM7_SP.h"
  30. #elif defined (ARMCM7_DP)
  31.   #include "ARMCM7_DP.h"
  32. #else
  33.   #error device not specified!
  34. #endif
  35.  
  36. /*----------------------------------------------------------------------------
  37.   Define clocks
  38.  *----------------------------------------------------------------------------*/
  39. #define  XTAL            ( 5000000UL)      /* Oscillator frequency */
  40.  
  41. #define  SYSTEM_CLOCK    (5U * XTAL)
  42.  
  43.  
  44. /*----------------------------------------------------------------------------
  45.   Externals
  46.  *----------------------------------------------------------------------------*/
  47. #if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U)
  48.   extern uint32_t __Vectors;
  49. #endif
  50.  
  51. /*----------------------------------------------------------------------------
  52.   System Core Clock Variable
  53.  *----------------------------------------------------------------------------*/
  54. uint32_t SystemCoreClock = SYSTEM_CLOCK;
  55.  
  56.  
  57. /*----------------------------------------------------------------------------
  58.   System Core Clock update function
  59.  *----------------------------------------------------------------------------*/
  60. void SystemCoreClockUpdate (void)
  61. {
  62.   SystemCoreClock = SYSTEM_CLOCK;
  63. }
  64.  
  65. /*----------------------------------------------------------------------------
  66.   System initialization function
  67.  *----------------------------------------------------------------------------*/
  68. void SystemInit (void)
  69. {
  70.  
  71. #if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U)
  72.   SCB->VTOR = (uint32_t) &__Vectors;
  73. #endif
  74.  
  75. #if defined (__FPU_USED) && (__FPU_USED == 1U)
  76.   SCB->CPACR |= ((3U << 10U*2U) |           /* set CP10 Full Access */
  77.                  (3U << 11U*2U)  );         /* set CP11 Full Access */
  78. #endif
  79.  
  80. #ifdef UNALIGNED_SUPPORT_DISABLE
  81.   SCB->CCR |= SCB_CCR_UNALIGN_TRP_Msk;
  82. #endif
  83.  
  84.   SystemCoreClock = SYSTEM_CLOCK;
  85. }
  86.