急急急急急急,问题继续中——注册表保存相关,问题多多,求救,问题解决可加分

fayshaw   2008-8-19 17:24 楼主
各位大虾,问题一直未能解决,还请给为帮帮忙啊

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卡上呢?如果可以,注册表要怎么变动?
     

回复评论 (43)

mark下。。。这个问题厉害了。。。等高手来看看
点赞  2008-8-19 17:43
另外:
还想请教一下各位大虾 :我在怀疑是不是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相连接,可是,这些函数的调试信息根本就没有出来啊~~~~~~~~要命的,请大虾帮忙解决以下,谢谢
点赞  2008-8-19 18:00
期待高手的出现
点赞  2008-8-19 18:25
等待中……救命
点赞  2008-8-19 18:26
关注一下。
点赞  2008-8-20 10:10
没有AutoLoad
加这个试试

[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\MSFlash]
    "DriverPath"="Drivers\\BuiltIn\\MSFlash"
    "LoadFlags"=dword:1
    "BootPhase"=dword:0
点赞  2008-8-20 16:06
引用: 引用 6 楼 hhyh612 的回复:
没有AutoLoad
加这个试试

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


我有尝试过添加这段代码,仍然没有nand flash的磁盘系统
请问,这个键的作用是什么呢?
谢谢你^_^
点赞  2008-8-20 16:43
偶完全是个新手,弱弱的问题,还请各位大虾不要见笑啊
点赞  2008-8-20 16:44
那我就不知道了。。这个就是让StorageManager自动加载某个Profile的磁盘
看注释里,你的应该不能用AutoLoad
真的不知道了..
点赞  2008-8-20 16:53
什么注释说明我不可以用AutoLoad呢?不管怎样,还是谢谢你的回答
点赞  2008-8-20 16:57
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.
点赞  2008-8-20 17:06
可以先看一下Device.exe是否成功加载了DSK1设备
点赞  2008-8-20 17:08
期待高手出现。哈哈,还没有研究到那步哦
点赞  2008-8-20 17:10
引用: 引用 12 楼 hhyh612 的回复:
可以先看一下Device.exe是否成功加载了DSK1设备


具体要怎么做呢?

另外,原本的注册表是在一段if--end if中包含着的,我把其从if中拉了出来,应该相当于设置环境变量了吧,编译以后,远程链接终端设备,在activate中没有看到,只有在builtI//driver中看到,如果不拉出,则都看不到这个注册键。
点赞  2008-8-20 18:04
我也马上要遇到这个问题了
点赞  2008-8-20 18:09
有水可以帮我一下么?哪怕讲解一些相关的知识也可以啊,谢谢
点赞  2008-8-21 09:27
期待中……
点赞  2008-8-21 15:10
mark
点赞  2008-8-22 11:49
期待中……
点赞  2008-8-26 11:42
123下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复