我的平台是2440,wince5.0,系统在启动过程中,停在nandflash驱动部分,之前系统是用supervivi,flash disc 和 hive 都是好的,现在使用eboot,
我修改了loader.h部分的block地址,loader.h 文件如下:
// Memory reigions defined in boot.bib...
//
#define EBOOT_RAM_IMAGE_BASE 0x8c038000
#define EBOOT_RAM_IMAGE_SIZE 0x00080000
#define EBOOT_STORE_OFFSET 0
#define EBOOT_STORE_ADDRESS (EBOOT_RAM_IMAGE_BASE + EBOOT_STORE_OFFSET)
#define EBOOT_STORE_MAX_LENGTH EBOOT_RAM_IMAGE_SIZE
// Flash Cache area defined in boot.bib
#define FLASH_CACHE 0x8D000000UL
#define FLASH_CACHE_SIZE 0x01000000UL
// BinFS work area defined in boot.bib
#define BINFS_RAM_START (0x8c021000 | CACHED_TO_UNCACHED_OFFSET) // uncached
#define BINFS_RAM_LENGTH 0x5000
//
// Nk Memory reigions defined in config.bib...
//
#define ROM_RAMIMAGE_START 0x8C100000
#define ROM_RAMIMAGE_SIZE 0x01000000
// Start addresses must match config.bib's RAMIMAGE
#define RAM_START 0x8d100000
#define RAM_SIZE 0x00F00000
#define DEFAULT_LAUNCHADDR ROM_RAMIMAGE_START
//
// SDRAM
//
#define SDRAM_BASE 0x8C000000 // defined in OEMAddressTable
#define SDRAM_SIZE 0x02000000 // 32 MB
//
// On disk structures for NAND bootloaders...
//
//
// OEM Reserved (Nand) Blocks for TOC and various bootloaders
//
// NAND Boot (loads into SteppingStone) @ Block 0
#define NBOOT_BLOCK 0
#define NBOOT_BLOCK_SIZE 1 /*1 change by capbily for vivi */
#define NBOOT_SECTOR BLOCK_TO_SECTOR(NBOOT_BLOCK)
// TOC @ Block 1
#define TOC_BLOCK 1 /*1 change by capbily for vivi */
#define TOC_BLOCK_SIZE 1
#define TOC_SECTOR BLOCK_TO_SECTOR(TOC_BLOCK)
// Eboot @ Block 2
#define EBOOT_BLOCK 2 /*2 change by capbily for vivi */
#define EBOOT_SECTOR_SIZE FILE_TO_SECTOR_SIZE(EBOOT_RAM_IMAGE_SIZE) /*FILE_TO_SECTOR_SIZE(EBOOT_RAM_IMAGE_SIZE)*/
#define EBOOT_BLOCK_SIZE SECTOR_TO_BLOCK(EBOOT_SECTOR_SIZE) /*SECTOR_TO_BLOCK(EBOOT_SECTOR_SIZE)*/
#define EBOOT_SECTOR BLOCK_TO_SECTOR(EBOOT_BLOCK)
#define RESERVED_BOOT_BLOCKS (NBOOT_BLOCK_SIZE + TOC_BLOCK_SIZE + EBOOT_BLOCK_SIZE)// (NBOOT_BLOCK_SIZE + TOC_BLOCK_SIZE + EBOOT_BLOCK_SIZE)
// Images start after OEM Reserved Blocks
#define IMAGE_START_BLOCK RESERVED_BOOT_BLOCKS
#define IMAGE_START_SECTOR BLOCK_TO_SECTOR(IMAGE_START_BLOCK)
下载时候串口打印信息如下:
WriteMBR: MBR block = 0x22.
Done.
OpenPartition: Partition Exists=0x0 for part 0x21.
CreatePartition: Enter CreatePartition for 0x21.
LastLogSector: Last log sector is: 0x1F3BF.
CreatePartition: Start = 0x460, Num = 0x90C0.
Log2Phys: Logical 0x460 -> Physical 0x8A0
WriteMBR: MBR block = 0x22.
dwRegionStart: 0x8C200000, dwRegionLength: 0x1215BC8, dwStoreOffset: 0x0
BP_SetDataPointer at 0x0
WriteData: Start = 0x0, Length = 0x1215BC8.
Log2Phys: Logical 0x460 -> Physical 0x8A0
Updateded TOC!
IsValidMBR: MBR sector = 0x440
OpenPartition: Partition Exists=0x0 for part 0xB.
CreatePartition: Enter CreatePartition for 0xB.
FindFreeSector: FreeSector is: 0x9520 after processing part 0x21.
CreatePartition: Num sectors set to 0x15D60 to allow for compaction blocks.
CreatePartition: Start = 0x9520, Num = 0x15D60.
WriteMBR: MBR block = 0x22.
-WriteRegionsToBootMedia
+TOC_Write
-TOC_Write
TOC {
dwSignature: 0x434F544E
BootCfg {
ConfigFlags: 0x2830
BootDelay: 0xF
ImageIndex: 1
IP: 192.168.0.21
MAC Address: 12:34:56:78:AC:00
Port: 0.0.0.0
SubnetMask: 255.255.255.0
}
ID[0] {
dwVersion: 0x10002
dwSignature: 0x45424F54
String: 'eboot.nb0'
dwImageType: 0x2
dwTtlSectors: 0x400
dwLoadAddress: 0x8C038000
dwJumpAddress: 0x8C038000
dwStoreOffset: 0x0
sgList[0].dwSector: 0x40
sgList[0].dwLength: 0x400
}
ID[1] {
dwVersion: 0x1
dwSignature: 0x43465349
String: ''
dwImageType: 0x6
dwTtlSectors: 0x90AE
dwLoadAddress: 0x8C200000
dwJumpAddress: 0x8C201000
dwStoreOffset: 0x0
sgList[0].dwSector: 0x8A0
sgList[0].dwLength: 0x90AE
}
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...
INFO: display logo ok
SDMMC config set rGPGCON: fd96fdba
SDMMC config Init Done.
OEMInit Done...
Sp=ffffc7cc
FMD::FMD_Init
FMD::FMD_Init Done
FMD::FMD_OEMIoControl:nandflash
FMD::FMD_OEMIoControl:nandflash
FMD::FMD_OEMIoControl = 0x71c24
到这里就卡死了。
请教各位,问题出在哪里呢?