TI中文支持网
TI专业的中文技术问题搜集分享网站

跪求解答:关于NAND中跑裸机无法启动的问题

目前,我能做到,采取NAND方式,在JTAG运行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,找不出问题所在啊。

Yaoming Qin:

案子通过其他方式可以起来吗

zhanyi fang:

回复 Yaoming Qin:

其他方式可以的,就是这个NANDFLASH不行哦,而且我JTAG仿真的时候把boot程序拷贝到内部那个特定地址的RAM中运行了,应该说除了gel上可能做的初始化,仿真操作和直接从NANDFLASH启动一样了吧!!!

zhanyi fang:

回复 zhanyi fang:

这帖子又沉了,哎

kooking:

请问是什么平台,这个u-boot之前有没有ubl/mlo呢,理论上,u-boot执行起来后,至少会打印第一行,u-boot的版本信息和烧写日期。

有两个方法可以测试下,一是通过其它方式boot成功后,mount上nand,进行读写测试;二就是更换nand flash芯片

zhanyi fang:

回复 kooking:

这是跑裸机啊,是用Starterware的啊,不是uboot

Yaoming Qin:

回复 zhanyi fang:

1. 检查跳线方式

2. 检查你的bootloader是否是根据nand 启动方式编译的

longdm long:

回复 zhanyi fang:

boot里面的的程序都没有运行还是只有应用程序没有运行呢?

如果 boot里头的程序没有运行,你不会吧  boot_ti.bin写到里头了吧?

如果boot里头程序运行了,应该检查下boot里头是否正确的初始化 DDR和nand flash….

zhanyi fang:

回复 longdm long:

是boot_ti.bin先写到NANDFLASH 0X0处啊,然后应用程序写到0xa0000,在boot中修改跳转向量到应用程序0xa0000处啊,难道不只是这样的吗?现在是boot都没起来啊

zhanyi fang:

回复 Yaoming Qin:

是跳线接到从NANDFLASH启动的,然后也是用nandflash方式编译boot的

longdm long:

回复 zhanyi fang:

这样做是不对的,boot_ti.bin里面的头八个字节是大小和起始地址,不是运行的代码。

芯片加载之后跳转到这里不是运行代码,是无法运行的。

应该是将boot.bin 写进里头。

赞(0)
未经允许不得转载:TI中文支持网 » 跪求解答:关于NAND中跑裸机无法启动的问题
分享到: 更多 (0)