Hive-based Registry 黑屏问题

asinc   2009-4-1 17:49 楼主
PB5.0
使用Hive-based Registry功能后系统启动后出现黑屏。
目前情况:已经确定系统能够启动,且启动后按键、USB等都可以使用,屏幕是黑的,看不到WINCE的桌面内容,但是用作USB SERIAL的时候能够跳出连接的对话框(说明LCD是工作正常的),通过触摸屏拖拉这个对话框窗口的时候会在原位置残留影象。
另外,通过远程注册表更改后的注册表内容掉电后重新上电是仍然存在的,证明Hive-based Registry也已经实现了。
问题是为什么会黑屏呢?看样子貌似是没有启动explorer.exe,但是又不知道怎么确定一下,(使用远程进程查看器看不到内容,以前用这个工具也看不到内容)。
希望高手帮忙解答一下,谢谢!
我的platform.reg内容如下:

; HIVE BOOT SECTION
[HKEY_LOCAL_MACHINE\init\BootVars]
  "SYSTEMHIVE"="\\System\\system.hv"
  "PROFILEDIR"="\\System"
  "DefaultUser"="default"
  "Flags"=dword:3
  "RegistryFlags"=dword:1

[HKEY_LOCAL_MACHINE\Drivers\Resources\IRQ]
   "Identifier"=dword:1
   "Minimum"=dword:1
   "Space"=dword:20
   "Ranges"="1-0x20"
;  "Shared"=""
   ;"Flags"=dword:1000          ;这里加不加似乎没什么影响

[HKEY_LOCAL_MACHINE\Drivers\Resources\IO]
   "Identifier"=dword:2
   "Minimum"=dword:0
   "Space"=dword:10000
   "Ranges"="0-0xFFFF"
   ;"Flags"=dword:1000          ;这里加不加似乎没什么影响

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

IF BSP_POCKETMORY

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FlashDisk]
   "Prefix"="DSK"
   "Dll"="ONDisk.dll"
   "Order"=dword:0
   "Index"=dword:1
   "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
   "Profile"="FlashDisk"
   "BmlVolumeId"=dword:0        ; BML volume ID = 0
   "BmlPartitionId"=dword:8        ; BML parition ID = PARTITION_ID_FILESYSTEM
   "WMRStartSector"=dword:0
   "WMRNumOfSector"=dword:8000        ; 16MByte
  ; "Flags"=dword:11000        ; do not load again in boot phase 2        ;
   "Flags"=dword:1000        ; do not load again in boot phase 2        ;
   "MountAsBootable"=dword:1
   "Flags"=dword:1000

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk]
    "DefaultFileSystem"="FATFS"
    "PartitionDriver"="mspart.dll"
    "Name"="PocketMory MLC Disk"
    "Folder"="System"
    "AutoMount"=dword:1
    "AutoPart"=dword:1
    "AutoFormat"=dword:1
    ;"MountFlags"=dword:0
    ;"MountFlags"=dword:2 ;unmask this line when enable HIVE
    "MountAsBootable"=dword:1
;    "Ioctl"=dword:4

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk\FATFS]
    "FriendlyName"="PocketMory FAT FileSystem"
    "Dll"="fatfsd.dll"
    "Flags"=dword:00000014                        ; FATFS_ENABLE_BACKUP_FAT | FATFS_DISABLE_AUTOSCAN
    "FormatTfat"=dword:1
    "EnableCacheWarm"=dword:0
    "MountAsBootable"=dword:1

;----------------------------------------------------------------------------
; 2nd FAT Area
;----------------------------------------------------------------------------
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FlashDisk1]
   "Prefix"="DSK"
   "Dll"="ONDisk.dll"
   "Order"=dword:0
   "Index"=dword:2
   "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
   "Profile"="FlashDisk1"
   "BmlVolumeId"=dword:0        ; BML volume ID = 0
   "BmlPartitionId"=dword:8        ; BML parition ID = PARTITION_ID_FILESYSTEM
   "WMRStartSector"=dword:0
   "WMRNumOfSector"=dword:40000        ; 128MByte
   "Flags"=dword:11000        ; do not load again in boot phase 2        ;

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk1]
    "DefaultFileSystem"="FATFS"
    "PartitionDriver"="mspart.dll"
    "Name"="PocketMory MLC Disk1"
    "Folder"="DataFolder"
    "AutoMount"=dword:1
    "AutoPart"=dword:1
    "AutoFormat"=dword:1
    ;"MountFlags"=dword:0
    ;"MountFlags"=dword:2 ;unmask this line when enable HIVE
    ;"MountAsBootable"=dword:1
;    "Ioctl"=dword:4

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk1\FATFS]
    "FriendlyName"="PocketMory FAT FileSystem1"
    "Dll"="fatfsd.dll"
    "Flags"=dword:00000014                        ; FATFS_ENABLE_BACKUP_FAT | FATFS_DISABLE_AUTOSCAN
    "FormatTfat"=dword:1
    "EnableCacheWarm"=dword:0


