目前,我能做到,采取NAND方式,在运行boot.out情况下,将放置于NANDFLASH 0xa0000(我的NANDFLASH 0x80000是坏块,因此将程序烧写在0xa0000,并且修改了boot中的IMAGE_OFFSET)上的应用程序copy到Memory map地址0x80000000,这时候程序是能正常运行的。
但是,我如果将刚才运行boot.out对应的bin文件烧录到NANDFLASH的0x0时,设置NAND启动(10010),板子断电重启后,应用程序是无法跑出来的。
boot_ti.bin的开头是10 85 00 00 00 04 2F 40,就是该boot大小是0x8510,放置于Memory map的地址是0x402F0400。
我看了好几遍Starterware UserGuid,找不出问题所在啊。但是我发现一个问题Starterware UserGuid上是自相矛盾的:
Page14:The ROM Code copies the boot loader to onchip OCMC RAM located at 0x402F0400 and gives control to it.
Page11:Once the SPI boot mode is chosen, the bootloader is first detected and copied and executed from the OCMC0 RAM.
这里都是说ROM将boot拷贝到一个地方,但是这个地方第14页是说OCMC,第11页说OCMC0,这两个有区别的不是同一个地方哦。
查看AM3359 TRM的 L3 Memory Map,我们看到onchip OCMC RAM在0x402F0400~0x402FFFFF,OCMC0在0x40300000~0x4030FFFF。
跪求解答!!!