请教XIP问题

huttu   2010-1-26 18:32 楼主
系统启动后卡在了这里:
Windows CE Kernel for ARM (Thumb Enabled) Built on Feb  8 2007 at 23:36:51
ProcessorType=0920  Revision=0
sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable = 8c2013e0

Windows CE Firmware Init
INFO: Initializing system interrupts...
INFO: Initializing system clock(s)...
INFO: Initializing driver globals area...
SDMMC config set rGPGCON: 20504
OEMInit Done...
Sp=ffffc7cc
NandFlash FMD_Init
NandFlash FMD_Init Done


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
FLASHDRV.DLL        $(_FLATRELEASEDIR)\FlashDrv.dll            XIPKERNEL        SH


FILES
;        Name                                        Path                                                                        Memory Type
;        --------------                         ----------------------------------                -----------
boot.hv        $(_FLATRELEASEDIR)\boot.hv                  XIPKERNEL  SH
default.hv     $(_FLATRELEASEDIR)\default.hv               XIPKERNEL  SH
user.hv                   $(_FLATRELEASEDIR)\user.hv              XIPKERNEL  SH

请问这几个应该放哪个文件里?


MEMORY

    XIPKERNEL   8C200000  001F0000  RAMIMAGE
    CHAIN       8C3F0000  00001000  RESERVED
    NK          8C3F1000  01b40000  NANDIMAGE
    RAM         8DF31000  01000000  RAM
    pdwXIPLoc   00000000  8C3F0000  FIXUPVAR
   

; Common RAM areas
        AUD_DMA             8c002000  00002000  RESERVED
        DRV_GLB                        8c010000  00010000  RESERVED
        DBGSER_DMA                8c022000  00002000  RESERVED
        SER_DMA                        8c024000  00002000  RESERVED
        IR_DMA                        8c026000  00002000  RESERVED
        SD_DMA                        8c028000  00008000  RESERVED


CONFIG
    AUTOSIZE=ON
    DLLADDR_AUTOSIZE=ON
    COMPRESSION=ON
    KERNELFIXUPS=ON
    XIPSCHAIN=8C3F0000
    PROFILE=OFF
    ROMFLAGS=00

RAM_AUTOSIZE=OFF
ROM_AUTOSIZE=OFF

ROMSTART=8c200000  
ROMWIDTH=32
ROMSIZE=01D00000

回复评论 (29)

*******************************************************************
This command window is set up for running CESH or other debug tools
*******************************************************************

ViewBin... xipkernel.bin
Image Start = 0x8C200000, length = 0x001CBCD0
                Start address = 0x8C201000
Checking record #8 for potential TOC (ROMOFFSET = 0x00000000)
Found pTOC  = 0x8c2c1aec
ROMOFFSET = 0x00000000

ROMHDR ----------------------------------------
    DLL First           : 0x01FE01FE
    DLL Last            : 0x02000000
    Physical First      : 0x8C200000
    Physical Last       : 0x8C3CBCD0
    RAM Start           : 0x8DF31000
    RAM Free            : 0x8DF69000
    RAM End             : 0x8EF31000
    Kernel flags        : 0x00000000
    Prof Symbol Offset  : 0x00000000
    Num Copy Entries    :          1
    Copy Entries Offset : 0x8C30EFF0
    Num Modules         :         11
    Num Files           :          2
    MiscFlags           : 0x00000002
    CPU                 :     0x01c2 (Thumb)
    Extensions          : 0x8C202870

ROMHDR Extensions -----------------------------
    PID[0] = 0x00000000
    PID[1] = 0x00000000
    PID[2] = 0x00000000
    PID[3] = 0x00000000
    PID[4] = 0x00000000
    PID[5] = 0x00000000
    PID[6] = 0x00000000
    PID[7] = 0x00000000
    PID[8] = 0x00000000
    PID[9] = 0x00000000
    Next: 8c2c1a90

    -- Location: 8c2c1a90
    Name: chain information
    Type:     00000000
    pData:    8c2c1abc
    Length:   00000030
    Reserved: 00000030
    Next:     00000000
      Addr:     8c3f0000
      MaxLenth: 00001000
      Order:    0000
      Flags:    0000
      reserved: 00000000
      Addr:     8c200000
      MaxLenth: 001f0000
      Order:    0000
      Flags:    0001
      reserved: 00000000
      Addr:     8c3f1000
      MaxLenth: 01b40000
      Order:    0001
      Flags:    0001
      reserved: 00000000

