这个问题困扰了我好几天了,拜托大家帮帮忙看看是怎么回事了,帖子也看了无数了,但是还是找不到解决办法。
问题的具体情况是这样的,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
拜托各位高手了,感激不尽啊!!
------解决方案--------------------