AngusLiu
驱动牛犊
驱动牛犊
  • 注册日期2002-10-08
  • 最后登录2009-10-20
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望18点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:2731回复:6

wince5 jump地址的問題?

楼主#
更多 发布于:2008-06-28 09:56
编译了一个NK。BIN文件,下载到板子,启动后,程序执行下面就不动了。
应该是我的Jump地址0x8c208810有問題,但沒找到修改这个的地方,哪位熟悉
的朋友提醒一下,谢谢!

Jumping to image at virtual address 0x8C208810h
+ToPhysicalAddr:0x8C208810
-ToPhysicalAddr:0x30208810

::: Physical Launch Address: 0x30208810h
ztg0021
驱动小牛
驱动小牛
  • 注册日期2007-02-09
  • 最后登录2016-02-18
  • 粉丝1
  • 关注0
  • 积分141分
  • 威望223点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-06-28 10:12
你用什么启动的,是不是你的BOOTLOADER太大了,
看起来好像什么东西与你的NK起始地址有冲突
WINCE/EVC/VS2005群:18219722
AngusLiu
驱动牛犊
驱动牛犊
  • 注册日期2002-10-08
  • 最后登录2009-10-20
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望18点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-06-28 19:26
应该不是地址冲突了吧,我这里有两份信息,一份是可以启动的,一份是不能启动的,请帮我看看
可以启动的
Clear the free memory .............................................................
Read eboot image from flash ......
Sector addr on NAND: 0x100
TotalSector: 0x100
LoadAddress: 0x30038000
JumpAddr: 0x30038000

Now, to download the wince image(nk.bin) ......
USB host is connected. Waiting a download.

Now, Downloading [ADDRESS:30058000h,TOTAL:18393673]
Downloaded file at 0x30000000, size = 18393663 bytes
Mark bad blocks as unused ......
Mark Block 0 as unused, has mark 1 blocks
Mark Block 1 as unused, has mark 2 blocks
Mark Block 2 as unused, has mark 3 blocks
Mark Block 3 as unused, has mark 4 blocks
Mark Block 4 as unused, has mark 5 blocks
Mark Block 5 as unused, has mark 6 blocks
Mark Block 6 as unused, has mark 7 blocks
Mark Block 7 as unused, has mark 8 blocks
Mark Block 8 as unused, has mark 9 blocks
Mark Block 9 as unused, has mark 10 blocks
Mark Block 10 as unused, has mark 11 blocks
Mark Block 11 as unused, has mark 12 blocks
Mark Block 12 as unused, has mark 13 blocks
Mark Block 13 as unused, has mark 14 blocks
Mark Block 14 as unused, has mark 15 blocks
Mark Block 15 as unused, has mark 16 blocks
Mark Block 16 as unused, has mark 17 blocks
Mark Block 17 as unused, has mark 18 blocks
Mark Block 18 as unused, has mark 19 blocks
Mark Block 19 as unused, has mark 20 blocks
Extract wince image throught USB ......


OEMMultiBINNotify: Download BIN file information:

-----------------------------------------------------

[0]: Base Address=0x8c200000  Length=0x11ed9dc

-----------------------------------------------------

OEMVerifyMemory: StartAddr: 0x8c200000, Length:0x11ed9dc

*** Downloading UNKNOWN image type ***

.................
dwImageStart : 0x8c200000

dwImageLength: 0x11ed9dc

LaunchAddr  : 0x8c201000


rom_offset=0x0.

Run eboot, JumpAddr = 0x30038000
..

Microsoft Windows CE Ethernet Bootloader Common Library Version 1.0 Built Jan 28 2007 17:47:35
Copyright (c) 2000-2001  Microsoft Corporation
Microsoft Windows CE SMDK2440 Bootloader Version 1.2 Built Jan 28 2007 17:47:27
FMD::FMD_Init

FMD::FMD_Init Done

TOC_Read
FMD: ECC ERROR - Page #: 608
(0:FC 0:CF 0:F)
FMD: Unable to correct the ECC error - Page #: 608

TOC_Read ERROR: Unable to read TOC
TOC_Init: dwEntry:1, dwImageType: 0x6, dwImageStart: 0x0, dwImageLength: 0x0, dwLaunchAddr: 0x0
+BootConfigInit
-BootConfigInit
TOC {
dwSignature: 0x434F544E
BootCfg {
  ConfigFlags: 0x3020
  BootDelay: 0xF
  ImageIndex: 1
  IP: 0.0.0.0
  MAC Address: 00:00:00:00:00:00
  Port: 0.0.0.0
  SubnetMask: 255.255.255.255
}
ID[0] {
  dwVersion: 0x10002
  dwSignature: 0x45424F54
  String: 'eboot.nb0'
  dwImageType: 0x2
  dwTtlSectors: 0x100
  dwLoadAddress: 0x8C038000
  dwJumpAddress: 0x8C038000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x100
  sgList[0].dwLength: 0x100
}
ID[1] {
  dwVersion: 0x1
  dwSignature: 0x43465349
  String: ''
  dwImageType: 0x6
  dwTtlSectors: 0x0
  dwLoadAddress: 0x0
  dwJumpAddress: 0x0
  dwStoreOffset: 0x0
}
chainInfo.dwLoadAddress: 0X00000000
chainInfo.dwFlashAddress: 0X00000000
chainInfo.dwLength: 0X00000000
}
g_pViviWinceInfo = 0x301D8000, g_pViviWinceInfo->dwViviWinceMagic = 0x12345678
Low-level format nand flash ...

Reserving Blocks [0x0 - 0x13] ...

...reserve complete.

Low-level format Blocks [0x14 - 0xFFF] ...

...erase complete.

Format nand flash for BinFS, please wait several minutes ...

System ready!
Preparing for download...
Found pTOC signature.
ROMHDR at Address 8C200044h
RomHdr.ulRAMStart=8E600000h RomHdr.physfirst=8C200000h.
::OEMLaunch, ImageStart:0x8C200000, ImageLength:0x11ED9DC, LaunchAddr:0x8C201000
OEMLaunch: (IMAGE_TYPE_RAMIMAGE ¦IMAGE_TYPE_BINFS)
+WriteRegionsToBootMedia: ImageStart: 0x8C200000, ImageLength: 0x11ED9DC, LaunchAddr:0x8C201000
INFO: OEMLaunch: Found chain extenstion: '' @ 0x8C200000
Writing single region/multi-region update, dwBINFSPartLength: 18799068
dwRegionStart: 0x8C200000, dwRegionLength: 0x11ED9DC, dwStoreOffset: 0x0
Updateded TOC!
-WriteRegionsToBootMedia
+TOC_Write
Erasing Block: 19

FMD_WriteSector.............

FMD_ReadSector.............

memcmp.............

TOC {
dwSignature: 0x434F544E
BootCfg {
  ConfigFlags: 0x3820
  BootDelay: 0xF
  ImageIndex: 1
  IP: 0.0.0.0
  MAC Address: 00:00:00:00:00:00
  Port: 0.0.0.0
  SubnetMask: 255.255.255.255
}
ID[0] {
  dwVersion: 0x10002
  dwSignature: 0x45424F54
  String: 'eboot.nb0'
  dwImageType: 0x2
  dwTtlSectors: 0x100
  dwLoadAddress: 0x8C038000
  dwJumpAddress: 0x8C038000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x100
  sgList[0].dwLength: 0x100
}
ID[1] {
  dwVersion: 0x1
  dwSignature: 0x43465349
  String: ''
  dwImageType: 0x6
  dwTtlSectors: 0x8F6D
  dwLoadAddress: 0x8C200000
  dwJumpAddress: 0x8C201000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x520
  sgList[0].dwLength: 0x8F6D
}
chainInfo.dwLoadAddress: 0X00000000
chainInfo.dwFlashAddress: 0X00000000
chainInfo.dwLength: 0X00000000
}
-TOC_Write
TOC {
dwSignature: 0x434F544E
BootCfg {
  ConfigFlags: 0x3820
  BootDelay: 0xF
  ImageIndex: 1
  IP: 0.0.0.0
  MAC Address: 00:00:00:00:00:00
  Port: 0.0.0.0
  SubnetMask: 255.255.255.255
}
ID[0] {
  dwVersion: 0x10002
  dwSignature: 0x45424F54
  String: 'eboot.nb0'
  dwImageType: 0x2
  dwTtlSectors: 0x100
  dwLoadAddress: 0x8C038000
  dwJumpAddress: 0x8C038000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x100
  sgList[0].dwLength: 0x100
}
ID[1] {
  dwVersion: 0x1
  dwSignature: 0x43465349
  String: ''
  dwImageType: 0x6
  dwTtlSectors: 0x8F6D
  dwLoadAddress: 0x8C200000
  dwJumpAddress: 0x8C201000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x520
  sgList[0].dwLength: 0x8F6D
}
chainInfo.dwLoadAddress: 0X00000000
chainInfo.dwFlashAddress: 0X00000000
chainInfo.dwLength: 0X00000000
}

Jumping to image at virtual address 0x8C201000h
+ToPhysicalAddr:0x8C201000
-ToPhysicalAddr:0x30201000

::: Physical Launch Address: 0x30201000h
Windows CE Kernel for ARM (Thumb Enabled) Built on Jun 24 2004 at 18:25:00
ProcessorType=0920  Revision=0
sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable = 8c2013bc

Windows CE Firmware Init
INFO: Initializing system interrupts...
INFO: Initializing system clock(s)...
INFO: Initializing driver globals area...
SDMMC config set rGPGCON: fd96ffba
OEMInit Done...
Sp=ffffc7cc
AngusLiu
驱动牛犊
驱动牛犊
  • 注册日期2002-10-08
  • 最后登录2009-10-20
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望18点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-06-28 19:26
不能启动的
Clear the free memory .............................................................
Read eboot image from flash ......
Sector addr on NAND: 0x100
TotalSector: 0x100
LoadAddress: 0x30038000
JumpAddr: 0x30038000

Now, to download the wince image(nk.bin) ......
USB host is connected. Waiting a download.

Now, Downloading [ADDRESS:30058000h,TOTAL:15548077]
Downloaded file at 0x30000000, size = 15548067 bytes
Mark bad blocks as unused ......
Mark Block 0 as unused, has mark 1 blocks
Mark Block 1 as unused, has mark 2 blocks
Mark Block 2 as unused, has mark 3 blocks
Mark Block 3 as unused, has mark 4 blocks
Mark Block 4 as unused, has mark 5 blocks
Mark Block 5 as unused, has mark 6 blocks
Mark Block 6 as unused, has mark 7 blocks
Mark Block 7 as unused, has mark 8 blocks
Mark Block 8 as unused, has mark 9 blocks
Mark Block 9 as unused, has mark 10 blocks
Mark Block 10 as unused, has mark 11 blocks
Mark Block 11 as unused, has mark 12 blocks
Mark Block 12 as unused, has mark 13 blocks
Mark Block 13 as unused, has mark 14 blocks
Mark Block 14 as unused, has mark 15 blocks
Mark Block 15 as unused, has mark 16 blocks
Mark Block 16 as unused, has mark 17 blocks
Mark Block 17 as unused, has mark 18 blocks
Mark Block 18 as unused, has mark 19 blocks
Mark Block 19 as unused, has mark 20 blocks
Extract wince image throught USB ......


OEMMultiBINNotify: Download BIN file information:

-----------------------------------------------------

[0]: Base Address=0x8c200000  Length=0xf28c50

-----------------------------------------------------

OEMVerifyMemory: StartAddr: 0x8c200000, Length:0xf28c50

*** Downloading UNKNOWN image type ***

..............
dwImageStart : 0x8c200000

dwImageLength: 0xf28c50

LaunchAddr  : 0x8c208810


rom_offset=0x0.

Run eboot, JumpAddr = 0x30038000
..

Microsoft Windows CE Ethernet Bootloader Common Library Version 1.0 Built Jan 28 2007 17:47:35
Copyright (c) 2000-2001  Microsoft Corporation
Microsoft Windows CE SMDK2440 Bootloader Version 1.2 Built Jan 28 2007 17:47:27
FMD::FMD_Init

FMD::FMD_Init Done

TOC_Read
FMD: ECC ERROR - Page #: 608
(0:FF 0:C0 0:CF)
FMD: Unable to correct the ECC error - Page #: 608