COPY Sections ---------------------------------
    Src: 0x8C305B9C   Dest: 0x8DF46000   CLen: 0x41C      DLen: 0x22434

MODULES ---------------------------------------
     1/26/2010  07:07:25      276992  nk.exe
     1/26/2010  10:31:05      558080  coredll.dll
     1/26/2010  10:31:05      229376  filesys.exe
     1/26/2010  05:22:58       57344  fatfsd.dll
     1/26/2010  05:23:05       10240  diskcache.dll
     1/26/2010  10:31:05       36352  fatutil.dll
     1/26/2010  05:23:06       13824  binfs.dll
     1/26/2010  05:22:57       79872  fsdmgr.dll
     1/26/2010  05:23:07       19456  mspart.dll
     1/26/2010  05:19:13       13824  ceddk.dll
     1/26/2010  05:38:15       23040  FLASHDRV.DLL

FILES ----------------------------------------
      1/26/2010  10:31:04  CHRS       5012      36864                   boot.hv
(ROM 0x8C335470)
这个是否有问题?
点赞  2010-1-26 18:48
帮顶下。

MARK。
点赞  2010-1-26 19:17
建议用DEBUG版本来调试,你这样完全看不出问题来
点赞  2010-1-26 19:29
准备做,先顶!
点赞  2010-1-26 19:53
这些信息看起来似乎没什么问题,
看输出信息XIPKERNEL  这部分工作已经正常了,可能是继续读NK中的数据的时候出了问题吧
点赞  2010-1-26 19:59
MODULES
FILE
应该放哪个BIB文件呢?
点赞  2010-1-27 08:54
因为BIB文件的优先级问题,common.bib优先于platform.bib,而config.bib高于common.bib,所以你的这些文件设置可以放在config.bib里边,然后执行copy 再make
点赞  2010-1-27 09:13
引用: 引用 7 楼 veabol 的回复:
因为BIB文件的优先级问题,common.bib优先于platform.bib,而config.bib高于common.bib,所以你的这些文件设置可以放在config.bib里边,然后执行copy 再make

谢谢,那我生存的XIP.NB0是否可以直接烧写到内存,这样烧写会正确吗
点赞  2010-1-27 09:23
你是烧NB0吗?通常EBOOT是烧BIN文件啊。

make之后你可以看一下你的release目录下的ce.bib,检查一下设置得对不对
点赞  2010-1-27 10:25
我每次都是烧录xip.bin
点赞  2010-1-27 10:26
我修改了EBOOT让它烧NB0。。。。。。。。。
xip.bin的标志是BOOFF,还是NOOFF?》

