总算又有点进展了,现在可以通信了,但是下载几个record就死在那里了,下面是串口信息:
Starting auto-download ...
INFO: Probe: DM9000 is detected.
DM9000: MAC Address: 20:4:9:18:0:7
initialize Ethernet controller successful.
System ready!
Preparing for download...
INFO: Using static IP address 3.35.89.85.
INFO: Using subnet mask 255.255.255.0.
INFO: Using device name: 'MBA24407'
+EbootSendBootmeAndWaitForTftp
Sent BOOTME to 255.255.255.255
Sent BOOTME to 255.255.255.255
Sent BOOTME to 255.255.255.255
Locked Down Link 1
Src IP 3.35.89.85 Port 0400 Dest IP 3.35.89.84 Port 0859
EthDown::TFTPD_OPEN::boot.bin
-EbootSendBootmeAndWaitForTftp
EbootInitEtherTransport Successful!
TFTP link[0]: State:0, DestAddr.wPort: 0, SrcAddr.wPort: 0
TFTP link[1]: State:3, DestAddr.wPort: 2137, SrcAddr.wPort: 1024
TftpReceiver, port: 0x0000D403, wkp: 0x0000D403
TFTP link[0]: State:0, DestAddr.wPort: 0, SrcAddr.wPort: 0
TFTP link[1]: State:3, DestAddr.wPort: 2137, SrcAddr.wPort: 1024
TftpReceiver, port: 0x0000D403, wkp: 0x0000D403
<>OEMMultiBINNotify::pInfo->dwNumRegions = 1
Download BIN file information:
-----------------------------------------------------
[0]: Base Address=0x8C200000 Length=0x19E02E4
DownloadImage RecAddr: 0x8C200000,RecLen: 0x4,RecChk: 0x1EB
DownloadImage RecAddr: 0x8C200040,RecLen: 0x8,RecChk: 0x3F5
DownloadImage RecAddr: 0x8C200048,RecLen: 0x4,RecChk: 0x239
DownloadImage RecAddr: 0x8C201000,RecLen: 0x40000,RecChk: 0x1984708
复制代码
追踪代码,是在DownloadImage函数中的下列代码中:
// read records (start with address, length, and checksum)
while (OEMReadData (sizeof (DWORD), (LPBYTE) &dwRecAddr)
&& OEMReadData (sizeof (DWORD), (LPBYTE) &dwRecLen)
&& OEMReadData (sizeof (DWORD), (LPBYTE) &dwRecChk)) {
RETAILMSG(1, (_T("DownloadImage RecAddr: 0x%x,RecLen: 0x%x,RecChk: 0x%x\r\n"), dwRecAddr,dwRecLen,dwRecChk));
// check for last record
if (!dwRecAddr && !dwRecChk)
{
// if this is the kernel region, update launch address
if (IsKernelRegion(dwImageStart, dwImageLength))
{
RETAILMSG(1, (_T("test!\r\n"), dwImageStart));
*pdwImageStart = dwImageStart;
*pdwImageLength = dwImageLength;
*pdwLaunchAddr = dwRecLen;
RETAILMSG(1, (_T("dwImageStart : 0x%x\r\n"), dwImageStart));
RETAILMSG(1, (_T("dwImageLength: 0x%x\r\n"), dwImageLength));
RETAILMSG(1, (_T("LaunchAddr : 0x%x\r\n"), dwRecLen));
}
/*
// write to flash if it's flash image
if (fIsFlash) {
// finish the flash erase
if (!OEMFinishEraseFlash ()) {
HALT (BLERR_FLASH_ERASE);
return FALSE;
}
// Before writing the image to flash, optionally check the image signature.
if (g_pOEMCheckSignature)
{
if (!g_pOEMCheckSignature(dwImageStart, g_dwROMOffset, *pdwLaunchAddr, TRUE))
HALT(BLERR_WHQL_SIGNATURE);
}
}
*/
// On to the next (possible) BIN file...
break;
}
复制代码
大家有没有遇到过??希望sunrain_hjb大侠看看··