📄 target.c
字号:
/****************************************************************************
* FILENAME: TARGET.C *
* *
* VERSION: V1.0 *
* *
* DESCRIPTION: LPC21xx target initialize *
* *
* TOOLS: KEIL uVision3 *
* ARM Development Suite ADS1.2 *
* *
* REVISION HISTORY: *
* Version Author Date Remarks *
* 1.0 Anthony Xie 10/10/2005 - - *
*****************************************************************************/
#include "LPC2294.h"
#include "config.h"
//************************************************************************************************
//** File Name: FIQ_Exception
//** Function: FIQ process
//************************************************************************************************
void FIQ_Exception(void)
{
while(1);
}
//**************************************************************************************************
//** Function Name: TargetResetInit
//** Function: before entry Main, initialize target
//***************************************************************************************************
void TargetResetInit(void)
{
#ifdef __DEBUG_IN_RAM
MEMMAP = 0x2; //remap
#endif
/*
#ifdef __DEBUG_IN_FLASH
MEMMAP = 0x1; //remap
#endif
#ifdef __ENCRYPT_IN_CHIP
MEMMAP = 0x1; //remap
#endif
*/
/* config clock */
PLLCON = 1; //enable PLL, NOT connect PLL
#if (Fpclk / (Fcclk / 4)) == 1 //want set Fpclk=Fcclk/4
VPBDIV = 0;
#endif
#if (Fpclk / (Fcclk / 4)) == 2 //want set Fpclk=Fcclk/2
VPBDIV = 2;
#endif
#if (Fpclk / (Fcclk / 4)) == 4 //want set Fpclk=Fcclk
VPBDIV = 1;
#endif // for bug reason, if used EINTx, pls modify VPBDIV together with EXTMODE & EXTPOLAR
#if (Fcco / Fcclk) == 2 //FXXNNNNN,P=1,XX=00
PLLCFG = ((Fcclk / Fosc) - 1) | (0 << 5); //NNNNN=M(Fcclk/Fosc)-1
#endif //F=0
#if (Fcco / Fcclk) == 4 //P=2,XX=1
PLLCFG = ((Fcclk / Fosc) - 1) | (1 << 5); //NNNNN=M-1
#endif
#if (Fcco / Fcclk) == 8 //P=4,XX=2
PLLCFG = ((Fcclk / Fosc) - 1) | (2 << 5); //NNNNN=M-1
#endif
#if (Fcco / Fcclk) == 16 //P=8,XX=3
PLLCFG = ((Fcclk / Fosc) - 1) | (3 << 5); //NNNNN=M-1
#endif
PLLFEED = 0xaa;
PLLFEED = 0x55;
while((PLLSTAT & (1 << 10)) == 0); //wait PLOCK(PLLSTAT:10)=1
PLLCON = 3; // Enable & connect PLL
PLLFEED = 0xaa;
PLLFEED = 0x55;
/* config MAM */
MAMCR = 0; //MAM function disabled
#if Fcclk < 20000000
MAMTIM = 1;
#else
#if Fcclk < 40000000
MAMTIM = 2;
#else
MAMTIM = 3;
#endif
#endif
MAMCR = 2; //MAM function fully enabled
/* config VIC */
VICIntEnClr = 0xffffffff;
VICVectAddr = 0;
VICIntSelect = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -