这个问题困扰了我好几天了,拜托大家帮帮忙看看是怎么回事了,帖子也看了无数了,但是还是找不到解决办法。
问题的具体情况是这样的,eboot中将nandflash分出了一个BINFS的分区,然后进到系统中可以看到两个分区分别为
1. part00(类型:0x21,文件系统:binfs.dll,标志:0x00000000)
2. part01(类型:0x20,文件系统:BOOT,标志:0x00000000)
两个分区都无法挂载,同时未分配的空间有200多M,将余下的空间分成FATFS格式后可以看到residenflash文件夹,也可以读写,断电后也可以保存。
其类型:0x06,文件系统:fatfs.dll,标志:0x00000010。
但是我想让其自动去挂载这个FAT分区,不用手工的去新建那个分区,同时想将根目录放在fat这个分区下,但是怎样都不行。
看了很多文章,说是要在eboot下将剩余的空间给格式化成fat才行,我在我的eboot中加了一下语句将剩余的空间格式化成fat分区:
hPart = BP_OpenPartition(NEXT_FREE_LOC,USE_REMAINING_SPACE,
PART_DOS32, TRUE, PART_OPEN_ALWAYS);
if(hPart == INVALID_HANDLE_VALUE)
{
OALMSG(OAL_INFO, (TEXT("ERROR: Cannot create FatFS partition!\r\n")));
return FALSE;
}
else
OALMSG(OAL_INFO, (TEXT("INFO: Successfully created FatFS partition.\r\n")));
之后可以看到在flash的属性中多了一个分区part01,其类型0x06,文件系统为:fatfs.dll,标志:0x00000000,但是前面就是没有星号,没有挂载起来,点击mount,显示unable mount,不知道什么原因了,我的注册表设置如下:
; @CESYSGEN ENDIF CE_MODULES_NDIS
;
; NAND driver
;
; HIVE BOOT SECTION
IF BSP_NAND_FMD
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\NAND_Flash]
"Dll"="nandfmd.dll"
"Order"=dword:0
"Prefix"="DSK"
"Ioctl"=dword:4
"Profile"="FlashDisk"
"IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
"FriendlyName"="NAND FLASH Driver"
; "Flags"=dword:1000
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk]
"DefaultFileSystem"="FATFS"
"AutoPart"=dword:1
"AutoMount"=dword:1
"PartitionDriver"="mspart.dll"
"Name"="Microsoft Flash Disk"
"Folder"="ResidentFlash"
"BootPhase"=dword:0
; "Flags"=dword:1000
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk\FATFS]
; Override common setting to enable automatic formatting of unformatted volumes
"MountAsRoot"=dword:1
"Flags"=dword:00000024
"AutoPart"=dword:1
"AutoMount"=dword:1
"AutoFormat"=dword:1
"MountAsBootable"=dword:1
ENDIF
; END HIVE BOOT SECTION
拜托各位高手了,感激不尽啊!!
"Flags"=dword:00000024
-->"Flags"=dword:00000014
引用: 引用 1 楼 guopeixin 的回复:
"Flags"=dword:00000024
-->"Flags"=dword:00000014
这个是起什么作用的呢?我看到有的是24,有的是14,还有我想是否需要在eboot中将剩余的空间给格式化成fat格式的分区呢?
忘了说了是wince5.0,怎么没有人气了,顶上去!
有点麻烦了,呵呵
两个方法
1. 把storage manager的代码移植到bsp下,然后调试fat mount那段代码
2. 或者build一个debug 版的image,从log信息找到出问题的地方
引用: 引用 6 楼 guopeixin 的回复:
有点麻烦了,呵呵
两个方法
1. 把storage manager的代码移植到bsp下,然后调试fat mount那段代码
2. 或者build一个debug 版的image,从log信息找到出问题的地方
非常感谢guopeixin,可是真的是有这样么?没有其他办法么?
引用: 引用 7 楼 giwawe 的回复:
引用 6 楼 guopeixin 的回复:
有点麻烦了,呵呵
两个方法
1. 把storage manager的代码移植到bsp下,然后调试fat mount那段代码
2. 或者build一个debug 版的image,从log信息找到出问题的地方
非常感谢guopeixin,可是真的是有这样么?没有其他办法么?
简单的方法就是抄袭,哈哈
拿着别人公版bsp的相关注册表配置直接粘贴过来,因为从你的描述来看,应该是fat mount出现了问题,而不是partition等出现了问题,所以应该是注册表配置的问题,呵呵,仅供参考
引用: 引用 8 楼 guopeixin 的回复:
引用 7 楼 giwawe 的回复:
引用 6 楼 guopeixin 的回复:
有点麻烦了,呵呵
两个方法
1. 把storage manager的代码移植到bsp下,然后调试fat mount那段代码
2. 或者build一个debug 版的image,从log信息找到出问题的地方
非常感谢guopeixin,可是真的是有这样么?没有其他办法么?
简单的方法就是抄袭,哈哈
拿着别人公版bsp的相关注册表配置直接粘贴过来,因为从你的描述来看,应该是fat mount出现了问题,而不是partition等出现了问题,所以应该是注册表配置的问题,呵呵,仅供参考
我也觉得是mount出了问题,注册表我也尝试过很多种了,但是就是不行。每次clear build都需要40多分钟,太痛苦了。
引用: 引用 9 楼 giwawe 的回复:
引用 8 楼 guopeixin 的回复:
引用 7 楼 giwawe 的回复:
引用 6 楼 guopeixin 的回复:
有点麻烦了,呵呵
两个方法
1. 把storage manager的代码移植到bsp下,然后调试fat mount那段代码
2. 或者build一个debug 版的image,从log信息找到出问题的地方
非常感谢guopeixin,可是真的是有这样么?没有其他办法么?
简单的方法就是抄袭,哈哈
拿着别人公版bsp的相关注册表配置直接粘贴过来,因为从你的描述来看,应该是fat mount出现了问题,而不是partition等出现了问题,所以应该是注册表配置的问题,呵呵,仅供参考
我也觉得是mount出了问题,注册表我也尝试过很多种了,但是就是不行。每次clear build都需要40多分钟,太痛苦了。
那还是仔细的和公版中对比一下,这样来的最快也最简单,等好了,回过头来再查原因吧
引用: 引用 10 楼 guopeixin 的回复:
引用 9 楼 giwawe 的回复:
引用 8 楼 guopeixin 的回复:
引用 7 楼 giwawe 的回复:
引用 6 楼 guopeixin 的回复:
有点麻烦了,呵呵
两个方法
1. 把storage manager的代码移植到bsp下,然后调试fat mount那段代码
2. 或者build一个debug 版的image,从log信息找到出问题的地方
非常感谢guopeixin,可是真的是有这样么?没有其他办法么?
简单的方法就是抄袭,哈哈
拿着别人公版bsp的相关注册表配置直接粘贴过来,因为从你的描述来看,应该是fat mount出现了问题,而不是partition等出现了问题,所以应该是注册表配置的问题,呵呵,仅供参考
我也觉得是mount出了问题,注册表我也尝试过很多种了,但是就是不行。每次clear build都需要40多分钟,太痛苦了。
那还是仔细的和公版中对比一下,这样来的最快也最简单,等好了,回过头来再查原因吧
非常感谢guopeixin的建议,现在先弄wifi部分的东西,等段时间再来弄这个了。