EBOOT里面代码:
        // An N000FF packet is manufactured by Platform Builder when we're
        // downloading multiple files or when we're downloading a .nb0 file.
        //
        if (!memcmp (hdr, "N000FF\x0A", BL_HDRSIG_SIZE))
        {
            // read the packet checksum.
            //
                        EdbgOutputDebugString ("\r\n  multiple files---.\r\n");
            if (!OEMReadData (sizeof (DWORD), (LPBYTE) &dwRecChk))
            {
                EdbgOutputDebugString("\r\nUnable to read download manifest checksum.\r\n");
                HALT (BLERR_MAGIC);
                return (FALSE);
            }
点赞  2010-1-27 11:33
当通过Platform Builder下载时,Platform Builder自动生成N000FF packet

那EBOOT还是像下载普通BIN那样标志BOOFF
点赞  2010-1-27 11:35
BIN的是B000FF\x0A
NB0的是N000FF\x0A
但是实际上这个N000FF\x0A是DNW传输前加进去的,NB0本身是没有这个头的
点赞  2010-1-27 11:36
BIN文件不再加BOOFF,因为自身就已经有了这个的数据头
点赞  2010-1-27 11:37
fmd初始化过了(说明NK文件已经顺利的下载到NAND了),应该是文件系统没有运行起来,楼主可以检查一下注册表的配置,FAT文件系统和BINFS文件系统的子键设置不对,经常就停在那个地方的!

.BIB文件的话。最终看的是CE.BIB!
点赞  2010-1-27 17:25
引用: 引用 15 楼 wjf_zjut 的回复:
fmd初始化过了(说明NK文件已经顺利的下载到NAND了),应该是文件系统没有运行起来,楼主可以检查一下注册表的配置,FAT文件系统和BINFS文件系统的子键设置不对,经常就停在那个地方的!

.BIB文件的话。最终看的是CE.BIB!

注册表信息:

; HIVE BOOT SECTION
[HKEY_LOCAL_MACHINE\init\BootVars]
        "SYSTEMHIVE"="system.hv"
    "RegistryFlags"=dword:1
;        "PROFILEDIR"="Documents and Settings"
        "Flags"=dword:0
"Start DevMgr"=dword:1
"DefaultUser"="default"     ;HC HIVE

; END HIVE BOOT SECTION


; HIVE BOOT SECTION
[HKEY_LOCAL_MACHINE\Drivers\Resources\IRQ]
        "Identifier"=dword:1
        "Minimum"=dword:1
        "Space"=dword:20
        "Ranges"="1-0x20"
;        "Shared"=""

[HKEY_LOCAL_MACHINE\Drivers\Resources\IO]
        "Identifier"=dword:2
        "Minimum"=dword:0
        "Space"=dword:10000
        "Ranges"="0-0xFFFF"
; END HIVE BOOT SECTION

; HIVE BOOT SECTION
;
;
; Entries to load the block driver that BINFS uses
; This is dependent on what device is used
;

[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\FlashDrv]
    "DriverPath"="Drivers\\BlockDevice\\FlashDrv"
    "LoadFlags"=dword:1
;   "MountFlags"=dword:11
    "BootPhase"=dword:0
         "Flags"=dword:1000
     "Order"=dword:0

[HKEY_LOCAL_MACHINE\Drivers\BlockDevice\FlashDrv]
    "Prefix"="DSK"
    "Dll"="FLASHDRV.dll"
    "Order"=dword:0
;   "Ioctl"=dword:4
    "Profile"="FlashDrv"
    "FriendlyName"="MS Flash Driver"
;   "MountFlags"=dword:11
    "BootPhase"=dword:0
    "Flags"=dword:1000

; Bind BINFS to the block driver
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDrv]
    "DefaultFileSystem"="BINFS"
    "PartitionDriver"="mspart.dll"
    "AutoMount"=dword:1
;        "AutoFormat"=dword:1
        ;"AutoMount"=dword:0
    "AutoPart"=dword:1
;    "MountFlags"=dword:11
    "Folder"="FlashDisk"
    "Name"="Microsoft Flash Disk"
    "BootPhase"=dword:0
    "Flags"=dword:1000
    "MountAsHidden"=dword:1
    "MountAsRom"=dword:1

;[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDrv\BINFS]
;    "MountFlags"=dword:10
;   "Flags"=dword:1000



;Keep FATFS from trying to shadow \Windows
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDrv\FATFS]
    "FriendlyName"="FAT FileSystem"
    "Dll"="fatfsd.dll"
    "Flags"=dword:00280014
    "Paging"=dword:1
    "CacheSize"=dword:0
    "EnableCacheWarm"=dword:0
    "EnableCache"=dword:1
    "MountAsBootable"=dword:1
    "MountAsRom"=dword:1


;[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]
;   "MountFlags"=dword:0



IF TODO
;[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\Relfsd]
;    "Dll"="relfsd.dll"
;    "Paging"=dword:0
;    "LoadFlags"=dword:1
ENDIF TODO


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 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"
    "Paging"=dword:1
    "MountFlags"=dword:10
    "BootPhase"=dword:0
; 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
;


; END HIVE BOOT SECTION

不用XIP时是可以通过,用了XIP就停那了
系统第一次HIVE会很久。。。。。。。
点赞  2010-1-27 17:51
我的是这样的
; @CESYSGEN IF CE_MODULES_NK

   nk.exe          $(_FLATRELEASEDIR)\kern.exe                 XIPKERNEL  SH
   
; @CESYSGEN ENDIF

; @CESYSGEN IF CE_MODULES_COREDLL
   coredll.dll     $(_FLATRELEASEDIR)\coredll.dll              XIPKERNEL  SH
; @CESYSGEN ENDIF

; @CESYSGEN IF CE_MODULES_FILESYS
   filesys.exe     $(_FLATRELEASEDIR)\filesys.exe              XIPKERNEL  SHM
; @CESYSGEN ENDIF

; @CESYSGEN IF CE_MODULES_BINFS
   binfs.dll     $(_FLATRELEASEDIR)\binfs.dll                         XIPKERNEL  SH
