最近在弄 wince6.0的multi-bin遇到了一些问题,想请教一下:
在BSP中我的config.bib是这样设置的:
MEMORY
XIPKERNEL 80200000 002FF000 RAMIMAGE
CHAIN 804FF000 00001000 RESERVED
NK 80500000 01F00000 NANDIMAGE
RAM 80500000 03C00000 RAM
FLASH 92000000 00100000 RESERVED
; Common RAM areas
AUD_DMA 80002000 00000800 RESERVED
SDIO_DMA 80010000 00010000 RESERVED
ARGS 80020800 00000800 RESERVED
DBGSER_DMA 80022000 00002000 RESERVED
SER_DMA 80024000 00002000 RESERVED
IR_DMA 80026000 00002000 RESERVED
SLEEP 80028000 00002000 RESERVED
EDBG 80030000 00020000 RESERVED
DISPLAY 80100000 00100000 RESERVED
CONFIG
AUTOSIZE=ON
COMPRESSION=ON
DLLADDR_AUTOSIZE=ON
KERNELFIXUPS=ON
PROFILE=OFF
RAM_AUTOSIZE=OFF
ROMFLAGS=0
ROM_AUTOSIZE=OFF
XIPSCHAIN=804FF000
MODULES
nk.exe $(_FLATRELEASEDIR)\oal.exe XIPKERNEL SHZ
kernel.dll $(_FLATRELEASEDIR)\kern.dll XIPKERNEL SHZ
coredll.dll $(_FLATRELEASEDIR)\coredll.dll XIPKERNEL SH
k.coredll.dll $(_FLATRELEASEDIR)\k.coredll.dll XIPKERNEL SHMK
oalioctl.dll $(_FLATRELEASEDIR)\oalioctl.dll XIPKERNEL SHK
filesys.dll $(_FLATRELEASEDIR)\filesys.dll XIPKERNEL SHK
fsdmgr.dll $(_FLATRELEASEDIR)\fsdmgr.dll XIPKERNEL SHMK
mspart.dll $(_FLATRELEASEDIR)\mspart.dll XIPKERNEL SHK
romfsd.dll $(_FLATRELEASEDIR)\romfsd.dll XIPKERNEL SHK
binfs.dll $(_FLATRELEASEDIR)\binfs.dll XIPKERNEL SHK
fpcrt.dll $(_FLATRELEASEDIR)\fpcrt.dll XIPKERNEL SH
k.fpcrt.dll $(_FLATRELEASEDIR)\fpcrt.dll XIPKERNEL SHMK
ceddk.dll $(_FLATRELEASEDIR)\ceddk.dll XIPKERNEL SHQ
device.dll $(_FLATRELEASEDIR)\device.dll XIPKERNEL SHMK
udevice.exe $(_FLATRELEASEDIR)\udevice.exe XIPKERNEL SHM
devmgr.dll $(_FLATRELEASEDIR)\devmgr.dll XIPKERNEL SHMK
regenum.dll $(_FLATRELEASEDIR)\regenum.dll XIPKERNEL SHK
busenum.dll $(_FLATRELEASEDIR)\busenum.dll XIPKERNEL SHK
pm.dll $(_FLATRELEASEDIR)\pm.dll XIPKERNEL SHMK
smflash.dll $(_FLATRELEASEDIR)\smflash.dll XIPKERNEL SHK
FILES
boot.hv $(_FLATRELEASEDIR)\boot.hv XIPKERNEL SH
wince.nls $(_FLATRELEASEDIR)\wince.nls XIPKERNEL SHU
platform.reg中是这样设置的:
; HIVE BOOT SECTION
IF IMGHIVEREG
[HKEY_LOCAL_MACHINE\Init\BootVars]
"Flags"=dword:3
"RegistryFlags"=dword:1
ENDIF
[HKEY_LOCAL_MACHINE\System\StorageManager\PartitionTable]
"21"="BINFS"
[HKEY_LOCAL_MACHINE\System\StorageManager\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:11;10
"BootPhase"=dword:0
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\NANDFLASH]
"Prefix"="DSK"
"Dll"="smflash.dll"
"Index"=dword:1
"Order"=dword:0
"Profile"="NANDFLASH"
"IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
IF IMGHIVEREG
"Flags"=dword:1000
ENDIF
[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\NANDFLASH]
"DriverPath"="Drivers\\BuiltIn\\NANDFLASH"
"LoadFlags"=dword:1 ; load synchronously
"BootPhase"=dword:0
IF IMGHIVEREG
"MountAsBootable"=dword:1 ; for Hive-based registry
ENDIF
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NANDFLASH]
"DefaultFileSystem"="BINFS"
"PartitionDriver"="mspart.dll"
"Name"="Microsoft Flash Disk"
"AutoMount"=dword:1 ;--czx
"AutoPart"=dword:1
"AutoFormat"=dword:1
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NANDFLASH\BINFS]
"MountHidden"=dword:1
"MountAsROM"=dword:1
"Folder"="BinFS"
"MountPermanent"=dword:1
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NANDFLASH\FATFS]
"FormatExfat"=dword:1
"Flags"=dword:14 ; deprecated in CE6.0 (0x4 : FATFS_DISABLE_AUTOSCAN, 0x10 : FATFS_ENABLE_BACKUP_FAT)
"DisableAutoScan"=dword:1
"CheckForFormat"=dword:1
"EnableWriteBack"=dword:1
"Folder"="ResidentFlash"
"MountAsRoot"=dword:1 ; for ROM-only file system
IF IMGHIVEREG
"MountAsBootable"=dword:1 ; for Hive-based registry
ENDIF
[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\NANDFLASH\Filters\CacheFilt]
"Dll"="cachefilt.dll"
"LockIOBuffers"=dword:1
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NANDFLASH\FATFS\Filters\CacheFilt]
"Dll"="cachefilt.dll"
"LockIOBuffers"=dword:1
; END HIVE BOOT SECTION
这样设置后,编译出XIPKERNEL.bin 和 xip.bin 但下载到板子上运行的结果是:
Windows CE Kernel for ARM (Thumb Enabled) Built on Oct 20 2009 at 18:39:19
+OEMInit
DCache: 8 sets, 64 ways, 32 line size, 16384 size
ICache: 8 sets, 64 ways, 32 line size, 16384 size
+OALArgsInit()
Arguments area has some values
-OALArgsInit()
+OALIntrInit.
+OALInterruptInit
-OALInterruptInit(rc = 1)
-OALIntrInit.
-OEMInit
到这里就停了,本应该接着是nand flash的初始化了,可就是没有运行nand flash相关东西,这是哪里的问题呢?
如果不用multi-bin的话,系统能正常运行的.
真的是到nand驱动了吗?感觉不到为何nand驱动加载不成功该有的都有了~帮顶
最近也在调试multi-bin,但是我是挂在flash初始化后,楼主QQ是多少?我们可以交流下!
另外最好弄个debug版本来调试,这样可以看到很多调试信息
呵呵,问题解决了。原来是config.bib配置错了
把RAM 80500000 03C00000 RAM
改成
RAM 80500000 03B00000 RAM
就OK了
我的QQ:1293106329