pxa270 strata flash驱动和hive注册表保存

来源:互联网 发布:学java买什么书 编辑:程序博客网 时间:2024/06/06 09:19

我使用的平台是pxa270+sm501,bootloader和image存放在strataflash 中,设定为31M,那么剩余的1M空间可以作为存储用,注册表保存。bsp采用微软下载的mainstonIII,自带了strataflash 驱动。不过,好象需要CE5.01以上才能编译通过。所以拷贝CE5.0的public/common/oak/drivers/block/msflashfmd目录下的strata驱动,开始编译,顺便拷贝了fmd.h,编译时候需要这个头文件。设置注册表如下(参考了驱动开发网上的帖子):

; 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:BC900000      ;跳过eboot,params,image 空间
  "MemLen"=dword:100000              ;1M

; 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

这样strataflash驱动被正常加载,CE启动后可以看到Flash文件夹,可以正常读写这个空间。

然后开始加载hive文件系统,添加了hive组建,在CE文档中关于hive有如下描述:

The run-time image originally did not include the hive-based registry, and a full clean build did not complete.

Be sure you complete a clean build after including the Hive-based Registry Catalog item in your OS design.

所以添加hive组建后一定要clean ,build and sysgen

原创粉丝点击