这个问题解决了,最新的程序和老程序只有一个地方不一样,就是nand.c文件中,checkid函数中增加了对读出id的种类判断,比如我的板子是2G08U0B,芯片id从手册上看是0xDA,则在这个函数判断的case中,加上一句case 0xDA:返回1,编译后下载到nandflash就没有问题了。具体为什么启动不了,我分析了一下是因为在2440init.s中调用了CopyProgramFromNand,而这个函数就是在nand.c中,这个函数开头调用了checkid,由于checkid检测到id错误,进入死循环,所有从nandflash启动不了,希望对大家有帮助。