急急急急急急,问题继续中——注册表保存相关,问题多多,求救,问题解决可加分
各位大虾,问题一直未能解决,还请给为帮帮忙啊
1. 目的:利用剩余的nand flash空间、实现注册表保存功能。希望nand flash的剩余磁盘空间以磁盘形式显示,可以方便用户用来保存数据等。
2. 硬件使用:Marvell PXA310(PXA310 VF-BGA-416pin 624MHz MCP、NAND 256MB、DDR SDRAM 128MB)
3. 开发环境:wince 6.0 + vs2005
4. Memory Map(comfig.bib):
;* RAM Layout: Nand boot; non IU
;* ------------------------------
;* --------------------------------------> 8400_0000
;* | Display for ULDR UI | --------------------------------------> 83D0_0000
;* --------------------------------------> 83CC_7000 | EBT RAMIMAGE (1MB) |
;* | | --------------------------------------> 83C0_0000
;* | | | EBT/IPL Stack (1MB) |
;* | | --------------------------------------> 83B0_0000
;* | | | EBT/IPL RAM (1MB-16KB) |
;* | | --------------------------------------> 83A0_4000
;* | | | EBT Pagetables (16KB) |
;* | | --------------------------------------> 83A0_0000
;* | | | IPL RAMIMAGE (1MB) |
;* | | | |
;* | | --------------------------------------> 8390_0000
;* | | | |
;* | OS RAM | -------------------------------------->
;* | |
;* | |
;* | |
;* | |
;* | |
;* | |
;* | |
;* | |
;* | |
;* | |
;* |-------------------------------| *autosize can alter the start
;* | NK RAMIMAGE |
;* | |
;* --------------------------------------> 8000_1000
;* | |
;* | EBT ARGS(4K) |
;* --------------------------------------> 8000_0000
5. nand flash相关注册表(platform.reg):
; HIVE BOOT SECTION
; Use AutoLoad\MSFlash will result in flash driver loaded in FileSys process.
; However our flash driver depends on GIO device driver so we should not use
; this possibility. Scenario with flash driver loaded to FileSys process can
; have small performance advantages.
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash]
"DriverPath"="Drivers\\BuiltIn\\MSFlash"
"LoadFlags"=dword:1
"BootPhase"=dword:0
"Order"=dword:2
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash\IMGFS]
"MountHidden"=dword:1
"MountAsROM"=dword:1
"XIP"=dword:0
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash\FATFS]
"MountAsBootable"=dword:1
"MountAsRoot"=dword:1
"Flags"=dword:00000014
"FormatTFAT"=dword:1
"EnableWriteBack"=dword:1
"CheckForFormat"=dword:1
"Util"="fatutil.dll"
; @CESYSGEN IF CE_MODULES_FSREPLXFILT
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash\FATFS\Filters\fsreplxfilt]
"Dll"="fsreplxfilt.dll"
"Order"=dword:1 ; must be loaded before other filters
; @CESYSGEN ENDIF CE_MODULES_FSREPLXFILT
; END HIVE BOOT SECTION
IF BSP_NONAND !
; HIVE BOOT SECTION
;[HKEY_LOCAL_MACHINE\System\StorageManager\IMGFS]
; "CompressionType"="XPR"
; "CompressionDll"="cecompr.dll"
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MSFlash]
"Prefix"="DSK"
"Dll"="NandFlsh.DLL"
"Index"=dword:1
"Order"=dword:1 ; Must follow the MFP
"IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
"Profile"="MSFlash"
; END HIVE BOOT SECTION
ENDIF BSP_NONAND !
6. 相关问题:
1). storage manage 中,无法找到nand flash的磁盘项
2). 应该是基于问题1的原因,nand flash盘符显示无法实现,hive-based注册表保存不成功
3). 根据config.bib配置文件,文件系统应该是FATFS还是BINFS?或者说,如何判断、选择文件系统类型。
4). 如果没有实现注册保存功能,我应该如何使得断电后,校正的数据不丢失。现在的想法是:自动运行程序修改注册表,可是修改不能立即生效,触摸屏校正数据没有用啊
5). 我是否可以保注册表保存在SD卡上呢?如果可以,注册表要怎么变动?
另外:
还想请教一下各位大虾 :我在怀疑是不是bsp自带的NandFlsh.DLL驱动有问题,该驱动是由一个空的项目生成的,以下是其资源文件
TARGETNAME=NANDFLSH
TARGETTYPE=DYNLINK
RELEASETYPE=PLATFORM
SYNCHRONIZE_DRAIN=1
DEFFILE=NANDFLSH.DEF
DLLENTRY=_DllMainCRTStartup
TARGETLIBS=\
$(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\nandfmd.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\sandgate_xllp.lib\
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\flsnandlib.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ceddk.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\ipm_api_pxa3xx.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\runtime_context_drvapp_stub_pxa3xx.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\ipm_api_pxa3xx.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\fal.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\nandflash.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\ost_pxa3xx.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\dma_sandgate.lib
WINCETARGETFILE=dummy
在相关代码中,没有找到与nand flash相关的DSK_XXXX相关函数,有人说是在fal.lib中的,微软的驱动架构会自动链接到fal.lib中的那些函数,进一步与bsp包中的nand flash相关的FMD_XXXX相连接,可是,这些函数的调试信息根本就没有出来啊~~~~~~~~要命的,请大虾帮忙解决以下,谢谢
没有AutoLoad
加这个试试
[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\MSFlash]
"DriverPath"="Drivers\\BuiltIn\\MSFlash"
"LoadFlags"=dword:1
"BootPhase"=dword:0
引用: 引用 6 楼 hhyh612 的回复:
没有AutoLoad
加这个试试
[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\MSFlash]
"DriverPath"="Drivers\\BuiltIn\\MSFlash"
"LoadFlags"=dword:1
"BootPhase"=dword:0
我有尝试过添加这段代码,仍然没有nand flash的磁盘系统
请问,这个键的作用是什么呢?
谢谢你^_^
偶完全是个新手,弱弱的问题,还请各位大虾不要见笑啊
那我就不知道了。。这个就是让StorageManager自动加载某个Profile的磁盘
看注释里,你的应该不能用AutoLoad
真的不知道了..
什么注释说明我不可以用AutoLoad呢?不管怎样,还是谢谢你的回答
5. nand flash相关注册表(platform.reg):
; HIVE BOOT SECTION
; Use AutoLoad\MSFlash will result in flash driver loaded in FileSys process.
; However our flash driver depends on GIO device driver so we should not use
; this possibility. Scenario with flash driver loaded to FileSys process can
; have small performance advantages.
可以先看一下Device.exe是否成功加载了DSK1设备
引用: 引用 12 楼 hhyh612 的回复:
可以先看一下Device.exe是否成功加载了DSK1设备
具体要怎么做呢?
另外,原本的注册表是在一段if--end if中包含着的,我把其从if中拉了出来,应该相当于设置环境变量了吧,编译以后,远程链接终端设备,在activate中没有看到,只有在builtI//driver中看到,如果不拉出,则都看不到这个注册键。
有水可以帮我一下么?哪怕讲解一些相关的知识也可以啊,谢谢