引用: 引用 19 楼 veabol 的回复:
没改过,我的是BSP直接支持的。

请问你用的是三星的平台吗? 如果是,应该都是官方的代码。。
点赞  2009-11-26 18:12
我是三星的BSP,不过是2450的BSP
点赞  2009-11-26 21:03
引用: 引用楼主 meifenxiazai 的回复:
各位大虾:

我的平台是wince5.0 +2440

打算用Flash做U盘,在FLASH的部分注册表如下:
IF BSP_NONANDFS !

[HKEY_LOCAL_MACHINE\init\BootVars]
"SystemHive"="ResidentFlash\\system.hv"
"ProfileDir"="ResidentFlash"
"Flags"=dword:3
"DefaultUser"="default"
"RegistryFlags"=dword:1?
"Start DevMgr"=dword:1

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SMFLASH]
? ? "DefaultFileSystem"="BINFS"
? ? "AutoPart"=dword:1
? ? "AutoMount"=dword:1
? ? "PartitionDriver"="mspart.dll"
? ? "Name"="Microsoft Flash Disk"
? ? "Folder"="ResidentFlash"
? ? "BootPhase"=dword:0
"MountAsBootable"=dword:0
"Flags"=dword:1000

; Keep FATFS from trying to shadow \Windows
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SMFLASH\FATFS]
? ? "Flags"=dword:14
? ? "FormatTfat"=dword:1
? ? "CheckForFormat"=dword:1
? ?
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SMFLASH]
? ? "Prefix"="DSK"
? ? "Dll"="smflash.dll"
? ? "Index"=dword:2
? ? "Order"=dword:0
    "Profile"="DSK"
? ? "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"


[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]
? ? "Flags"=dword:00000014 ;FATFS_TFAT_ALWAYS|FATFS_FORCE_TFAT
? ? "MountFlags"=dword:1
? ?
[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\SMFLASH]
? ? "DriverPath"="Drivers\\BuiltIn\\SMFLASH"
? ? "LoadFlags"=dword:1
? ? "BootPhase"=dword:0



ENDIF ; BSP_NONANDFS


USB的配置信息如下:
IF BSP_KITL != USBSERIAL
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SC2440USBFN]
? "Dll"="sc2440usbfn.dll"
? "Prefix"="UFN"
? "Priority256"=dword:64
? "IoBase"=dword:B1200000
? "IoLen"=dword:1000? ? ? ? ; Use one page
? "Irq"=dword:19
? "BusIoctl"=dword:2a0048
? "IClass"=multi_sz:"{E2BDC372-598F-4619-BC50-54B3F7848D35}=%b","{6F40791D-300E-44E4-BC38-E0E63CA8375C}=%b"

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
? "DefaultClientDriver"=- ; erase previous default
? "DefaultClientDriver"="Mass_Storage_Class"

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
"Dll"="usbmsfn.dll"
"InterfaceSubClass"=dword:06
"InterfaceProtocol"=dword:50
"DeviceName"="DSK2:"
"FriendlyName"="Mass Storage"
"idVendor"=dword:045E
"Manufacturer"="Generic Manufacturer (PROTOTYPE--Remember to change idVendor)"
"idProduct"=dword:FFFF
"Product"="Generic Mass Storage (PROTOTYPE--Remember to change idVendor)"
"bcdDevice"=dword:0

使用DEbug版本打印出信息是无法打开设备:
0x83d04000: UsbMsFn!STORE_Init: DeviceName = DSK2:
0x83d04000: UsbMsFn!STORE_Init: Removable = 1
0x83d04000: UsbMsFn!STORE_Init: failed to open store DSK2:; error = 4319

// error = 4319? 设备没有就绪

请大家支歌招阿 多谢了。


从你的帖子中发现几个问题,有说得不正确的地方还请大家指正:
1."Profile"="DSK",应该改为"Profile"="SMFLASH"吧
2.[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\SMFLASH],这种加载方式是由存储管理器来加载,而不是设备管理器加载,所以设备名不会是你所期望的DSK2。
3.在USB的注册表中,配置为DeviceName"="DSK2:"
但根本就不存在DSK2,所以open store DSK2:就会fail.
点赞  2009-11-27 00:04
引用: 引用 22 楼 flyalice 的回复:
引用楼主 meifenxiazai 的回复:
各位大虾:

