阅读:3654回复:19
请教关于MUTLI-BIN的问题,请大师们指点
各位大师:
您们好! 我知道您们实现了MUTI-BIN的技术,我也想研究下,我在做试验的过程中出现了一些问题,我想请教您关于muti-bin的问题,能否指点我一下, 我的情况是这样的: 1.我定义了IMGMUTLIBIN=1,同时选择了HIVE-BASE registry 2.我的config.BIB文件如下: MEMORY pdwXIPLoc 00000000 803FF000 FIXUPVAR XIPKERNEL 80200000 001FF000 RAMIMAGE CHAIN 803FF000 00001000 RESERVED NK 80400000 01E00000 NANDIMAGE RAM 80400000 03000000 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=ON ROMFLAGS=0 ;ROMSIZE = 01E00000 ;ROMSTART = 800B8000 ;ROMWIDTH = 32 ROM_AUTOSIZE = OFF XIPSCHAIN=803FF000 3. 我的platform.bib如下: ;;;;;我并没有删除原来打包到NK.BIN的文件,就是说这些文件可能打包了两次,不晓得有问题没? ;MODULES ; Name Path Memory Type ; -------------- --------------------------------------------- ----------- nk.exe $(_FLATRELEASEDIR)\kern.exe XIPKERNEL SH coredll.dll $(_FLATRELEASEDIR)\coredll.dll XIPKERNEL SH filesys.exe $(_FLATRELEASEDIR)\filesys.exe XIPKERNEL SH fatfsd.dll $(_FLATRELEASEDIR)\fatfsd.dll XIPKERNEL SH diskcache.dll $(_FLATRELEASEDIR)\diskcache.dll XIPKERNEL SH fatutil.dll $(_FLATRELEASEDIR)\fatutil.dll XIPKERNEL SH binfs.dll $(_FLATRELEASEDIR)\binfs.dll XIPKERNEL SH fsdmgr.dll $(_FLATRELEASEDIR)\fsdmgr.dll XIPKERNEL SH mspart.dll $(_FLATRELEASEDIR)\mspart.dll XIPKERNEL SH ceddk.dll $(_FLATRELEASEDIR)\ceddk.dll XIPKERNEL SH smflash.dll $(_FLATRELEASEDIR)\smflash.dll XIPKERNEL SH ;FILES boot.hv $(_FLATRELEASEDIR)\boot.hv XIPKERNEL SH default.hv $(_FLATRELEASEDIR)\default.hv XIPKERNEL SH user.hv $(_FLATRELEASEDIR)\user.hv XIPKERNEL SH 4. 我的platform.reg如下: ;HIVE BOOT SECTION IF BSP_NONANDFS ! [HKEY_LOCAL_MACHINE\init\BootVars] "SYSTEMHIVE"="System.hv" "Start DevMgr"=dword:1 ; "Flags"=dword:3 "RegistryFlags"=dword:1 "DefaultUser"="avantech" [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SMFLASH] "DefaultFileSystem"="FATFS" "AutoPart"=dword:1 "AutoMount"=dword:1 "AutoFormat"=dword:1 "MountAsBootable"=dword:1 "MountAsRoot"=dword:1 "PartitionDriver"="mspart.dll" "Name"="Microsoft Flash Disk" "Folder"="ResidentFlash" "BootPhase"=dword:0 "Flags"=dword:1000 ; Keep FATFS from trying to shadow \Windows [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SMFLASH\FATFS] "FriendlyName"="FAT FileSystem" "Dll"="fatfsd.dll" "Flags"=dword:00000024 "Paging"=dword:1 "CacheSize"=dword:0 "EnableCacheWarm"=dword:0 "EnableCache"=dword:1 "Flags"=dword:1000 [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SMFLASH] "Prefix"="DSK" "Dll"="smflash.dll" "Index"=dword:1 "Order"=dword:0 "Profile"="SMFLASH" "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}" "Flags"=dword:1000 [HKEY_LOCAL_MACHINE\System\StorageManager\FATFS] "Flags"=dword:00000014 "MountFlags"=dword:2 [HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\SMFLASH] "DriverPath"="Drivers\\BuiltIn\\SMFLASH" ; LoadFlags 0x01 == load synchronously "LoadFlags"=dword:1 "BootPhase"=dword:0 "Flags"=dword:1000 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Support BINFS Section ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Add BinFS to partition table [HKEY_LOCAL_MACHINE\System\StorageManager\PartitionTable] "21"="BINFS" [HKEY_LOCAL_MACHINE\System\StorageManager\BINFS] "Folder"="BINFS" "FriendlyName"="Bin FileSystem" "Dll"="binfs.dll" ; 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 ENDIF ; BSP_NONANDFS ;END HIVE BOOT SECTION 最后生成了NK.BIN,XIP.BIN等等文件,我通过EBOOT下载了XIP.BIN文件到NANDflash并启动 最后,我的eboot打印出来的信息如下: Download BIN file information: ----------------------------------------------------- [0]: Base Address=0x80200000 Length=0x1cee19c ----------------------------------------------------- Writing single region/multi-region update, dwBINFSPartLength: 30335388 INFO: using TOC[1] dwJumpAddress: 0x8029C420 waitforconnect INFO: OEMLaunch: Jumping to Physical Address 0x3029C420h (Virtual Address 0x8029C420h)... 到这里之后就没有反应了,我实在不知道怎么做下去了,请教这是什么原因呢?是不是我那一步做错了? 我再次启动系统,串口打印消息如下: Microsoft Windows CE Ethernet Bootloader Common Library Version 1.1 Built Oct 28 2008 18:59:35 Microsoft Windows CE Bootloader for the Samsung SMDK2440 Version 2.4 Built Oct 28 2008 INFO : -------------------------------------------------------- INFO : pUSBCtrlAddr = 0xB1200140 INFO : &(pUSBCtrlAddr->EIER) = 0xB120015C INFO : pUSBCtrlAddr->EIER.ep0_int_en = 0x1 INFO : pUSBCtrlAddr->EIER.ep1_int_en = 0x1 INFO : pUSBCtrlAddr->EIER.ep2_int_en = 0x0 INFO : pUSBCtrlAddr->EIER.ep3_int_en = 0x1 INFO : pUSBCtrlAddr->EIER.ep4_int_en = 0x0 INFO : -------------------------------------------------------- BP_Init FMD::FMD_Init FMD::FMD_Init - pBSPArgs->nfsblk = 0x0 FMD::FMD_Init - READ_REGISTER_BYTE(pNFSBLK) = 0x0 FMD::FMD_Init IPL ..... FMD::FMD_Init Done MID = 0xec, DID = 0x76 4th Cycle : 0xa5 NUMBLOCKS : 512(0x200), SECTORSPERBLOCK = 256(0x100), BYTESPERSECTOR = 512(0x200) MID = 0xec, DID = 0x76 4th Cycle : 0xa5 NUMBLOCKS : 512(0x200), SECTORSPERBLOCK = 256(0x100), BYTESPERSECTOR = 512(0x200) wNUM_BLOCKS : 512(0x200) Press [ENTER] to launch image stored on boot media, or [SPACE] to enter boot monitor. Initiating image launch in 0 seconds. Launching image from boot media ... OEMPlatformInit: IMAGE_TYPE_RAMIMAGE System ready! Preparing for download... waitforconnect INFO: OEMLaunch: Jumping to Physical Address 0x3029C420h (Virtual Address 0x8029C420h)... 以上都属于是EBOOT打印的消息, 我想这证明我确实是烧写了XIP.BIN文件进去的,只不过这个XIP.BIN没有启动起来,但是我觉得我所有的步骤都是按驱动开发网上的步骤来做的 呀,怎么就是不对呢? 我想请教是什么原因?请大师们能否在百忙之中抽点时间解答我的疑惑。万分感谢。 附件是我的BSP的设置,谢谢。 还有,我没有在BSP的OEMInit中的最后加上对InitRomChain的调用,不知道有没有问题。 |
|
|
沙发#
发布于:2008-10-31 08:44
怎么就没人响应下呢?
|
|
板凳#
发布于:2008-11-07 13:44
谢谢 ziyun 的热心回复,可是我还是没搞定
|
|
地板#
发布于:2008-11-07 14:51
请教dsky021:能否说说你从第一步到第二步做了哪些改动呢?我现在还停留在第一步呢。第一步
引用第3楼dsky021于2008-10-31 16:26发表的 : 第二步 出现这种错误是什么问题?sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable = 8022b5dc DCache: 8 sets, 64 ways, 32 line size, 16384 size ICache: 8 sets, 64 ways, 32 line size, 16384 size InitDisplay:640*480 Sp=ffffc7cc OEMIoControl: Unsupported Code 0x10100b4 - device 0x0101 func 45 OEMIoControl: Unsupported Code 0x101008c - device 0x0101 func 35 Data Abort: Thread=83fc6000 Proc=80426270 'filesys.exe' AKY=00000003 PC=03f9e9c8(coredll.dll+0x0002e9c8) RA=03f9e9a0(coredll.dll+0x0002e9a0) BVA=04000000 FSR=00000007 OEMIoControl: Unsupported Code 0x101008c - device 0x0101 func 35 OEMIoControl: Unsupported Code 0x10100c4 - device 0x0101 func 49 OEMIoControl: Unsupported Code 0x10100d0 - device 0x0101 func 52 OEMIoControl: Unsupported Code 0x10100f8 - device 0x0101 func 62 Data Abort: Thread=83fc6000 Proc=80426270 'filesys.exe' AKY=00000003 PC=03f9e9c8(coredll.dll+0x0002e9c8) RA=03f9e9a0(coredll.dll+0x0002e9a0) BVA=04000000 FSR=00000007 Data Abort: Thread=83fc6000 Proc=80426270 'filesys.exe' AKY=00000003 PC=8022e5ac(NK.EXE+0x0002e5ac) RA=8022e598(NK.EXE+0x0002e598) BVA=03f11b30 FSR=00000007 Data Abort: Thread=83fc6000 Proc=80426270 'filesys.exe' AKY=ffffffff PC=0002c868(filesys.exe+0x0001c868) RA=0002c824(filesys.exe+0x0001c824) BVA=42001000 FSR=00000005 Data Abort: Thread=83fc6000 Proc=80426270 'filesys.exe' AKY=ffffffff PC=0002dd40(filesys.exe+0x0001dd40) RA=0003481c(filesys.exe+0x0002481c) BVA=420000e8 FSR=00000005 |
|
地下室#
发布于:2008-11-10 10:28
能不能那位传个MUTIBIN的BSP上去啊 ?实在是搞不定了,人笨,没有办法。都整了个把月了,我的邮箱是qq302011@126.com,哪位达人能否传一个给我呀
|
|