下载内核影像NK.bin问题

脉清心爱 2009-10-26 11:42:07
我在把EBoot烧写到SM卡后,按照EBoot的菜单,一步一步做,到下载内核影像时,按“D”后,出现:
Enter your selection: d
::: DM9000DBG_Init
DM9000 Mac Address: 11:22:33:44:55:66
::: DM9000 Probe()
DM9000 is Detected..
Freddy:Reset NCR Success.
GPCR=1,GPR=0.
DM9000_Init OK.
System ready!
Preparing for download...
+OEMPreDownload: 1
Using device name: 'SMDK241021862'
到此就停住,没反应了。
有哪位高手知道是什么原因?怎么解决?渴求赐教!!
...全文
126 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
脉清心爱 2009-10-27
  • 打赏
  • 举报
回复
谢谢高手们的答复!!
在其它地方查了一下,说是要么是时钟模块有问题,要么是电池没电了。
现在想验证一下是否是时钟未初始化,所以希望能够得到一个能使WinCE跑起来的EBoot(基于2410的),
渴求高手们的帮助。
麻烦回复到:xinai84@126.com
宇帆 2009-10-27
  • 打赏
  • 举报
回复
估计是板子问题
gooogleman 2009-10-26
  • 打赏
  • 举报
回复
PB 端连接了吗
脉清心爱 2009-10-26
  • 打赏
  • 举报
回复
PB是打开着的,但“Confiure Remote Connection”后,“Configure”,之后根本就看不得目标设备,请问是什么原因啊?
看了,一步一步追踪到:
BOOL EbootInitEtherTransport (EDBG_ADDR *pEdbgAddr, LPDWORD pdwSubnetMask,
BOOL *pfJumpImg, // will be set to TRUE if eshell asked us to jump to existing image
DWORD *pdwDHCPLeaseTime, // this parameter is overloaded. pass NULL to indicate static IP
UCHAR VersionMajor, UCHAR VersionMinor,
char *szPlatformString, char *szDeviceName,
UCHAR CPUId, DWORD dwBootFlags)
{
// simple check on arguments
if (!pEdbgAddr || !pdwSubnetMask || !szPlatformString) {
return FALSE;
}

// find out IP address and verify it
if (pdwDHCPLeaseTime) {
if (!EbootGetDHCPAddr (pEdbgAddr, pdwSubnetMask, pdwDHCPLeaseTime)) {
return FALSE;
}
} else {
if (!EbootCheckIP (pEdbgAddr)) {
EdbgOutputDebugString ("Some other station has IP Address: %s !!! Aborting.\r\n", inet_ntoa(pEdbgAddr->dwIP));
return FALSE;
}
// This will tell CheckUDP() to only accept datagrams for our IP address
ClearPromiscuousIP();
}

if (!EbootInitTftpSimple (pEdbgAddr, htons(EDBG_DOWNLOAD_PORT), htons(EDBG_DOWNLOAD_PORT), EDBG_DOWNLOAD_FILENAME)) {
return FALSE;
}
if (!EbootSendBootmeAndWaitForTftp (pEdbgAddr, VersionMajor, VersionMinor, szPlatformString, szDeviceName, CPUId, dwBootFlags))
return FALSE;

*pfJumpImg = (NULL != gpCfgData);
return TRUE;
}
可以确定问题出在这,在该函数中,调用EbootSendBootmeAndWaitForTftp() 将显示:
+EbootSendBootmeAndWaitForTftp //即“Using device name: 'SMDK241021862' ”接下来要显示的
显示了上句,该句未显示,说明该函数违背调用;再看上面的一个函数:EbootInitTftpSimple()
BOOL EbootInitTftpSimple (EDBG_ADDR *pEdbgAddr, UINT16 wOdoWKSP, UINT16 wHostWKSP, char *pszFileName)
{
// Set up TFTP server. Note that internally, we store port numbers in network byte order.
EbootInitTFtp (wOdoWKSP, wHostWKSP);
EbootInitTFtpd ();
if (EbootTFtpdServerRegister (pszFileName, EbootSimpleCallback)) {
EdbgOutputDebugString( "Server Registration Failed\r\n" );
return FALSE;
}
gpEdbgAddr = pEdbgAddr;
return TRUE;
}
很显然,调用这个函数没什么问题,否则的话,会有信息显示;再往上,由于未使用DHCP,if语句未执行,转入else中执行,其中的if处也不会有问题,接下来,调用ClearPromiscuousIP(),
void ClearPromiscuousIP( void ) {

fPromiscuousIP = 0;
}

也不会有问题;再往上,if语句中,前两个变量,由于IP和子网掩码都已设置,不可能为假,后边一个接收的是一个宏,也不为假。最后,得出矛盾,问题不在这。
请高手们指教!!
博说医械研发 2009-10-26
  • 打赏
  • 举报
回复
看下bootloader的代码,出现这段打印信息之后执行了什么内容,主要是看执行到哪个环节、卡在哪个环节了

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