我的平台是wince5.0 +2440

打算用Flash做U盘,在FLASH的部分注册表如下:
IF BSP_NONANDFS !

[HKEY_LOCAL_MACHINE\init\BootVars]
"SystemHive"="ResidentFlash\\system.hv"
"ProfileDir"="ResidentFlash"
"Flags"=dword:3
"DefaultUser"="default"
"RegistryFlags"=dword:1?
"Start DevMgr"=dword:1

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SMFLASH]
? ? "DefaultFileSystem"="BINFS"
? ? "AutoPart"=dword:1
? ? "AutoMount"=dword:1
? ? "PartitionDriver"="mspart.dll"
? ? "Name"="Microsoft Flash Disk"
? ? "Folder"="ResidentFlash"
? ? "BootPhase"=dword:0
"MountAsBootable"=dword:0
"Flags"=dword:1000

; Keep FATFS from trying to shadow \Windows
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SMFLASH\FATFS]
? ? "Flags"=dword:14
? ? "FormatTfat"=dword:1
? ? "CheckForFormat"=dword:1
? ?
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SMFLASH]
? ? "Prefix"="DSK"
? ? "Dll"="smflash.dll"
? ? "Index"=dword:2
? ? "Order"=dword:0
? ? "Profile"="DSK"
? ? "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"


[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]
? ? "Flags"=dword:00000014 ;FATFS_TFAT_ALWAYS|FATFS_FORCE_TFAT
? ? "MountFlags"=dword:1
? ?
[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\SMFLASH]
? ? "DriverPath"="Drivers\\BuiltIn\\SMFLASH"
? ? "LoadFlags"=dword:1
? ? "BootPhase"=dword:0


ENDIF ; BSP_NONANDFS


USB的配置信息如下:
IF BSP_KITL != USBSERIAL
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SC2440USBFN]
? "Dll"="sc2440usbfn.dll"
? "Prefix"="UFN"
? "Priority256"=dword:64
? "IoBase"=dword:B1200000
? "IoLen"=dword:1000? ? ? ? ; Use one page
? "Irq"=dword:19
? "BusIoctl"=dword:2a0048
? "IClass"=multi_sz:"{E2BDC372-598F-4619-BC50-54B3F7848D35}=%b","{6F40791D-300E-44E4-BC38-E0E63CA8375C}=%b"

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
? "DefaultClientDriver"=- ; erase previous default
? "DefaultClientDriver"="Mass_Storage_Class"

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
"Dll"="usbmsfn.dll"
"InterfaceSubClass"=dword:06
"InterfaceProtocol"=dword:50
"DeviceName"="DSK2:"
"FriendlyName"="Mass Storage"
"idVendor"=dword:045E
"Manufacturer"="Generic Manufacturer (PROTOTYPE--Remember to change idVendor)"
"idProduct"=dword:FFFF
"Product"="Generic Mass Storage (PROTOTYPE--Remember to change idVendor)"
"bcdDevice"=dword:0

使用DEbug版本打印出信息是无法打开设备:
0x83d04000: UsbMsFn!STORE_Init: DeviceName = DSK2:
0x83d04000: UsbMsFn!STORE_Init: Removable = 1
0x83d04000: UsbMsFn!STORE_Init: failed to open store DSK2:; error = 4319

// error = 4319? 设备没有就绪

请大家支歌招阿 多谢了。




从你的帖子中发现几个问题,有说得不正确的地方还请大家指正:
1."Profile"="DSK",应该改为"Profile"="SMFLASH"吧
2.[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\SMFLASH],这种加载方式是由存储管理器来加载,而不是设备管理器加载,所以设备名不会是你所期望的DSK2。
3.在USB的注册表中,配置为DeviceName"="DSK2:"
但根本就不存在DSK2,所以open store DSK2:就会fail.

对,storage manager加载的块驱动存在改问题,这也是很多人用cetk测试块驱动的时候始终失败的原因
点赞  2009-11-27 09:26
to 楼上的诸位大虾:

多谢大家的指点,

2.[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\SMFLASH],这种加载方式是由存储管理器来加载,而不是设备管理器加载,所以设备名不会是你所期望的DSK2。

