//target.c
void TargetResetInit(void)
{
#ifdef __DEBUG
MEMMAP = 0x3; //remap --->片外?
#endif
#ifdef __OUT_CHIP
MEMMAP = 0x3; //remap --->片外?
#endif
#ifdef __IN_CHIP
MEMMAP = 0x1; //remap
#endif
......
}
问题貌似是出在这里吧?(这个实例程序不大,似乎不需要用到片外RAM或FLASH)
如果运行在片内flash的话MEMMAP就直接设为1,如果运行在片内RAM中的话,就将该寄存器设为2,最后如果是由片外flash启动,需要将该位设置为3,如果该MEMAP设为3,一定要先将GPIO,BCFG设置完后再设置MEMAP寄存器。(如何设置你就自己再百度百度琢磨琢磨吧,我这没有LPC2214的板,感觉LPC2214确实很麻烦)
以下是LPC2300里的一段,你的那段不是很清楚,你对比一下,再试试
void TargetResetInit(void) { #ifdef __DEBUG_RAM MEMMAP = 0x2; // remap #endif
#ifdef __DEBUG_FLASH MEMMAP = 0x1; // remap #endif
#ifdef __IN_CHIP MEMMAP = 0x1; // remap #endif
......
}
[ 本帖最后由 SuperStar515 于 2011-7-22 15:13 编辑 ] |