急!bin文件烧进flash的问题!

古木寒   2009-10-9 10:00 楼主
我将eboot.bin文件烧进flash,然后想将其中某一段二进制数从flash读回ram,比如我读0x80000这一段,结果发现读出来的都是0,而且地址也会偏移!实际上打开.bin文件,0x80000这一段不是0!如果是从头读的话,就可以读出来数!
我想问,bin文件烧进flash里会发生变化吗???读出来的数不一致,这是为什么呢???

回复评论 (16)

什么形式的BIN文件?eboot.bin?nk.bin?
通过什么方式烧录的?eboot?nboot?
如果是以上方式的话在烧相bin的时候会进行解压缩,解压缩后的数据与你直接查看bin文件的数据不一样,可以查看nb0文件对照
点赞  2009-10-9 10:19
实际里面的跟烧之前的不一样吧?
看看MAP文件..
点赞  2009-10-9 16:34
引用: 引用 1 楼 veabol 的回复:
什么形式的BIN文件?eboot.bin?nk.bin?
通过什么方式烧录的?eboot?nboot?
如果是以上方式的话在烧相bin的时候会进行解压缩,解压缩后的数据与你直接查看bin文件的数据不一样,可以查看nb0文件对照

是烧的eboot.bin
点赞  2009-10-9 20:16
不顶不行
点赞  2009-10-10 07:28
引用: 引用 3 楼 jiayiting 的回复:
引用 1 楼 veabol 的回复:
什么形式的BIN文件?eboot.bin?nk.bin?
通过什么方式烧录的?eboot?nboot?
如果是以上方式的话在烧相bin的时候会进行解压缩,解压缩后的数据与你直接查看bin文件的数据不一样,可以查看nb0文件对照

是烧的eboot.bin


你烧的是eboot.bin,实际上存到nand里面的是eboot.nb0文件,bin文件其实就是Nb0文件加了一些头信息,在烧的时候,会被解析成裸文件(nb0)存到nand里面去的。
点赞  2009-10-10 10:00
一般烧到Flash里面是可以直接运行的nb0文件,楼主烧写bin文件是通过什么方式的,可能烧写过程中进行了转换,所以读出来不对。
点赞  2009-10-10 10:30
引用: 引用 5 楼 seven_zhangxw 的回复:
引用 3 楼 jiayiting 的回复:
引用 1 楼 veabol 的回复:
什么形式的BIN文件?eboot.bin?nk.bin?
通过什么方式烧录的?eboot?nboot?
如果是以上方式的话在烧相bin的时候会进行解压缩,解压缩后的数据与你直接查看bin文件的数据不一样,可以查看nb0文件对照

是烧的eboot.bin


你烧的是eboot.bin,实际上存到nand里面的是eboot.nb0文件,bin文件其实就是Nb0文件加了一些头信息,在烧的时候,会被解析成裸文件(nb0)存到nand里面去的。

我该怎么把烧进flash里的bin文件在解析成裸文件nb0之前提取出来,存到flash的另外一块区域呢?我找了一下,似乎是在public-common-oak-drivers-ethdbg-blcommon-blcommon.c这个文件里,但是还是不会弄啊!!!
点赞  2009-10-15 09:07
同意5楼的观点
点赞  2009-10-15 09:37
你可以直接在项目的release目录下找eboot.nb0,或者通过viewbin这个工具来转换。
点赞  2009-10-15 09:38
是否有偏移地址?
点赞  2009-10-15 15:58
是想做EBOOT的备份?

我的EBOOT的main.c中OEMLaunch()函数写EBOOT到FLASH是用的
WriteRawImageToBootMedia(dwImageStart, dwImageLength, dwLaunchAddr)其中dwImageStart, dwImageLength是把eboot.bin解压后也就是原eboot.nb0在内存中的存储位置,可以通过这两个参数把EBOOT存储到另外一个位置
根据我的信息看看你的EBOOT是如何处理的。
点赞  2009-10-15 16:28
引用: 引用 11 楼 veabol 的回复:
是想做EBOOT的备份?

我的EBOOT的main.c中OEMLaunch()函数写EBOOT到FLASH是用的
WriteRawImageToBootMedia(dwImageStart, dwImageLength, dwLaunchAddr)其中dwImageStart, dwImageLength是把eboot.bin解压后也就是原eboot.nb0在内存中的存储位置,可以通过这两个参数把EBOOT存储到另外一个位置
根据我的信息看看你的EBOOT是如何处理的。

我想备份的是eboot.bin而不是eboot.nb0。也就是说,我想把eboot.bin文件烧到flash,在它变成.nb0文件之前,将.bin文件的数据存到flash的另外一块区域!
点赞  2009-10-15 16:47
UP!!!!!!
点赞  2009-10-15 17:11
帮顶,关注
点赞  2009-10-15 23:00
看下blcommon.c调用EBOOT的OEMReadData()函数,这里可以读取下载进去的eboot.bin在内存中的起始地址以及总长度,你再处理一下就行了
点赞  2009-10-16 08:37
UP!
点赞  2009-10-20 16:13
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复