这个确实如此,请教下大家:
不由存储管理器来加载,由设备管理器加载,该怎么处理呢 ?



点赞  2009-11-27 09:42
鄙视下自己:

竟然没注意这个信息:
FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x0!!

继续追下,多谢大家的帮助了。
点赞  2009-11-27 10:15
自己顶下,我是一只大菜鸟。。。。
点赞  2009-11-27 11:11
引用: 引用 24 楼 meifenxiazai 的回复:
to 楼上的诸位大虾:

多谢大家的指点,

2.[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\SMFLASH],这种加载方式是由存储管理器来加载,而不是设备管理器加载,所以设备名不会是你所期望的DSK2。

这个确实如此,请教下大家:
不由存储管理器来加载,由设备管理器加载,该怎么处理呢 ?


修改注册表:
把[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\SMFLASH]
    "DriverPath"="Drivers\\BuiltIn\\SMFLASH"
    "LoadFlags"=dword:1
    "BootPhase"=dword:0
去掉即可。
设备管理器在遍历到[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SMFLASH]时就会加载对应的smflash.dll。

不知道你Flash上有几个分区。是不是BinFS和FAT32分区使用同一个smflash.dll。这样改的话,或许会造成BinFS分区访问不正常。
点赞  2009-12-1 13:11
还没有解决吗?我的可以了!现在问题在那呢》》
点赞  2009-12-1 14:56
引用: 引用 27 楼 flyalice 的回复:
引用 24 楼 meifenxiazai 的回复:
to 楼上的诸位大虾:

多谢大家的指点,

2.[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\SMFLASH],这种加载方式是由存储管理器来加载,而不是设备管理器加载,所以设备名不会是你所期望的DSK2。

这个确实如此,请教下大家:
不由存储管理器来加载,由设备管理器加载,该怎么处理呢 ?




修改注册表:
把[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\SMFLASH]
? ? "DriverPath"="Drivers\\BuiltIn\\SMFLASH"
? ? "LoadFlags"=dword:1
? ? "BootPhase"=dword:0
去掉即可。
设备管理器在遍历到[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SMFLASH]时就会加载对应的smflash.dll。

不知道你Flash上有几个分区。是不是BinFS和FAT32分区使用同一个smflash.dll。这样改的话,或许会造成BinFS分区访问不正常。


是同一个,所以还是不行。呵呵 继续努力中。
  
xuefeng_baggio 你不是COOLbad公司的吧 ,也弄个天道酬勤。。。。
点赞  2009-12-2 09:55
引用: 引用 29 楼 meifenxiazai 的回复:
引用 27 楼 flyalice 的回复:
引用 24 楼 meifenxiazai 的回复:
to 楼上的诸位大虾:

多谢大家的指点,

2.[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\SMFLASH],这种加载方式是由存储管理器来加载,而不是设备管理器加载,所以设备名不会是你所期望的DSK2。

这个确实如此,请教下大家:
不由存储管理器来加载,由设备管理器加载,该怎么处理呢 ?


修改注册表:
把[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\SMFLASH]
? ? "DriverPath"="Drivers\\BuiltIn\\SMFLASH"
? ? "LoadFlags"=dword:1
? ? "BootPhase"=dword:0
去掉即可。
设备管理器在遍历到[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SMFLASH]时就会加载对应的smflash.dll。

不知道你Flash上有几个分区。是不是BinFS和FAT32分区使用同一个smflash.dll。这样改的话,或许会造成BinFS分区访问不正常。


是同一个,所以还是不行。呵呵 继续努力中。
?
xuefeng_baggio 你不是COOLbad公司的吧 ,也弄个天道酬勤。。。。

呵呵 那是个什么公司准备明年去那!帮我介绍下呀!呵呵!
点赞  2009-12-3 09:30
我也遇到相同问题了, 我来试试
点赞  2009-12-3 09:51
解决了??
点赞  2009-12-22 10:50
是放弃了,呵呵 还有别的事,放着先做别的。
点赞  2009-12-22 12:02
这个2440 下我以前试过是可以的啊,就是修改dsk 的值
如果对linux,Android,wince 等嵌入式底层有兴趣的,请加这个QQ群吧,群号:27100460
点赞  2013-12-17 15:11
12
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复