; @CESYSGEN ENDIF

; @CESYSGEN IF CE_MODULES_FSDMGR
   fsdmgr.dll     $(_FLATRELEASEDIR)\fsdmgr.dll                XIPKERNEL  SH
; @CESYSGEN ENDIF
; @CESYSGEN IF CE_MODULES_MSPART
   mspart.dll     $(_FLATRELEASEDIR)\mspart.dll                XIPKERNEL  SH
; @CESYSGEN ENDIF

; @CESYSGEN IF CE_MODULES_CEDDK
   ceddk.dll       $(_FLATRELEASEDIR)\ceddk.dll                XIPKERNEL  SH
; @CESYSGEN ENDIF

你把这里没有的从XIPKERNEL  移出去,make的时候如果哪个报错再加进去,最后make成功后再下载试一下。
点赞  2010-1-27 18:13
韦伯大哥,试了一下可以了,不过要加入InitRomChain()函数,才能通过
打印信息
pdwXIPLoc = 0x8c33f000
pdwCurXIP = 0x8c33f000
dwNumXIPs = 0x2
pChainEntry = 0x8c33f004
XIP (8c200000 -> 8c31f5c4) span
XIP (8c200000 -> 8c31f5c4) span
XIP (8c200000 -> 8c31f5c4) span
XIP (8c200000 -> 8c31f5c4) span
XIP (8c200000 -> 8c31f5c4) span
XIP (8c200000 -> 8c31f5c4) span
ppte->dwVA = 0x8c000000
XIP (8c200000 -> 8c31f5c4) span
ppte->dwVA = 0x8c000000
XIP (8c340000 -> 8cb91ad4) span



但是加载的时候  ReadKernelRegionFromBootMedia----》
    BP_ReadData( hPart,
                       0x30200000,
                       0x300000 ))
0x300000大概3M吧,超过了 XIPKERNEL+CHAIN的大小吧

打印信息O EMRomChain
pdwXIPLoc = 0x8c33f000
pdwCurXIP = 0x8c33f000
dwNumXIPs = 0x2
pChainEntry = 0x8c33f004
XIP (8c200000 -> 8c31f5c4) span
XIP (8c200000 -> 8c31f5c4) span
XIP (8c200000 -> 8c31f5c4) span
XIP (8c200000 -> 8c31f5c4) span
XIP (8c200000 -> 8c31f5c4) span
XIP (8c200000 -> 8c31f5c4) span
ppte->dwVA = 0x8c000000
XIP (8c200000 -> 8c31f5c4) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
doesn't exist in OEMAddressTab

OEMRomChain 两个连不上XIPKERNEL和NK?
点赞  2010-1-29 11:47
OpenPartition: Partition Exists=0x1 for part 0x21.

BP_SetDataPointer at 0x0

ReadData: Start = 0x0, Length = 0x400000.

Log2Phys: Logical 0x500 -> Physical 0xa00

Windows CE Kernel for ARM (Thumb Enabled) Built on Feb  8 2007 at 23:36:51
ProcessorType=0920  Revision=0
sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable = 8c2013e0

Windows CE Firmware Init
INFO: Initializing system interrupts...
INFO: Initializing system clock(s)...
INFO: Initializing driver globals area...
SDMMC config set rGPGCON: 20504
pdwXIPLoc = 0x8c33f000
pdwCurXIP = 0x8c33f000
dwNumXIPs = 0x2
pChainEntry = 0x8c33f004
XIP (8c200000 -> 8c372ed4) span
XIP (8c200000 -> 8c372ed4) span
XIP (8c200000 -> 8c372ed4) span
XIP (8c200000 -> 8c372ed4) span
XIP (8c200000 -> 8c372ed4) span
XIP (8c200000 -> 8c372ed4) span
ppte->dwVA = 0x8c000000
XIP (8c200000 -> 8c372ed4) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
XIP (00000000 -> 00000000) span
doesn't exist in OEMAddressTab
OEMInit Done...
MDValidateRomChain: XIP (00000000 -> 00000000) doesn't exist in OEMAddressTable
ERROR! XIP region span accross discontigious memory!!! System Halted!
Sp=ffffc7cc
NandFlash FMD_Init
NandFlash FMD_Init Done


各位高手帮看看啊
点赞  2010-1-29 15:05
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复