/* | |
* Modifications for use with Code Red's toolchain - 2011/11/24 | |
*/ | |
/********************************************************************** | |
* $Id$ system_LPC18xx.c 2011-06-02 | |
*//** | |
* @file system_LPC18xx.c | |
* @brief Cortex-M3 Device System Source File for NXP LPC18xx Series. | |
* @version 1.0 | |
* @date 02. June. 2011 | |
* @author NXP MCU SW Application Team | |
* | |
* Copyright(C) 2011, NXP Semiconductor | |
* All rights reserved. | |
* | |
*********************************************************************** | |
* Software that is described herein is for illustrative purposes only | |
* which provides customers with programming information regarding the | |
* products. This software is supplied "AS IS" without any warranties. | |
* NXP Semiconductors assumes no responsibility or liability for the | |
* use of the software, conveys no license or title under any patent, | |
* copyright, or mask work right to the product. NXP Semiconductors | |
* reserves the right to make changes in the software without | |
* notification. NXP Semiconductors also make no representation or | |
* warranty that such application will be suitable for the specified | |
* use without further testing or modification. | |
**********************************************************************/ | |
#include "LPC18xx.h" | |
#include "lpc18xx_cgu.h" | |
/*---------------------------------------------------------------------------- | |
Define clocks | |
*----------------------------------------------------------------------------*/ | |
#define __IRC (12000000UL) /* IRC Oscillator frequency */ | |
/*---------------------------------------------------------------------------- | |
Clock Variable definitions | |
*----------------------------------------------------------------------------*/ | |
uint32_t SystemCoreClock = __IRC * 10UL; /*!< System Clock Frequency (Core Clock)*/ | |
#ifndef __CODE_RED | |
extern uint32_t getPC(void); | |
#endif | |
/** | |
* Initialize the system | |
* | |
* @param none | |
* @return none | |
* | |
* @brief Setup the microcontroller system. | |
* Initialize the System. | |
*/ | |
void SystemInit (void) | |
{ | |
#ifdef __CODE_RED | |
// CodeRed startup code will modify VTOR register to match | |
// when code has been linked to run from. | |
// Check whether we are running from external flash | |
if (SCB->VTOR == 0x1C000000) | |
/*Enable Buffer for External Flash*/ | |
LPC_EMC->STATICCONFIG0 |= 1<<19; | |
// Call clock initialisation code | |
CGU_Init(); | |
#else | |
// Enable VTOR register to point to vector table | |
SCB->VTOR = getPC() & 0xFFF00000; | |
/*Enable Buffer for External Flash*/ | |
LPC_EMC->STATICCONFIG0 |= 1<<19; | |
#endif | |
} |