⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 target.c

📁 这是NXP公司的LPC2000系列ARM7内核处理器
💻 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 + -