WinCE5.0系统加载完之后起不来

standstone   2009-5-22 13:17 楼主
WinCE5.0系统加载完之后,屏幕还显示Logo,采用的是研华的嵌入式主板,Flash芯片采用M-System ,硬件驱动都是研华提供以及BSP, 我采用Hive-based注册表方式,
[code]
[HKEY_LOCAL_MACHINE\init\BootVars]
  "SystemHive"="Documents and Settings\\system.hv"
  "ProfileDir"="Documents and Settings"
  "Flags"=dword:0

[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]
    "FriendlyName"="FAT FileSystem"
    "Dll"="fatfsd.dll"
    "Flags"=dword:00000064
    "Paging"=dword:1
    "EnableCache"=dword:1
    "CacheSize"=dword:0
    "Util"="fatutil.dll"
    "CacheDll"="diskcache.dll"

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\TrueFFS]
    "Dll" = "TrueFFS.dll"
    "Prefix" = "DSK"
    "Index"=dword:0   
    "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
    "Order" = dword:1
    "Ioctl" = dword:4
    "FSD" = "FATFS.DLL"
    "WindowBase" = dword:04000000       
    "Profile" = "TRUEFFS_DOC"
    "AutoFormat" = dword:1
[code]

我怀疑是注册表设置不正确,有可能是其他问题吗,请大家帮忙解决。

回复评论 (16)

自己顶

研华的嵌入式主板,有用过的朋友请帮忙
点赞  2009-5-22 13:30
加入HIVE之前能正常启动吗?
如果可以,那么你加入HIVE 你sysgen了吗

要重新sysgen个系统才行的。
点赞  2009-5-22 13:44
你看一下串口输出的调试信息,是不是没有flash添加驱动之类的?
点赞  2009-5-22 13:45
引用: 引用 2 楼 gooogleman 的回复:
加入HIVE之前能正常启动吗?
如果可以,那么你加入HIVE 你sysgen了吗

要重新sysgen个系统才行的。


我重新sysgen了,我没有尝试过RAM,现在的Hive-based不知道有没有问题?
点赞  2009-5-22 13:48
引用: 引用 3 楼 wqm_44944 的回复:
你看一下串口输出的调试信息,是不是没有flash添加驱动之类的?


你们调试NK,都用的是KITL吗?能简单说明终端要如何设置吗?
点赞  2009-5-22 13:50
先去掉HIVE再尝试比较合适。
点赞  2009-5-22 14:01
但是BSP里面好像设置的依赖关系,如果用RAM方式的话,M-System DiskOnChip显示个红叉

不知道如何加图片?
点赞  2009-5-22 14:13
hive注册表的关键是boot.hv中必须包含flash的驱动,以便最小引导内核能加载flash,从而读取后续的system.hv和user.hv。
在你的BootVar相关表项中没看到flash对应的驱动。
看看调试信息,flash是否被正确加载了。
点赞  2009-5-22 15:06
make
点赞  2009-5-22 17:28
引用: 引用 8 楼 shuiyan 的回复:
hive注册表的关键是boot.hv中必须包含flash的驱动,以便最小引导内核能加载flash,从而读取后续的system.hv和user.hv。
在你的BootVar相关表项中没看到flash对应的驱动。
看看调试信息,flash是否被正确加载了。

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\TrueFFS]
    "Dll" = "TrueFFS.dll"
    "Prefix" = "DSK"
    "Index"=dword:0  
    "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
    "Order" = dword:1
    "Ioctl" = dword:4
    "FSD" = "FATFS.DLL"
    "WindowBase" = dword:04000000
    "Profile" = "TRUEFFS_DOC"
    "AutoFormat" = dword:1

这个应该是Flash的驱动,是M-System

看来必须要调试了,有调试经验的朋友,这种情况能通过KITL调试出来?
还有串口打印,需要如何设置?
点赞  2009-5-22 21:12
再顶一下,没有答案的话也结了
点赞  2009-5-24 21:30
可以先确认EBOOT是否有问题,多添加些打印语句跟踪
然后,看看是否有可能虚拟地址映射有问题?就是OEMAddressTable的设置,我曾经将64M内存升到128M内存,因为没有处理好MMU地址映射,导致系统启动不了;也有可能是SDRAM坏了,对应的地址不能访问(我也遇到过类似的问题)!
点赞  2009-5-24 22:44
引用: 引用 8 楼 shuiyan 的回复:
hive注册表的关键是boot.hv中必须包含flash的驱动,以便最小引导内核能加载flash,从而读取后续的system.hv和user.hv。
在你的BootVar相关表项中没看到flash对应的驱动。
看看调试信息,flash是否被正确加载了。

多加调试是王道啊
点赞  2009-5-25 08:30
hive注册表这样写肯定不正确的

参考一下我们nand保存注册表的设置
   [HKEY_LOCAL_MACHINE\init\BootVars]
    ……
   "Flags"=dword:3           //在启动阶段打开存储管理和设备管理(访问nand的驱动)
   "DefaultUser"="default"
   "RegistryFlags"=dword:1    // Enables aggressive flushing 主动刷新注册表

另外注意一下MountAsRoot、MountAsBootable等注册表项
点赞  2009-5-25 08:51
引用: 引用 10 楼 AlexChan1981 的回复:
引用 8 楼 shuiyan 的回复:
hive注册表的关键是boot.hv中必须包含flash的驱动,以便最小引导内核能加载flash,从而读取后续的system.hv和user.hv。
在你的BootVar相关表项中没看到flash对应的驱动。
看看调试信息,flash是否被正确加载了。

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\TrueFFS]
    "Dll" = "TrueFFS.dll"
    "Prefix" = "DSK"
    "Index"=dword:0  
    "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D…


建议你先看看研华的嵌入式主板,他的wince5.0是不是可以支持doc的hive功能。

另,你可以先去掉hive功能,看看系统起来后能否找到存储设备,因为有很多情况都是没有hive情况下起来,就没有找到存储设备。
点赞  2009-5-25 08:58
呵呵
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\TrueFFS]
    "Dll" = "TrueFFS.dll"
    "Prefix" = "DSK"
    "Index"=dword:0  
    "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
    "Order" = dword:1
    "Ioctl" = dword:4
    "FSD" = "FATFS.DLL"
    "WindowBase" = dword:04000000
    "Profile" = "TRUEFFS_DOC"
    "AutoFormat" = dword:1

那个只是你的Flash的驱动注册表。。但是你有把你的flash驱动load到里面去吗?

[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\TrueFFS]
这个注册表键值呢
点赞  2009-5-25 09:13
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复