1.这些裸机程序是需要下载到nandflash中运行的。当从nandflash启动CPU时,CPU会通过内部的硬件将nandflash开始的4KB的数据复制到称为"Steppingston"的4KB的内部RAM中(起始地址为0),然后跳到RAM的地址0开始执行。
2.通过supervivi的d命令是把程序下载到SDRAM就是内存的起始地址0x3000000中的。这时候其实是从nor flash启动的。本例中如果先从nor flash启动,把程序直接下载到SDRAM中运行,就开始运行SDRAM中的代码,把steppingston中4KB的代码复制SDRAM中,这个时候由于steepingston中的东西是未知的,所以会把SDRAM中的代码覆盖掉,导致程序错乱。
3.正确的操作方法是先从nor flash启动,然后用v命令(把程序下载到nandflash的vivi分区,而vivi分区的地址是0x0-0x50000)下载程序到nandflash , 其实v命令的过程是通过DNW先把程序下载到SDRAM中,然后执行了nand写操作,把0x30000000开始的那段代码复制到了nandflash的0地址处(这段是听网上一个朋友说的)。这样就把代码下载到了nandflash中。然后再从nandflash重新启动,这样stepingston中就是nandflash中的代码了,本试验就能正常运行了。