8629|32

61

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

CE6+6410 Nandflash当U盘问题 [复制链接]

平台:S3c6410 + winCE6.0
BSP:三星官方BSP(七月的)

    我要实现的功能是Nandflash当U盘功能,现在把SD卡当U盘是没有问题的,在实现U盘功能时
USB驱动的注册表要给
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
下面的子键DeviceName指定要当U盘的分区名,例如: "DeviceName"="DSK1:"

    问题:我的nandflash挂载起来的盘,并没有DSK3 DSK4这样的标识,在根目录上可以看到
PocketMory 和 PocketMory1 ,在存储管理器中它们的标识为:FDSK PocketMory MLC Disk 和
FDSK1 PocketMory MLC Disk1 ,根本就没有DSK1: DSK2:这样的标识,

PocketMory ---- FDSK PocketMory MLC Disk ---- Part00 *   ----类型0x04
PocketMory1 --- FDSK1 PocketMory MLC Disk1 -- Part00 *   ----类型0x0B  

在Eboot里只分了一个分区是binfs格式的。

所以我不知给 DeviceName 子键指派什么名字好,
试过"DeviceName"="FDSK1"        不成功
    "DeviceName"="PocketMory1"  不成功

我现在想把PocketMory1当作U盘,因为它有700多MB,请各位高手指点迷津。

下面为我现在用的注册表:

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FDSK]
   "Prefix"="DSK"
   "Dll"="ONDisk.dll"
   "Order"=dword:1
;   "Index"=dword:1
   "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
   "Profile"="FDSK"
   "BmlVolumeId"=dword:0        ; BML volume ID = 0
   "BmlPartitionId"=dword:8        ; BML parition ID = PARTITION_ID_FILESYSTEM
   "WMRStartSector"=dword:0
   "WMRNumOfSector"=dword:10000        ; 32MByte
   "ONDSectorShift"=dword:2     ; (512 << 2) : 2K Page

IF IMGHIVEREG
   "Flags"=dword:1000
ENDIF IMGHIVEREG

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FDSK]
    "DefaultFileSystem"="FATFS"
    "PartitionDriver"="mspart.dll"
    "Name"="PocketMory MLC Disk"
;    "Folder"="PocketMory"
    "AutoMount"=dword:1
    "AutoPart"=dword:1
    "AutoFormat"=dword:1
;    "MountFlags"=dword:0
;    "Ioctl"=dword:4

[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\FDSK]
    "DriverPath"="Drivers\\BuiltIn\\FDSK"
    ; LoadFlags 0x01 == load synchronously
    "LoadFlags"=dword:1
    "BootPhase"=dword:1

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FDSK\FATFS]
    "FriendlyName"="PocketMory FAT FileSystem"
    "Flags"=dword:00000014                        ; FATFS_ENABLE_BACKUP_FAT | FATFS_DISABLE_AUTOSCAN
    "Folder"="PocketMory"
    "FormatExfat"=dword:1
;    "EnableCacheWarm"=dword:0
    "CheckForFormat"=dword:1
    "EnableWriteBack"=dword:1
       
    "MountAsRoot"=dword:1                ; for ROM-only file system   
   
    "DisableAutoScan"=dword:1
   
IF IMGHIVEREG
   "MountAsBootable"=dword:1
ENDIF IMGHIVEREG

[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\FDSK\Filters\CacheFilt]
    "Dll"="cachefilt.dll"
    "LockIOBuffers"=dword:1

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FDSK\FATFS\Filters\CacheFilt]
    "Dll"="cachefilt.dll"
    "LockIOBuffers"=dword:1

;----------------------------------------------------------------------------
; 2nd FAT Area
;----------------------------------------------------------------------------

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FDSK1]
   "Prefix"="DSK"
   "Dll"="ONDisk.dll"
   "Order"=dword:1
;   "Index"=dword:1
   "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
   "Profile"="FDSK1"
   "BmlVolumeId"=dword:0                ; BML volume ID = 0
   "BmlPartitionId"=dword:9        ; BML parition ID = PARTITION_ID_FILESYSTEM1
   "WMRStartSector"=dword:10000
   "WMRNumOfSector"=dword:ffffffff        ; last location
   "ONDSectorShift"=dword:2     ; (512 << 2) : 2K Page
   

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FDSK1]
    "DefaultFileSystem"="FATFS"
    "PartitionDriver"="mspart.dll"
    "Name"="PocketMory MLC Disk1"
    "AutoMount"=dword:1
    "AutoPart"=dword:1
    "AutoFormat"=dword:1

[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\FDSK1]
    "DriverPath"="Drivers\\BuiltIn\\FDSK1"
    "LoadFlags"=dword:1
    "BootPhase"=dword:1


[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FDSK1\FATFS]
    "FriendlyName"="PocketMory FAT FileSystem1"
    "Flags"=dword:00000014                        ; FATFS_ENABLE_BACKUP_FAT | FATFS_DISABLE_AUTOSCAN
    "Folder"="PocketMory1"
    "FormatExfat"=dword:1
;    "EnableCacheWarm"=dword:0
    "CheckForFormat"=dword:1
    "EnableWriteBack"=dword:1


