首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

mult—XIP启动失败解决方法

2012-04-05 
mult—XIP启动失败最近在Ti OMAP3530上倒WINCE6.0,想实现Mult-xip,设置基本搞定,编译也没有问题,但是烧写倒

mult—XIP启动失败
最近在Ti OMAP3530上倒WINCE6.0,想实现Mult-xip,设置基本搞定,编译也没有问题,但是烧写倒nand里系统就是起不来
我是这样做的:
系统分3个区——第一个BootPart,放置XipKernel.bin,第二个BINFS,放置NK.bin,第三个FAT。
原计划系统首先把Xipkernel.bin解压,加载到0x80002000,然后从Bootloader跳转到该地址,完成系统引导。

我的配置:
//conifg.bib


MEMORY
; Name VA Length Type
  ARGS 0x80000000 0x1000 RESERVED
   
  XIPKERN 0x80002000 0x01FFE000 RAMIMAGE
  CHAIN 0x80001000 0x00001000 RESERVED
  NK 0x82000000 0x02800000 NANDIMAGE


ENDIF
  RAM 0x82000000 0x02800000 RAM  
   
  DISPLAY 0x84000000 0x01000000 RESERVED


nk.exe:dwOEMFailPowerPaging 00000000 00000001 FIXUPVAR
nk.exe:dwOEMDrWatsonSize 00000000 0004B000 FIXUPVAR
nk.exe:dwOEMPRCMCLKSSetupTime 00000000 00000140 FIXUPVAR
   
nk.exe:dwOEMHighSecurity 00000000 00000002 FIXUPVAR

nk.exe:pdwXIPLoc 00000000 0x80001000 FIXUPVAR

CONFIG

  COMPRESSION=ON
  KERNELFIXUPS=ON
  AUTOSIZE=ON

  FSRAMPERCENT=0x80808080

  RAM_AUTOSIZE=OFF
  ROM_AUTOSIZE=OFF
  ROMSIZE=04800000
  ROMSTART=80000000
  ROMWIDTH=32
  XIPSCHAIN=0x80001000
   
  DLLADDR_AUTOSIZE=ON
   
  AUTOSIZE_ROMGAP=10000
  AUTOSIZE_DLLADDRGAP=0
  AUTOSIZE_DLLDATAADDRGAP=0
  AUTOSIZE_DLLCODEADDRGAP=0
  PROFILE=OFF

IF IMGNAND
  ROMOFFSET=0x40000000
ENDIF


MODULES
  nk.exe $(_FLATRELEASEDIR)\oal.exe XIPKERN SH
  kernel.dll $(_FLATRELEASEDIR)\kern.dll XIPKERN SH

  coredll.dll $(_FLATRELEASEDIR)\coredll.dll XIPKERN SH
  oalioctl.dll $(_FLATRELEASEDIR)\oalioctl.dll XIPKERN SHK  
  k.coredll.dll $(_FLATRELEASEDIR)\k.coredll.dll XIPKERN SHMK  

  filesys.dll $(_FLATRELEASEDIR)\filesys.dll XIPKERN SH
  fsdmgr.dll $(_FLATRELEASEDIR)\fsdmgr.dll XIPKERN SH
  mspart.dll $(_FLATRELEASEDIR)\mspart.dll XIPKERN SH
  shell.exe $(_FLATRELEASEDIR)\shell.exe XIPKERN SH
   
  romfsd.dll $(_FLATRELEASEDIR)\romfsd.dll XIPKERN SHK
  binfs.dll $(_FLATRELEASEDIR)\binfs.dll XIPKERN SH
  fpcrt.dll $(_FLATRELEASEDIR)\fpcrt.dll XIPKERN SH
  k.fpcrt.dll $(_FLATRELEASEDIR)\fpcrt.dll XIPKERN SHMK
  device.dll $(_FLATRELEASEDIR)\device.dll XIPKERN SHMK
  udevice.exe $(_FLATRELEASEDIR)\udevice.exe XIPKERN SHM
  devmgr.dll $(_FLATRELEASEDIR)\devmgr.dll XIPKERN SHMK


  regenum.dll $(_FLATRELEASEDIR)\regenum.dll XIPKERN SHK
  busenum.dll $(_FLATRELEASEDIR)\busenum.dll XIPKERN SHK
  pm.dll $(_FLATRELEASEDIR)\pm.dll XIPKERN SHMK
  exfat.dll $(_FLATRELEASEDIR)\exfat.dll XIPKERN SHK
  diskcache.dll $(_FLATRELEASEDIR)\diskcache.dll XIPKERN SH
  cachefilt.dll $(_FLATRELEASEDIR)\cachefilt.dll XIPKERN SHK  
  fatutil.dll $(_FLATRELEASEDIR)\fatutil.dll XIPKERN SH
  
  kbdus.dll $(_FLATRELEASEDIR)\kbdus.dll XIPKERN SHK
  imaging.dll $(_FLATRELEASEDIR)\imaging.dll XIPKERN S
  mlang.dll $(_FLATRELEASEDIR)\mlang.dll XIPKERN SH
  aygshell.dll $(_FLATRELEASEDIR)\aygshell.dll XIPKERN SH
  ceddk.dll $(_FLATRELEASEDIR)\ceddk.dll XIPKERN SH
  ceshell.dll $(_FLATRELEASEDIR)\ceshell.dll XIPKERN SH
  
  omap3430_dma.dll $(_FLATRELEASEDIR)\omap3430_dma.dll XIPKERN SHK
  tievm3530_nand.dll $(_FLATRELEASEDIR)\tievm3530_nand.dll XIPKERN SHK
  twl4030_twl.dll $(_FLATRELEASEDIR)\twl4030_twl.dll XIPKERN SH
  omap3430_mcbsp.dll $(_FLATRELEASEDIR)\omap3430_mcbsp.dll XIPKERN SH
  omap3430_hdq.dll $(_FLATRELEASEDIR)\omap3430_hdq.dll XIPKERN SH
  gpio.dll $(_FLATRELEASEDIR)\gpio.dll XIPKERN SH
  evm3530_bus.dll $(_FLATRELEASEDIR)\evm3530_bus.dll XIPKERN SH
  omap3430_spi.dll $(_FLATRELEASEDIR)\omap3430_spi.dll XIPKERN SH
  omap3430_vrfb.dll $(_FLATRELEASEDIR)\omap3430_vrfb.dll XIPKERN SH
  kitl.dll $(_FLATRELEASEDIR)\kitl.dll XIPKERN SH
  Simple.exe $(_FLATRELEASEDIR)\Simple.exe XIPKERN SH

