1 /* 2 ** ################################################################### 3 ** Processors: MCIMX7U3CVP06 4 ** MCIMX7U3DVK07 5 ** 6 ** Compilers: GNU C Compiler 7 ** IAR ANSI C/C++ Compiler for ARM 8 ** Keil ARM C/C++ Compiler 9 ** 10 ** Reference manual: IMX7ULPRM, Rev. 0, Nov. 2018 11 ** Version: rev. 7.0, 2018-11-05 12 ** Build: b200408 13 ** 14 ** Abstract: 15 ** Provides a system configuration function and a global variable that 16 ** contains the system frequency. It configures the device and initializes 17 ** the oscillator (PLL) that is part of the microcontroller device. 18 ** 19 ** Copyright 2016 Freescale Semiconductor, Inc. 20 ** Copyright 2016-2020 NXP 21 ** All rights reserved. 22 ** 23 ** SPDX-License-Identifier: BSD-3-Clause 24 ** 25 ** http: www.nxp.com 26 ** mail: support@nxp.com 27 ** 28 ** Revisions: 29 ** - rev. 1.0 (2016-04-13) 30 ** Initial version. 31 ** - rev. 2.0 (2016-07-19) 32 ** RevC Header ER 33 ** - rev. 3.0 (2017-02-28) 34 ** RevD Header ER 35 ** - rev. 4.0 (2017-05-02) 36 ** RevE Header ER 37 ** - rev. 5.0 (2017-12-22) 38 ** RevA(B0) Header GA 39 ** - rev. 6.0 (2018-02-01) 40 ** RevB(B0) Header GA 41 ** - rev. 7.0 (2018-11-05) 42 ** RevA(B1) Header 43 ** 44 ** ################################################################### 45 */ 46 47 /*! 48 * @file MCIMX7U3_cm4 49 * @version 7.0 50 * @date 2018-11-05 51 * @brief Device specific configuration file for MCIMX7U3_cm4 (header file) 52 * 53 * Provides a system configuration function and a global variable that contains 54 * the system frequency. It configures the device and initializes the oscillator 55 * (PLL) that is part of the microcontroller device. 56 */ 57 58 #ifndef _SYSTEM_MCIMX7U3_cm4_H_ 59 #define _SYSTEM_MCIMX7U3_cm4_H_ /**< Symbol preventing repeated inclusion */ 60 61 #ifdef __cplusplus 62 extern "C" { 63 #endif 64 65 #include <stdint.h> 66 67 68 69 /* i.MX7ULP Definitions */ 70 #ifndef DISABLE_WDOG 71 #define DISABLE_WDOG 1 72 #endif 73 /* Define clock source values */ 74 #define CPU_XTAL_SOSC_CLK_HZ 24000000u /* Value of the external System Oscillator Clock(SOSC) frequency in Hz */ 75 #define CPU_XTAL_LVDS_CLK_HZ 24000000u /* Value of the external LVDS Clock frequency in Hz */ 76 #define DEFAULT_SYSTEM_CLOCK 100000000u /* Default System clock value */ 77 78 79 /** 80 * @brief System clock frequency (core clock) 81 * 82 * The system clock frequency supplied to the SysTick timer and the processor 83 * core clock. This variable can be used by the user application to setup the 84 * SysTick timer or configure other parameters. It may also be used by debugger to 85 * query the frequency of the debug timer or configure the trace clock speed 86 * SystemCoreClock is initialized with a correct predefined value. 87 */ 88 extern uint32_t SystemCoreClock; 89 90 /** 91 * @brief Setup the microcontroller system. 92 * 93 * Typically this function configures the oscillator (PLL) that is part of the 94 * microcontroller device. For systems with variable clock speed it also updates 95 * the variable SystemCoreClock. SystemInit is called from startup_device file. 96 */ 97 void SystemInit (void); 98 99 /** 100 * @brief Updates the SystemCoreClock variable. 101 * 102 * It must be called whenever the core clock is changed during program 103 * execution. SystemCoreClockUpdate() evaluates the clock register settings and calculates 104 * the current core clock. 105 */ 106 void SystemCoreClockUpdate (void); 107 108 /** 109 * @brief SystemInit function hook. 110 * 111 * This weak function allows to call specific initialization code during the 112 * SystemInit() execution.This can be used when an application specific code needs 113 * to be called as close to the reset entry as possible (for example the Multicore 114 * Manager MCMGR_EarlyInit() function call). 115 * NOTE: No global r/w variables can be used in this hook function because the 116 * initialization of these variables happens after this function. 117 */ 118 void SystemInitHook (void); 119 120 #ifdef __cplusplus 121 } 122 #endif 123 124 #endif /* _SYSTEM_MCIMX7U3_cm4_H_ */ 125