引用第2楼kasim于2010-03-24 15:47发表的 :
简单的说:
在NAND Flash启动模式下,
1. 用OpenJtag下载一个可以初始化SDRAM的二进制档(OpenJtag随机光盘里的init.bin就可以)到0x0地址上,并执行;
2. 用OpenJtag下载一个带有烧写Flash和程序下载功能的bootloader到SDRAM中,并且将PC指针跳转到它在SDRAM的入口地址上执行;
3. 用这个bootloder下载你需要放在Flash中的bios到Flash中。
.......
这样说比较方便,
第二步中的Bootloader是在RAM中运行,并且是用来在第三步中烧写BIOS的(也就是,Bootloader吧?!)
因为在第一步中已经初始化了RAM,所以第二步中在RAM跑的这个Bootloader不能再初始化RAM,也省去了从NAND到RAM的搬运过程,也就是说这个Bootloader跟第三步中烧写到NAND里的Bootloader是不一样的
这是我的理解。
这样理解正确吗?(好像不对,源码好像能判断当前是在RAM中还是在flash中的,请版主给出明确的回答和详细的解释,谢谢!)
这样理解的话,利用openjtag烧写NAND,需要两个不同的Bootloader,另外还需要初始化RAM的binary文件(如init.bin),这样会不会太傻瓜了呢