;----------------------------------------------------------------------------
; 3rd FAT Area
;----------------------------------------------------------------------------

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FlashDisk2]
   "Prefix"="DSK"
   "Dll"="ONDisk.dll"
   "Order"=dword:0
   "Index"=dword:3
   "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
   "Profile"="FlashDisk2"
   "BmlVolumeId"=dword:0                ; BML volume ID = 0
   "BmlPartitionId"=dword:9        ; BML parition ID = PARTITION_ID_FILESYSTEM1
   "WMRStartSector"=dword:10000
   "WMRNumOfSector"=dword:ffffffff        ; last location
   "Flags"=dword:11000        ; do not load again in boot phase 2        ;

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk2]
    "DefaultFileSystem"="FATFS"
    "PartitionDriver"="mspart.dll"
    "Name"="PocketMory MLC Disk12"
    "Folder"="Storage Card"
    "AutoMount"=dword:1
    "AutoPart"=dword:1
    "AutoFormat"=dword:1
    ;"MountFlags"=dword:0
   ; "MountFlags"=dword:2 ;unmask this line when enable HIVE
;    "Ioctl"=dword:4

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk2\FATFS]
    "FriendlyName"="PocketMory FAT FileSystem2"
    "Dll"="fatfsd.dll"
    "Flags"=dword:00000014                        ; FATFS_ENABLE_BACKUP_FAT | FATFS_DISABLE_AUTOSCAN
    "FormatTfat"=dword:1
    "EnableCacheWarm"=dword:0

ENDIF BSP_POCKETMORY

; END HIVE BOOT SECTION

我把2G的NAND分成了三个盘符,所以上边的内容看似有些重复。问题应该不是出在这个地方。

回复评论 (6)

可否將
; HIVE BOOT SECTION
; END HIVE BOOT SECTION
區塊內的 registry 都 post 上來吧. 看起來問題好像不是出在這些地方.

Paul, Chao @ Techware
点赞  2009-4-1 17:59
刚才又测试了一下,如果通过SHELL的形式:
[HKEY_LOCAL_MACHINE\Init]
  "Launch60"="Update..exe"
  "Depend60"=hex:14,00,1e,00,32,00

这样再关掉那个程序就可以正常显示WINCE界面了
而虽然系统会自动启动explorer.exe,如果使用
[HKEY_LOCAL_MACHINE\Init]
  "Launch50"="explorer..exe"
  "Depend50"=hex:14,00,1e,00
这样仍然黑屏
点赞  2009-4-1 18:05
引用: 引用 2 楼 Veabol 的回复:
刚才又测试了一下,如果通过SHELL的形式:
[HKEY_LOCAL_MACHINE\Init]
  "Launch60"="Update..exe"
  "Depend60"=hex:14,00,1e,00,32,00

这样再关掉那个程序就可以正常显示WINCE界面了
而虽然系统会自动启动explorer.exe,如果使用
[HKEY_LOCAL_MACHINE\Init]
  "Launch50"="explorer..exe"
  "Depend50"=hex:14,00,1e,00
这样仍然黑屏

这段什么意思呢?

我这里60是
[HKEY_LOCAL_MACHINE\init]
"Launch60"="services.exe"
"Depend60"=hex:14,00



**************************
飞凌嵌入式 www.witech.com.cn   
**************************


点赞  2009-4-1 18:19
引用: 引用 1 楼 paul_chao 的回复:
可否將
; HIVE BOOT SECTION
; END HIVE BOOT SECTION
區塊內的 registry 都 post 上來吧. 看起來問題好像不是出在這些地方.

Paul, Chao @ Techware

那些就是我其中的全部代码了,

问题好象的确不出在这里,因为我改SHELL改来改去又改回刚才同样的设置系统莫名其妙的就好了,费解!

仍然感谢!
点赞  2009-4-1 18:19
引用: 引用 3 楼 xiaopi224 的回复:
引用 2 楼 Veabol 的回复:
刚才又测试了一下,如果通过SHELL的形式:
[HKEY_LOCAL_MACHINE\Init]
  "Launch60"="Update..exe"
  "Depend60"=hex:14,00,1e,00,32,00

这样再关掉那个程序就可以正常显示WINCE界面了
而虽然系统会自动启动explorer.exe,如果使用
[HKEY_LOCAL_MACHINE\Init]
  "Launch50"="explorer..exe"
  "Depend50"=hex:14,00,1e,00
这样仍然黑屏

这段什么意思呢?

我这里60是
[H…

如果是50的话就是不启动explore.exe直接启动我的程序,60的话就是先启动explore.exe再启动我的程序,并且Depend60要加50
点赞  2009-4-1 18:21
结帖散分吧,呵呵
点赞  2009-4-2 14:17
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复