TOC_Read ERROR: Unable to read TOC
TOC_Init: dwEntry:1, dwImageType: 0x6, dwImageStart: 0x0, dwImageLength: 0x0, dwLaunchAddr: 0x0
+BootConfigInit
-BootConfigInit
TOC {
dwSignature: 0x434F544E
BootCfg {
  ConfigFlags: 0x3020
  BootDelay: 0xF
  ImageIndex: 1
  IP: 0.0.0.0
  MAC Address: 00:00:00:00:00:00
  Port: 0.0.0.0
  SubnetMask: 255.255.255.255
}
ID[0] {
  dwVersion: 0x10002
  dwSignature: 0x45424F54
  String: 'eboot.nb0'
  dwImageType: 0x2
  dwTtlSectors: 0x100
  dwLoadAddress: 0x8C038000
  dwJumpAddress: 0x8C038000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x100
  sgList[0].dwLength: 0x100
}
ID[1] {
  dwVersion: 0x1
  dwSignature: 0x43465349
  String: ''
  dwImageType: 0x6
  dwTtlSectors: 0x0
  dwLoadAddress: 0x0
  dwJumpAddress: 0x0
  dwStoreOffset: 0x0
}
chainInfo.dwLoadAddress: 0X00000000
chainInfo.dwFlashAddress: 0X00000000
chainInfo.dwLength: 0X00000000
}
g_pViviWinceInfo = 0x301D8000, g_pViviWinceInfo->dwViviWinceMagic = 0x12345678
Low-level format nand flash ...

Reserving Blocks [0x0 - 0x13] ...

...reserve complete.

Low-level format Blocks [0x14 - 0xFFF] ...

...erase complete.

Format nand flash for BinFS, please wait several minutes ...

System ready!
Preparing for download...
Found pTOC signature.
ROMHDR at Address 8C200044h
RomHdr.ulRAMStart=8E600000h RomHdr.physfirst=8C200000h.
::OEMLaunch, ImageStart:0x8C200000, ImageLength:0xF28C50, LaunchAddr:0x8C208810
OEMLaunch: (IMAGE_TYPE_RAMIMAGE ¦IMAGE_TYPE_BINFS)
+WriteRegionsToBootMedia: ImageStart: 0x8C200000, ImageLength: 0xF28C50, LaunchAddr:0x8C208810
INFO: OEMLaunch: Found chain extenstion: '' @ 0x8C200000
Writing single region/multi-region update, dwBINFSPartLength: 15895632
dwRegionStart: 0x8C200000, dwRegionLength: 0xF28C50, dwStoreOffset: 0x0
Updateded TOC!
-WriteRegionsToBootMedia
+TOC_Write
Erasing Block: 19

FMD_WriteSector.............

FMD_ReadSector.............

memcmp.............

TOC {
dwSignature: 0x434F544E
BootCfg {
  ConfigFlags: 0x3820
  BootDelay: 0xF
  ImageIndex: 1
  IP: 0.0.0.0
  MAC Address: 00:00:00:00:00:00
  Port: 0.0.0.0
  SubnetMask: 255.255.255.255
}
ID[0] {
  dwVersion: 0x10002
  dwSignature: 0x45424F54
  String: 'eboot.nb0'
  dwImageType: 0x2
  dwTtlSectors: 0x100
  dwLoadAddress: 0x8C038000
  dwJumpAddress: 0x8C038000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x100
  sgList[0].dwLength: 0x100
}
ID[1] {
  dwVersion: 0x1
  dwSignature: 0x43465349
  String: ''
  dwImageType: 0x6
  dwTtlSectors: 0x7947
  dwLoadAddress: 0x8C200000
  dwJumpAddress: 0x8C208810
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x520
  sgList[0].dwLength: 0x7947
}
chainInfo.dwLoadAddress: 0X00000000
chainInfo.dwFlashAddress: 0X00000000
chainInfo.dwLength: 0X00000000
}
-TOC_Write
TOC {
dwSignature: 0x434F544E
BootCfg {
  ConfigFlags: 0x3820
  BootDelay: 0xF
  ImageIndex: 1
  IP: 0.0.0.0
  MAC Address: 00:00:00:00:00:00
  Port: 0.0.0.0
  SubnetMask: 255.255.255.255
}
ID[0] {
  dwVersion: 0x10002
  dwSignature: 0x45424F54
  String: 'eboot.nb0'
  dwImageType: 0x2
  dwTtlSectors: 0x100
  dwLoadAddress: 0x8C038000
  dwJumpAddress: 0x8C038000
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x100
  sgList[0].dwLength: 0x100
}
ID[1] {
  dwVersion: 0x1
  dwSignature: 0x43465349
  String: ''
  dwImageType: 0x6
  dwTtlSectors: 0x7947
  dwLoadAddress: 0x8C200000
  dwJumpAddress: 0x8C208810
  dwStoreOffset: 0x0
  sgList[0].dwSector: 0x520
  sgList[0].dwLength: 0x7947
}
chainInfo.dwLoadAddress: 0X00000000
chainInfo.dwFlashAddress: 0X00000000
chainInfo.dwLength: 0X00000000
}

