论坛版主
|
40楼#
发布于:2005-01-31 14:42
pb这边选config然后找到你的目标板没有?要选择一下你的目标板,然后downlaod三
用仿真器下确实比较慢,不过可以忍受:))) |
|
41楼#
发布于:2005-01-31 17:49
现在是Eboot有问题,但是找不到。在配置里面找不到设备,因而无法下载啊,好郁闷啊,回家过不了好年啦55555555555555555
|
|
论坛版主
|
42楼#
发布于:2005-02-01 13:03
哈哈,稳住稳住,革命总有一天会胜利的。对了,BLCOMMON的源代码里面有个地方写错了,不知道对你们的东西有没有影响,你先试试再说
|
|
43楼#
发布于:2005-02-01 14:39
是什么错误啊,能不能指出来?
目前这个函数处出了问题:代码如下 BOOL EbootSendBootmeAndWaitForTftp (EDBG_ADDR *pEdbgAddr, UCHAR VersionMajor, UCHAR VersionMinor, char *szPlatformString, char *szDeviceName, UCHAR CPUId, DWORD dwBootFlags) { DWORD dwCurSec = OEMEthGetSecs () - BOOTME_INTERVAL; USHORT wLen, wDestPort, wSrcPort, wUDPDataLen, *pwUDPData; int nRetries = 0; EdbgOutputDebugString ("+EbootSendBootmeAndWaitForTftp\r\n"); while (!fTftpLinked) {---看这里看这里看这里!! if ((nRetries < MAX_BOOTME_CNT) && (OEMEthGetSecs () - dwCurSec >= BOOTME_INTERVAL)) { nRetries ++; dwCurSec += BOOTME_INTERVAL; // send a bootme message EbootSendBootme (pEdbgAddr, VersionMajor, VersionMinor, szPlatformString, szDeviceName, CPUId, dwBootFlags); } // get another frame and pass it to TFTP handler wLen = sizeof (gFrameBuffer); if (OEMEthGetFrame (gFrameBuffer, &wLen)) { // frame available? switch (FRAMETYPE (gFrameBuffer)) { case 0x0800: // IP packet if (!EbootCheckUDP(pEdbgAddr, gFrameBuffer, &wDestPort, &wSrcPort, &pwUDPData, &wUDPDataLen)) { // UDP? // EDBG command? (should only occur if eshell asked us to jump to existing image) if (!EbootProcessEDBG (pEdbgAddr, &gHostAddr, gFrameBuffer, pwUDPData, wUDPDataLen, &fTftpLinked, &gpCfgData)) { // no, pass it to TFTP EbootTFtpReceiver (pEdbgAddr, gFrameBuffer, wDestPort, wSrcPort, pwUDPData, wUDPDataLen); } } break; case 0x0806: // ARP packet if (EbootProcessARP (pEdbgAddr, gFrameBuffer) == PROCESS_ARP_RESPONSE) { EdbgOutputDebugString( "Some other station has IP Address: %s !!! Aborting.\r\n", inet_ntoa(pEdbgAddr->dwIP)); return FALSE; } break; default: break; } } } EdbgOutputDebugString ("-EbootSendBootmeAndWaitForTftp\r\n"); return TRUE; } Eboot的这个函数里的fTftpLinked一直为假,所以一直循环不停的向外发送“Sent BOOTME to 255.255.255.255”只有当该值为真的时候才能跳出循环,进而连接主机UDP。但是从以太网抓包的情况来看设备一直在不停的发这个包,主机接收到了之后回了一个,但是设备根本不响应,原因在于fTftpLinked没有能够置真,搜索了所有代码也不能看出如何跳出这个循环的,是不是用了中断啊,在哪里用的呢,不能结束这个循环就不能建立连接,郁闷啊。这是怎么回事啊? |
|
44楼#
发布于:2005-02-01 14:48
在PB下载image的时候主机是如何和设备连接的啊?从这种情况来看,设备是一个循环发送的过程,设备和主机如何建立UDP呢,现在真的有点晕了。
|
|
论坛版主
|
45楼#
发布于:2005-02-01 15:18
喔,这样啊,好像兄弟伙到这儿都要遭一次喃:))),
这样,你先检查一下你的xxxgetframe和xxxsendframe是不是正确接收到包了,并且返回了什么(特别注意返回值哈,返回0成功还是1成功)。 |
|
46楼#
发布于:2005-02-02 10:35
在PB下载image的时候主机是如何和设备连接的啊?从这种情况来看,设备是一个循环发送的过程,设备和主机如何建立UDP呢,现在真的有点晕了。 检查一下你的主机和目标机的ip是不是在一个子网内啊? |
|
|
47楼#
发布于:2005-02-02 10:44
情况如图所示。
|
|
上一页
下一页