|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
由于换芯片的缘故,改写了u-boot的源码,但是出现了下面的问题:
tdramdisk烧写进去以后,就把原有的数据都改掉了。
具体情况是这样的:
boot.bin和u-boot.bin都正确烧写并启动,之后,也能烧写linux内核,并且也能正常启动(以上文件每个都小于1M)。完了再烧写tdramdisk(有6M左右)就出错。
于是,我就只单独烧写tdramdisk,然后检查烧写结果对不对。我把烧写每一字节的过程(包括烧写地址和烧写的数据)都打印出来了,可以看到烧写过程中并没有出错。但是烧写完tdramdisk之后,就发现flash每隔1M就把前面1M空间的数据用自己的数据给覆盖掉。比如说,我从100e0000开始烧写tdramdisk,烧写完之后,发现,从10000000到105ffff0这6M空间里面,10000000到100ffff0第一M空间的内容和10100000到101ffff0第二M空间的内容相同,查看了数据,第二M空间的数据与实际的数据是对应的。
大侠帮帮忙,实在想不出是什么问题,看了好多次代码,也觉得应该没错,只要烧写的数据大于1M,烧写就出问题,各位大虾,劳您费力了!!!
有人建议说是保护扇区的问题,我重新看了代码,确信这块地方应该没问题。
|
|