Jumping to image at virtual address 0x8C208810h
+ToPhysicalAddr:0x8C208810
-ToPhysicalAddr:0x30208810

::: Physical Launch Address: 0x30208810h
AngusLiu
驱动牛犊
驱动牛犊
  • 注册日期2002-10-08
  • 最后登录2009-10-20
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望18点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-06-28 19:27
config.bib 文件如下

MEMORY

NK 8C200000  02400000  RAMIMAGE
RAM    8E600000  01900000  RAM

AUD_DMA    8c002000  00002000  RESERVED
DRV_GLB 8c010000  00010000  RESERVED
SD_DMA 8c028000  00008000  RESERVED
DISPLAY 8c1d0000  00030000  RESERVED


CONFIG
    COMPRESSION=ON
    KERNELFIXUPS=ON

IF IMGPROFILER  
    PROFILE=ON
ELSE
    PROFILE=OFF
ENDIF

;
; ROMFLAGS is a bitmask of options for the kernel
;  ROMFLAGS    0x0001      Disallow Paging
;  ROMFLAGS    0x0002      Not all KMode
;  ROMFLAGS    0x0010      Trust Module only
;
IF IMGTRUSTROMONLY
    IF IMGNOTALLKMODE
      ROMFLAGS=12
    ELSE
      ROMFLAGS=10
    ENDIF
ELSE
    IF IMGNOTALLKMODE
      ROMFLAGS=02
    ELSE
      ROMFLAGS=00
    ENDIF
ENDIF

ROMSTART=8C200000  
ROMWIDTH=32
ROMSIZE=02400000
AngusLiu
驱动牛犊
驱动牛犊
  • 注册日期2002-10-08
  • 最后登录2009-10-20
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望18点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-06-30 09:21
哪位熟悉这方面的高人指点一下,我的eboot是同一个,LaunchAddr的值怎么会不同?
这个值和nk.bin大小有关?还是一个固定值?

LaunchAddr  : 0x8c208810

LaunchAddr  : 0x8c201000
zhengshijie
驱动小牛
驱动小牛
  • 注册日期2003-07-11
  • 最后登录2009-03-18
  • 粉丝1
  • 关注0
  • 积分8分
  • 威望217点
  • 贡献值0点
  • 好评度199点
  • 原创分3分
  • 专家分0分
6楼#
发布于:2008-06-30 16:04
launchaddr地址要固定是0x8c201000,startup.s中有
STARTUPTEXT,如果启动代码中是TEXTAREA则启动地址不固定,其实启动地址不固定不一定是内核跑不起来的关键因素,微软提供的标准smdk2410的bsp代码就是这样的,在platform/smdk2410/src/kernel/oal/startup.s
 TEXTAREA
        
        ; Include memory configuration file with g_oalAddressTable

        INCLUDE oemaddrtab_cfg.inc
 
        LEAF_ENTRY StartUp
它的地址就不固定。可以把oal目录下不编译startup.s到oal.lib,kern/souces
    $(_PLATCOMMONLIB)\$(_CPUINDPATH)\oal_startup_s3c2440a.lib \
类似,如果你有platform/common/src/arm/samsung/s3c2440a/startup目录代码。
游客

返回顶部