FILES

  wince.nls $(_FLATRELEASEDIR)\wince.nls XIPKERN SHU
  boot.hv $(_FLATRELEASEDIR)\boot.hv XIPKERN SH
  default.hv $(_FLATRELEASEDIR)\default.hv XIPKERN SH
  user.hv $(_FLATRELEASEDIR)\user.hv XIPKERN SH

  
  ceconfig.h $(_FLATRELEASEDIR)\ceconfig.h XIPKERN  

  initobj.dat $(_FLATRELEASEDIR)\initobj.dat XIPKERN SH  

  initdb.ini $(_FLATRELEASEDIR)\initdb.ini XIPKERN SH  

  explore.lnk $(_FLATRELEASEDIR)\explore.lnk XIPKERN SH  

  control.lnk $(_FLATRELEASEDIR)\control.lnk XIPKERN SH  


//注册表:
; @CESYSGEN IF FILESYS_FSREGHIVE
; HIVE BOOT SECTION
;
; We want start both storage and device manager. Flags value is combination of
; 0x0001 Start storage manager in boot phases 0 and 1 to load the boot
; file system.
; 0x0002 Start device manager in boot phase 1 to load the boot file system.
;
[HKEY_LOCAL_MACHINE\Init\BootVars]
  "SYSTEMHIVE"="Documents and Settings\\system.hv" ;system.hv会保存到\HDD\Documents and Settings\system.hv


  "PROFILEDIR"="Documents and Settings" ;user.hv会保存到\HDD\Documents and Settings\default\user.hv
  "Start DevMgr"=dword:1 ;这个说是启动device.exe,但是wince 5.0好像不用这个
  "DefaultUser"="default" ;咱们只有一个用户default,基本上就是决定user.hv的路径了
  "Flags"=dword:3 ;这个应该是wince 5.0下决定在哪个阶段启动device.exe的表项
  "RegistryFlags"=dword:1 ;这个就是设置注册表每次改动后自动flush到system.hv
   

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MSFlash]
  "Flags"=dword:00011000
   
;xiao add binfs
[HKEY_LOCAL_MACHINE\System\StorageManager\PartitionTable]
  "21"="BINFS"

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash\BINFS]
  "Folder"="BINFS"
  "FriendlyName"="Bin FileSystem"
  "Dll"="binfs.dll"
  "Paging"=dword:1
; MountFlags:
; 0x10 specifies that this file system is to be mounted as an external
; ROM filesystem shadowing the \windows directory
; 0x1 specifies that the mountpoint \BINFS is to be hidden
;
  "MountFlags"=dword:10
  "BootPhase"=dword:0
  "Flags"=dword:1000
  "MountHidden"=dword:1
  "MountAsROM"=dword:1
;add end

; END HIVE BOOT SECTION
; @CESYSGEN ELSE
; @CESYSGEN ENDIF FILESYS_FSREGHIVE
;-------------------------------------------

;-- Storage Manager Configuration ----------------------------------------------
; @CESYSGEN IF CE_MODULES_FSDMGR
;
; HIVE BOOT SECTION

[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\MSFlash]
  "DriverPath"="Drivers\\BuiltIn\\MSFlash"
  "LoadFlags"=dword:1
  "BootPhase"=dword:0
  "Order"=dword:0
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash]
  "DriverPath"="Drivers\\BuiltIn\\MSFlash"
  "LoadFlags"=dword:1
  "BootPhase"=dword:0
  "Order"=dword:0
  "AutoMount"=dword:1
  "AutoPart"=dword:0
  "AutoFormat"=dword:0
  "DefaultFileSystem"="FATFS"
  "PartitionDriver"="mspart.dll"
  "Name"="Microsoft Flash Disk"
  "MountAsBootable"=dword:1
   


[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash\BINFS]
  "MountHidden"=dword:1
  "MountAsROM"=dword:1


[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash\FATFS]
  "MountAsBootable"=dword:1
  "Flags"=dword:00000014
  "FormatTFAT"=dword:1
  "EnableWriteBack"=dword:1
  "MountBootable"=dword:1
  "Paging"=dword:1

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MSFlash]
  "Dll"="nand.dll"
  "Prefix"="DSK"
  "Index"=dword:0
  "Order"=dword:4
  "MemBase"=multi_sz:"6E000000","08000000"
  "MemLen"=multi_sz:"00001000","00001000"
  "DmaCh"=dword:3
  ; CE_DRIVER_BLOCK_GUID
  "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
  "Profile"="MSFlash"
  "Flags"=dword:1000

; END HIVE BOOT SECTION
; @CESYSGEN ENDIF CE_MODULES_FSDMGR
;-----------------------------------------------





[解决办法]
跳转地址不对,内核在内存解压后跳转去执行的地址没对,好好对下地址。
[解决办法]
要玩xip,得從頭開始慢慢看...
你這樣摸蝦,摸不到的

热点排行