1*5fd0122aSMatthias Ringwald /**************************************************************************//** 2*5fd0122aSMatthias Ringwald * @file system_msp432p401r.h 3*5fd0122aSMatthias Ringwald * @brief CMSIS Cortex-M4F Device Peripheral Access Layer Header File for 4*5fd0122aSMatthias Ringwald * MSP432P401R 5*5fd0122aSMatthias Ringwald * @version 3.231 6*5fd0122aSMatthias Ringwald * @date 01/26/18 7*5fd0122aSMatthias Ringwald * 8*5fd0122aSMatthias Ringwald * @note View configuration instructions embedded in comments 9*5fd0122aSMatthias Ringwald * 10*5fd0122aSMatthias Ringwald ******************************************************************************/ 11*5fd0122aSMatthias Ringwald //***************************************************************************** 12*5fd0122aSMatthias Ringwald // 13*5fd0122aSMatthias Ringwald // Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/ 14*5fd0122aSMatthias Ringwald // 15*5fd0122aSMatthias Ringwald // Redistribution and use in source and binary forms, with or without 16*5fd0122aSMatthias Ringwald // modification, are permitted provided that the following conditions 17*5fd0122aSMatthias Ringwald // are met: 18*5fd0122aSMatthias Ringwald // 19*5fd0122aSMatthias Ringwald // Redistributions of source code must retain the above copyright 20*5fd0122aSMatthias Ringwald // notice, this list of conditions and the following disclaimer. 21*5fd0122aSMatthias Ringwald // 22*5fd0122aSMatthias Ringwald // Redistributions in binary form must reproduce the above copyright 23*5fd0122aSMatthias Ringwald // notice, this list of conditions and the following disclaimer in the 24*5fd0122aSMatthias Ringwald // documentation and/or other materials provided with the 25*5fd0122aSMatthias Ringwald // distribution. 26*5fd0122aSMatthias Ringwald // 27*5fd0122aSMatthias Ringwald // Neither the name of Texas Instruments Incorporated nor the names of 28*5fd0122aSMatthias Ringwald // its contributors may be used to endorse or promote products derived 29*5fd0122aSMatthias Ringwald // from this software without specific prior written permission. 30*5fd0122aSMatthias Ringwald // 31*5fd0122aSMatthias Ringwald // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32*5fd0122aSMatthias Ringwald // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33*5fd0122aSMatthias Ringwald // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 34*5fd0122aSMatthias Ringwald // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35*5fd0122aSMatthias Ringwald // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 36*5fd0122aSMatthias Ringwald // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 37*5fd0122aSMatthias Ringwald // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 38*5fd0122aSMatthias Ringwald // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 39*5fd0122aSMatthias Ringwald // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 40*5fd0122aSMatthias Ringwald // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 41*5fd0122aSMatthias Ringwald // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 42*5fd0122aSMatthias Ringwald // 43*5fd0122aSMatthias Ringwald //***************************************************************************** 44*5fd0122aSMatthias Ringwald 45*5fd0122aSMatthias Ringwald #ifndef SYSTEM_MSP432P401R_H 46*5fd0122aSMatthias Ringwald #define SYSTEM_MSP432P401R_H 47*5fd0122aSMatthias Ringwald 48*5fd0122aSMatthias Ringwald #ifdef __cplusplus 49*5fd0122aSMatthias Ringwald extern "C" { 50*5fd0122aSMatthias Ringwald #endif 51*5fd0122aSMatthias Ringwald 52*5fd0122aSMatthias Ringwald #include <stdint.h> 53*5fd0122aSMatthias Ringwald 54*5fd0122aSMatthias Ringwald extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ 55*5fd0122aSMatthias Ringwald 56*5fd0122aSMatthias Ringwald 57*5fd0122aSMatthias Ringwald /** 58*5fd0122aSMatthias Ringwald * Initialize the system 59*5fd0122aSMatthias Ringwald * 60*5fd0122aSMatthias Ringwald * @param none 61*5fd0122aSMatthias Ringwald * @return none 62*5fd0122aSMatthias Ringwald * 63*5fd0122aSMatthias Ringwald * @brief Setup the microcontroller system. 64*5fd0122aSMatthias Ringwald * 65*5fd0122aSMatthias Ringwald * Performs the following initialization steps: 66*5fd0122aSMatthias Ringwald * 1. Enables the FPU 67*5fd0122aSMatthias Ringwald * 2. Halts the WDT 68*5fd0122aSMatthias Ringwald * 3. Enables all SRAM banks 69*5fd0122aSMatthias Ringwald * 4. Sets up power __REGULATOR and VCORE 70*5fd0122aSMatthias Ringwald * 5. Enable Flash wait states if needed 71*5fd0122aSMatthias Ringwald * 6. Change MCLK to desired frequency 72*5fd0122aSMatthias Ringwald * 7. Enable Flash read buffering 73*5fd0122aSMatthias Ringwald */ 74*5fd0122aSMatthias Ringwald extern void SystemInit (void); 75*5fd0122aSMatthias Ringwald 76*5fd0122aSMatthias Ringwald /** 77*5fd0122aSMatthias Ringwald * Update SystemCoreClock variable 78*5fd0122aSMatthias Ringwald * 79*5fd0122aSMatthias Ringwald * @param none 80*5fd0122aSMatthias Ringwald * @return none 81*5fd0122aSMatthias Ringwald * 82*5fd0122aSMatthias Ringwald * @brief Updates the SystemCoreClock with current core Clock 83*5fd0122aSMatthias Ringwald * retrieved from cpu registers. 84*5fd0122aSMatthias Ringwald */ 85*5fd0122aSMatthias Ringwald extern void SystemCoreClockUpdate (void); 86*5fd0122aSMatthias Ringwald 87*5fd0122aSMatthias Ringwald #ifdef __cplusplus 88*5fd0122aSMatthias Ringwald } 89*5fd0122aSMatthias Ringwald #endif 90*5fd0122aSMatthias Ringwald 91*5fd0122aSMatthias Ringwald #endif /* SYSTEM_MSP432P401R_H */ 92*5fd0122aSMatthias Ringwald 93