1 /******************************************************************************
\r
2 * @file system_XMC1300.c
\r
3 * @brief Device specific initialization for the XMC1300-Series according
\r
9 * Copyright (C) 2012-2013 Infineon Technologies AG. All rights reserved.
\r
13 * Infineon Technologies AG (Infineon) is supplying this software for use with
\r
14 * Infineon
\92s microcontrollers.
\r
16 * This file can be freely distributed within development tools that are
\r
17 * supporting such microcontrollers.
\r
21 * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
\r
22 * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
\r
23 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
\r
24 * INFINEON SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL,
\r
25 * OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
\r
27 ******************************************************************************/
\r
29 * ************************** Change history *********************************
\r
30 * V1.2, 13 Dec 2012, PKB, Created this table, Changed System_ to system_
\r
33 #include "system_XMC1300.h"
\r
34 #include <XMC1300.h>
\r
36 /*---------------------------------------------------------------------------
\r
38 *--------------------------------------------------------------------------*/
\r
39 extern uint32_t AllowClkInitByStartup(void);
\r
41 /*----------------------------------------------------------------------------
\r
42 Clock Global defines
\r
43 *----------------------------------------------------------------------------*/
\r
44 #define DCO_DCLK 64000000UL
\r
46 /*----------------------------------------------------------------------------
\r
47 Clock Variable definitions
\r
48 *----------------------------------------------------------------------------*/
\r
49 /*!< System Clock Frequency (Core Clock)*/
\r
50 uint32_t SystemCoreClock;
\r
54 * @brief Setup the microcontroller system.
\r
58 void SystemInit(void)
\r
61 * Clock tree setup by CMSIS routines is allowed only in the absence of DAVE
\r
64 if(AllowClkInitByStartup()){
\r
65 /* Do not change default values of IDIV,FDIV and RTCCLKSEL */
\r
66 /* ====== Default configuration ======= */
\r
70 * RTC CLK = Standby clock
\r
76 * @brief Update SystemCoreClock according to Clock Register Values
\r
81 void SystemCoreClockUpdate(void)
\r
83 uint32_t IDIV, CLKCR;
\r
85 CLKCR = SCU_CLOCK -> CLKCR;
\r
87 IDIV = (CLKCR & SCU_CLOCK_CLKCR_IDIV_Msk) >> SCU_CLOCK_CLKCR_IDIV_Pos;
\r
91 SystemCoreClock = DCO_DCLK / (2 * IDIV );
\r
95 /* Divider bypassed */
\r
96 SystemCoreClock = DCO_DCLK;
\r