Nand Flash 分区只得到一半的容量?

digispy   2008-11-3 03:25 楼主
wince5.0 下
flash是 1G bytes 的,型号K9K8G08U0M
分号区后,我在存储管理器中看到,容量:960M,未分配的:896M,我只分到64M.
问题:
1、怎样我才能将未分配的容量加分出来呢?
2、OS是通过哪个函数分得64M的呢,FMD_ReadSector()?我驱动中读到ID是对的,FMD_GetInfo()中,传给pFlashInfo的也是我注册表中设定的大小啊。
3、我注册表这样写应该没问题吧?
[code]

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\NandFlash]
        "Profile"="FlashSys"
        "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
        "Order"=dword:0
        "FriendlyName"="NandFlash Block driver"
        "Dll"="FlashSYS.dll"
        "Prefix"="DSK"
        "NandStartBlock"=dword:180               
        "BlockNumber"=dword:1e00      
        "QuickFormat"=dword:0
;        "Flags"=dword:1000
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashSys]
        "DefaultFileSystem"="FATFS"
        "MountFlags"=dword:2
        "AutoFormat"=dword:1
        "AutoPart"=dword:1
        "AutoMount"=dword:1
         "PartitionDriver"="mspart.dll"
        "Folder"="SystemData"
        "Name"="NAND FLASH SYSTEM"
;        "Flags"=dword:1000
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashSys\fatfs]

        "MountAsBootable"=dword:1
        "Dll"="fatfsd.dll"

回复评论 (12)

自己顶一下
点赞  2008-11-3 12:56
FMD_GetInfo中要返回

   
    pFlashInfo->flashType = NAND;
    pFlashInfo->dwNumBlocks         = NAND_BLOCK_CNT;
    pFlashInfo->wSectorsPerBlock    = NAND_PAGE_CNT;
    pFlashInfo->wDataBytesPerSector = NAND_PAGE_SIZE;
    pFlashInfo->dwBytesPerBlock     = (pFlashInfo->wSectorsPerBlock * pFlashInfo->wDataBytesPerSector);

每一项你自己好好检查一下

注册表中除了"BytesPerSector"之外,不需要有其他的size信息。
点赞  2008-11-3 14:54
楼主的BSP是标准5.0还是4.2升级到5.0的?如果是4.2就在loader.h改动,标准5.0我就不知道了。我也正在看。

早上就想回你的帖子,今天郁闷,网速爆满,回不了
点赞  2008-11-3 17:24
引用: 引用 1 楼 urbetter 的回复:
自己顶一下


照我的方法做,还是不行吗?我觉得肯定行的
点赞  2008-11-7 15:13
"NandStartBlock"=dword:180
"BlockNumber"=dword:1e00      

你的Block Size是多大?
按这个数字算出来对吗?
点赞  2008-11-8 00:06
引用: 引用 5 楼 hzdysymbol 的回复:
"NandStartBlock"=dword:180
"BlockNumber"=dword:1e00      

你的Block Size是多大?
按这个数字算出来对吗?

-------------怎么我的三星5.0BSP没有这些注册表设置的?4.2的也没有啊。我现在的flash容量好像丢了100M,不知道怎么改回来。
点赞  2008-11-8 08:48
格式化,增加分区不就可以了
点赞  2008-11-10 09:41
引用: 引用 7 楼 xiaopi224 的回复:
格式化,增加分区不就可以了


这个东西估计用eboot好办,但是我的bios是ADS写的。
点赞  2008-11-10 09:44
把剩余的空间再建个分区。
点赞  2008-11-12 18:59
引用: 引用 9 楼 fengwx 的回复:
把剩余的空间再建个分区。


怎么弄,现在我的在5.0下会少了100M,不知道怎么回事。
点赞  2008-11-13 09:00
在存储管理器中新建一个分区,选上使用所有可用空间。
点赞  2008-11-13 13:22
引用: 引用 11 楼 fengwx 的回复:
在存储管理器中新建一个分区,选上使用所有可用空间。

是个方法,不过这样就是要修改微软提供的代码了。我觉得那个FMD驱动应该有检测剩余量的功能的。只是我有些东西没有设置好。
点赞  2008-11-13 14:51
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复