|
有几个问题向大家请教下。。
1)我通过在UBOOT下用BOOTPART LIB给NAND FLASH分区,前40M格式化为BINFS,后面的部分都格式化FAT格式。如果我有一个BIN文件需要通过BINFS文件系统来访问,那么我往BINFS分区写数据的时候是直接写入XXX.BIN文件,还是经过解释后的XXX.NB0文件?通过查看EBOOT的源码,我的猜测是应该写入XXX.NB0文件,XXX.BIN文件通过EBOOT下载后转为了NB0文件。
2)我采用单个BIN的时候直接下载NB0文件到固定的地址,整个系统能够正常跑起来。为了测试多个BIN的情形,我的config.bin做了如下修改:
NK 8C200000 02300000 RAMIMAGE
CHAIN 8E500000 100000 RESERVED
KK 8E600000 100000 NANDIMAGE
RAM 8E600000 01600000 RAM
pdwXIPLoc 00000000 8E500000 FIXUPVAR
我多加了KK镜像文件,里面只包含了一个文件cdc-acm.dll文件,其它所有的东西还是在NK里面。注册表也加入对BINFS的支持
[HKEY_LOCAL_MACHINE\System\StorageManager\PartitionTable]
"21"="BINFS"
[HKEY_LOCAL_MACHINE\System\StorageManager\BINFS]
"Folder"="BINFS"
"FriendlyName"="Bin FileSystem"
"Dll"="binfs.dll"
"Paging"=dword:1
"MountAsROM"=dword:1
"MountHidden"=dword:0
然后我把KK.NB0文件写入BINFS分区,加载NK.NB0,CHAIN.NB0到固定的地址上,跳转过去执行。整个系统能够起来,但是无法在/WINDOWS目录下看到cdc-acm.dll 文件。
在存储管理器里面能够看到系统已经识别到了2个分区,BINFS分区和FAT分区。但是BINFS没有被挂载,只有FAT分区挂载了。我手动去挂载BINFS分区,提示无法载入分区。还有我没有采用
HIVE注册表(不知道这个是否会有影响)
下面是我NAND FALSH的注册表
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FlashDrv]
"Prefix"="DSK"
"Dll"="FLASHDRV.dll"
; "FSD"="FATFS.DLL"
"Order"=dword:2
"Ioctl"=dword:4
"Profile"="FlashDrv"
"FriendlyName"="MS Flash Driver"
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDrv]
"Folder"="NandFlash"
"Name"="Nand Flash Disk"
"DefaultFileSystem"="BINFS"
"PartitionDriver"="mspart.dll"
"AutoMount"=dword:1
"AutoPart"=dword:1
; "AutoFormat"=dword:1
3)是否能够挂载BINFS分区到一个目录下,通过设置"MountHidden"=dword:0,让用户可见。我查询了相关资料,发现有的说可以,有的说不可以。
|
|