阅读:1404回复:0
MSFLASH 驱动问题
我的平台是PXA270+Wince6.0,64M Intel P30 NOR Flash
为了替代wince5.0下的IPSM软件,我现在想使用MSFALH来将flash剩余容量利用起来,遇到了一些问题,也有一些疑问,请大家帮忙一下。 现在的问题是看不到Norflash的盘符,串口信息提示错误:FSDMGR!MountStore: Failed mounting store "MSFlash"; error=3 我查了很多资料,也参考了前辈大侠们的一些帖子,我现在的做法是: 1、在catolog中加入MSFLASH驱动 2、修改注册表和platform.bib文件。 有几个疑问如下: 1、MSFLASH驱动是否一定要和BINFS文件格式同时使用?我在别的帖子中看到的是:要在bootloader中就将Flash分区和格式化,要加入BINFS的支持。 2、如果一定要在bootloader中将flash分区和格式化,应该如何做呢?能否提供一些参考的代码?我现在的bootloader中的flash 部分,已经实现了FlashWrite,FlashRead,FlashErase这几个函数,请问如何用这几个函数实现分区和格式化呢? 3、对于MS提供的MSFLASH驱动,我查了一些资料,发现似乎不用修改这个驱动,直接使用即可,只需要在注册表中进行正确的设置。请问是这样吗? OEMtable中关于flash的信息如下: IF :DEF: MCPII_MODULE DCD 0x9AA00000, 0x00000000, 64 ; MAINSTONEII: nCS0: MCPII Module Boot Flash (64MB). ELSE DCD 0x9AA00000, 0x04000000, 32 ; MAINSTONEII: nCS1: Secondary flash (32MB). DCD 0x9CA00000, 0x00000000, 32 ; MAINSTONEII: nCS0: Boot Flash (32MB). 我的注册表资料如下: ;HIVE BOOT SECTION IF IMGULDR [HKEY_LOCAL_MACHINE\Drivers\BlockDevice\RAMDisk] "Size"=dword:00800000 ; 8MB ENDIF IMGULDR ; END HIVE BOOT SECTION ; @CESYSGEN ENDIF CE_MODULES_RAMDISK ; HIVE BOOT SECTION ;------------------------------------------------------------- ; MsFlash(Strata Flash Driver) ;------------------------------------------------------------- ; StrataFlash block driver. [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\StrataFMD] "Dll"="stratad.dll" "Order"=dword:2 "Prefix"="DSK" "Ioctl"=dword:4 "Profile"="MSFlash" "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}" "IsPairedFlash"=dword:1 "BlockSize"=dword:40000 "WriteBufferSize"=dword:40 "MemBase"=dword:BCA00000 "MemLen"=dword:100000 ; Support XIP in IMGFS [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash\IMGFS] "XIP"=dword:1 ; Override names in default profile [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash] "Name"="MSFLASH for STRATAFLASH" "Folder"="NOR Flash" [HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\MSFlash] "DriverPath"="Drivers\\BuiltIn\\StrataFMD" ; LoadFlags 0x01 == load synchronously "LoadFlags"=dword:1 "Order"=dword:0 "BootPhase"=dword:0 ; Override names in default profile [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash] "DefaultFileSystem"="FATFS" "PartitionDriver"="mspart.dll" "AutoMount"=dword:1 "AutoPart"=dword:1 "AutoFormat"=dword:1 "BootPhase"=dword:0 "Name"="MSFLASH for STRATAFLASH" "Folder"="Flash" "MountFlags"=dword:2 "MountAsBootable"=dword:1 [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash\FATFS] "FriendlyName"="FAT FileSystem" "Dll"="fatfsd.dll" ;"Flags"=dword:00000024 "Paging"=dword:1 "CacheSize"=dword:0 "EnableCacheWarm"=dword:0 "EnableCache"=dword:1 "MountFlags"=dword:2 ; Valid Bits for Flags registry value ; If no flags are set, the hive will be stored in the object store. ; ; 0x00000001 Start storage manager in boot phase 1 for hive-based registry ; 0x00000002 Start device manager in boot phase 1 for hive-based registry ; 0x00000004 Start storage manager in boot phase 1 for registry in ; external ROM (such as BINFS) ; 0x00000008 Start device manager in boot phase 1 for registry in ; external ROM (such as BINFS) ;[HKEY_LOCAL_MACHINE\init\BootVars] ; "SystemHive"="Documents and Settings\\system.hv" ; "ProfileDir"="Documents and Settings" ; "Start DevMgr"=dword:1 ; "Flags"=dword:3 ; "RegistryFlags"=dword:1 ;[HKEY_LOCAL_MACHINE\init\BootVars] ;"DefaultUser"="default" ; END HIVE BOOT SECTION |
|