?? target.c
字號:
//============================================================================//
//文件:target.c
//描述: NXP LPC21XX/22XX系列ARM7 MCU的系統初始化文件
//功能:初始化系統時鐘、存儲器加速、
//
//參考:Copyright(C) 2006, Philips Semiconductor
//版本:2008/01/01 Ver1.00 Mzdesign Edit By 小丑(smart_clown)
//維護:
//============================================================================//
#include "LPC22Xx.h"
#include "type.h"
#include "irq.h"
#include "target.h"
void TargetResetInit(void);
//============================================================================//
//函數:void IRQ_Exception(void)
//描述:IRQ中斷函數,如必要加入自己所需的代碼
//功能:
//
//參數:無
//返回:無
//============================================================================//
void IRQ_Exception(void) __irq
{
while(1); /* change it to your code */
}
//============================================================================//
//函數:void IRQ_Exception(void)
//描述:FIQ中斷函數,如必要加入自己所需的代碼
//功能:
//
//參數:無
//返回:無
//============================================================================//
//void FIQ_Exception(void) __fiq
//{
// while(1); /* change it to your code */
//}
//============================================================================//
//函數:void TargetInit(void)
//描述:目標MCU初始化函數
//功能:建議為僅加入系統配置的初始化函數,該函數最好在工程的主程序當中首先調用
// 如有必要,可以自行加入其它的實始化代碼
//
//參數:無
//返回:無
//============================================================================//
void TargetInit(void)
{
TargetResetInit();
/* Add your codes here */
}
//============================================================================//
//函數:void TargetResetInit(void)
//描述:目標MCU系統配置初始化函數
//功能:初始化中斷映射、PLL以及Flash Menory 加速選項,外部總線的初始化不在此
//備注:相關的定義可見Taget.h頭文件
//參數:無
//返回:無
//============================================================================//
void TargetResetInit(void)
{
#ifdef __DEBUG_RAM
MEMMAP = 0x2; // set remap register
#endif
#ifdef __DEBUG_FLASH
MEMMAP = 0x1; // set remap register
#endif
#ifdef __IN_CHIP
MEMMAP = 0x1; // set remap register
#endif
// Set system timers for each component
PLLCON = 1;
#if (Fpclk / (Fcclk / 4)) == 1
VPBDIV = 0;
#endif
#if (Fpclk / (Fcclk / 4)) == 2
VPBDIV = 2;
#endif
#if (Fpclk / (Fcclk / 4)) == 4
VPBDIV = 1;
#endif
#if (Fcco / Fcclk) == 2
PLLCFG = ((Fcclk / Fosc) - 1) | (0 << 5);
#endif
#if (Fcco / Fcclk) == 4
PLLCFG = ((Fcclk / Fosc) - 1) | (1 << 5);
#endif
#if (Fcco / Fcclk) == 8
PLLCFG = ((Fcclk / Fosc) - 1) | (2 << 5);
#endif
#if (Fcco / Fcclk) == 16
PLLCFG = ((Fcclk / Fosc) - 1) | (3 << 5);
#endif
PLLFEED = 0xaa;
PLLFEED = 0x55;
while((PLLSTAT & (1 << 10)) == 0);
PLLCON = 3;
PLLFEED = 0xaa;
PLLFEED = 0x55;
// Set memory accelerater module
MAMCR = 0;
#if Fcclk < 20000000
MAMTIM = 1;
#else
#if Fcclk < 40000000
MAMTIM = 2;
#else
MAMTIM = 3;
#endif
#endif
MAMCR = 2;
// Add your codes here if necessary
return;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -