如何样才能使bootloader支持binfs
发布时间:2010-06-13 22:23:27 文章来源:www.iduyao.cn 采编人员:星星草
怎么样才能使bootloader支持binfs?
最近想搞multi bin后来发现我的bootloader是优龙的,不支持binfs分区格式化,
我想把eboot下的代码移植过来,应该可以的。
但是我对则个binfs有点疑惑。按照道理说,binfs是针对nk.bin的,但是我们下载的时候却是nk.nb0,有些人下载nk.bin,但是下载完还是要解压成nk.nb0的。
我想问,binfs是怎么和nk.nb0联系起来的?
请大家指点。
这个问题还是有点意思的。
------解决方案--------------------
下载的时候是bin啊,下载的过程中解压的。
------解决方案--------------------
nk.bin是烧写到NAND,是有压缩的,ce启动后将其解压到RAM里,这时RAM里与nk.nb0其实是一样的。
调试当中,有更改时不必要每次都烧写到NAND,build后通过usb将nk.nb0下载到RAM里执行,就可看到运行结果。
都没问题了,再将nk.bin烧写到NAND里。对我来说,nk.nb0只在调试时有用。
理论上如果NOR足够大,就可以直接下载nk.nb0到NOR,而且程序可以在NOR里运行,节省了RAM。
如果是用nk.nb0不用解压缩就可直接执行,如果是nk.bin就需要解压缩后才能执行。所以binfs跟是不用nk.bin,还是nk.nb0是没关系的。
在下载nk.bin的eboot里就有个FORMAT BINFS命令,将NAND格式成binfs,后面就是驱动要识别的问题。
你如果想实现binfs的话,一个办法是按照网上binfs实现方法的文章去改你的bsp。
还有就是找个别的开发板的已实现binfs的bsp试试。
------解决方案--------------------
移植 Windows CE 里面的 BootPart 驱动到 Bootloader 就行了。
------解决方案--------------------
2. binfs
binfs是微软设计的一套文件系统,主要是为了解决非XIP存储设备上,操作系统镜像的加载会导致RAM大量浪费的问题。
跑WINCE的肯定都是带SDRAM的,即使NOR支持XIP,也不会在NOR上跑,速度太慢。更别提NAND或者硬盘了,非线性寻址的,都必须将系统镜像加载到SDRAM,然后跳转到SDRAM继续执行。而系统镜像多大?10多MB,20多MB,40多MB的都有,而SDRAM呢?很痛苦的。
binfs就是给镜像中的每个单独文件一个定位坐标。就是将系统镜像的实际数据分成n个小块,每个小块占一定的基本空间(按byte算),每个文件、dll、lib、程序放置的位置,在PB编译后就确定了。系统加载时,就找到需要加载的文件在flash中存放的位置,单独读出该文件加载,而不需要将整个镜像都读到sdram了。
这个作用有点类似fat的文件表了,需要哪个读哪个,不需要的就不动。不过在eboot中不采用fat,难道是因为fat对空间浪费很大吗?
------解决方案--------------------
不是我们不想帮你,而是实在没有精力来研究你的贴子,看代码研究问题也很费时间的
给你一个思路:
1. 在bootloader中按正常的FAT格式格式化Image的分区
2. 读出这个分区的分区表,也就是第一个Sector,这个应该不能叫MBR,但CE里的代码是叫CreateMBR
3. 修改这个分区表的标志位成BINFS,记下分区的起始Sector,查一下PPARTENTRY结构体
4. 把生成出来的xip.bin文件烧到从起始Sector开始的位置
在开机的时候只需要读出前面XIPKernel大小的Image,然后跳转到相应的地址就OK了
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
管道的另一端上无任何进程
我写了一个程序,运行正常。
后来,用上了sqlite数据库,然后编译部署都正常,但在WINCE 6模拟器上不能自动运...
-
Power键点亮屏幕的问题
我在程序里面成队使用了:
PowerPolicyNotify(PPN_UNATTENDEDMODE,TRUE);
PowerPolicyNotify(PPN_UNATTEND...
-
求助一个问题:windowsmobile ipl读分区的问题
ipl通过 BP_ReadData读 ramimage 分区信息 读取的时候发现必须要偏移0xc800才能读正...
-
vs2005+DevEmul_SDK.msi后仍旧没有“armv4”选项
OS:win7
IDE:先前有装vs2010做winForm,后装了vs2005(完全安装)
装完后安装了DevEmu...
-
Win7 64位操作系统如何安装arm9开发板的usb下载驱动啊
按照教程操作,超级终端打开也连上了,但是系统貌似对SECBULK.sys SECBULK.inf...
-
嵌入式开发工具
谁用过 LAZARUS 开发过嵌入式系统 ?
------解决方案--------------------
Lazarus 做 PC 上的程序,做嵌入式可能...
-
请推荐几个wince游戏软件下载的地方
最近开始玩wince,请推荐几个好的地方,可以下载游戏,软件的.多谢拉!
------解决方案--------...
-
FAT32 与单片机
根目录下文件与目录项数从那里得
还有根目录的下一簇从哪得
不是说根目录也是一个文件吗 它的目录项在哪里
---...
-
谁可以推荐一个WinCE下的视频播放器,最好可以播放AVI、RMVB、MP3等格式,谢谢。
如题,
麻烦大家推荐一个WinCE5.0下的视频播放器,
-...
-
WinCE6的BinFS问题,100分求解
1、BinFS能不能做在IDE硬盘上?
2、要支持BinFS,bootloader要做甚?
3、BinFS能不能作为一个普通文件放到...