[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\FDSK1\Filters\CacheFilt]
    "Dll"="cachefilt.dll"
    "LockIOBuffers"=dword:1

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FDSK1\FATFS\Filters\CacheFilt]
    "Dll"="cachefilt.dll"
    "LockIOBuffers"=dword:1


ENDIF BSP_POCKETMORY
ENDIF BSP_IROM_SDMMC_CH1_BOOT !
ENDIF BSP_IROM_SDMMC_CH0_BOOT !

; END HIVE BOOT SECTION
; @CESYSGEN ENDIF CE_MODULES_FSDMGR
;-------------------------------------------------------------------------

最新回复

我试过了,可以,谢谢flyalice,太感谢你了  详情 回复 发表于 2010-1-19 17:51
点赞 关注

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
修改name和profile键值,不可以嘛?
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
修改成什么?
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
ding
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

5
 
邦顶一下.
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

6
 
谢谢楼上帮顶
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

7
 
把PocketMory 和 PocketMory1修改成你要的名字啊。。。。。。
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

8
 
加index
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

9
 
盼答案
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

10
 
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FDSK1]
  "Index"=dword:3


[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
"DeviceName"="DSK3:"

将这两项registry key value改成上面的应该就是可以
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 9 楼 hahagoodhaha 的回复:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FDSK1]
? "Index"=dword:3


[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
"DeviceName"="DSK3:"

将这两项registry key value改成上面的应该就是可以

我试过这样了,不行呀,要不你亲自试一下?或许我一些细节没注意?
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

12
 
友情帮顶
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

13
 
mark + 帮顶
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

14
 
帮顶
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

15
 
顶起,望高手指点,
个人观点:因为WINCE是用存储管理器进行磁盘管理的,三星的ONDisk.dll驱动是实现Pocketmory的驱动,它的作用是把NAND flash 持载起来并注册到系统,比如注册后会有DSK1: DSK2: DSK3:这样的分区标识,这样USB驱动才能操作它动态加载和卸载,以实现连接USB线到PC时映射U盘的功能。
   现在问题是三星的ONDisk.dll驱动没有实现这个功能,它只实现了mount 给storage manage使得开机后能看到flash 盘符并能操作,却没有在设备管理器里注册(所以没有DSK1,DSK2这样的标识),相信三星后面更新的BSP里,会把这个功能完善,而现在的BSP里,是没有ONDisk.dll驱动的原代码,

以上观点,不知对不对,请在这一块理解得更透的朋友指正。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

16
 
引用 14 楼 ok138ok 的回复:
顶起,望高手指点,
个人观点:因为WINCE是用存储管理器进行磁盘管理的,三星的ONDisk.dll驱动是实现Pocketmory的驱动,它的作用是把NAND flash 持载起来并注册到系统,比如注册后会有DSK1: DSK2: DSK3:这样的分区标识,这样USB驱动才能操作它动态加载和卸载,以实现连接USB线到PC时映射U盘的功能。
? 现在问题是三星的ONDisk.dll驱动没有实现这个功能,它只实现了mount 给storage manage使得开机后能看到flash 盘符并能操作,却没有在设备管理器里注册(所以没有DSK1,DSK2这样的标识),相信三星后面更新的BSP里,会把这个功能完善,而现在的BSP里,是没有ONDisk.dll驱动的原代码,

以上观点,不知对不对,请在这一块理解得更透的朋友指正。

我的BSP还是去年的,但是并不像你说的只实现了mount,虽然我的是CE5.0,楼主的6.0应该也不会这样的问题吧
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

17
 
贴上我的,你自己参考一下吧

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FlashDisk1]
   "Prefix"="DSK"
   "Dll"="ONDisk.dll"
   "Order"=dword:1
   "Index"=dword:1
   "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
   "Profile"="FlashDisk1"
   "BmlVolumeId"=dword:0                ; BML volume ID = 0
   "BmlPartitionId"=dword:8        ; BML parition ID = PARTITION_ID_FILESYSTEM1
   "WMRStartSector"=dword:0
   "WMRNumOfSector"=dword:ffffffff        ; last location
   "Flags"=dword:11000        ; do not load again in boot phase 2        ;

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk1]
    "DefaultFileSystem"="FATFS"
    "PartitionDriver"="mspart.dll"
    "Name"="PocketMory MLC Disk1"
    "Folder"="Storage Card"
    "AutoMount"=dword:1
    "AutoPart"=dword:1
    "AutoFormat"=dword:1
    "MountFlags"=dword:0

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk1\FATFS]
    "FriendlyName"="PocketMory FAT FileSystem1"
    "Dll"="fatfsd.dll"
    "Flags"=dword:00000014                        ; FATFS_ENABLE_BACKUP_FAT | FATFS_DISABLE_AUTOSCAN
    "FormatTfat"=dword:0
    "EnableCacheWarm"=dword:0

内容没有你那么多,不知道有没有关系

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
  "DeviceName"="DSK1:"
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

18
 
十分想要楼主的BSP包.
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(高级)

19
 
学习,帮顶
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

20
 
高人呢?出来指点一下呀,祈祷中。。。。。。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表