标签:
http://blog.csdn.net/ce123_zhouwei/article/details/7339134
开发板运行U-Boot,在终端下使用Ping命令是能Ping通PC机,但PC机Ping不同U-Boot。
在开发行U-Boo下的Ethernet 驱动时,只能在Target上去Ping 外面的主机能检测以太网是否连通,如果在外面的主机上去ping目标板,则即使目标板上的Ethernet一切OK,也是ping 不通的。这是因为行U-Boo是一个单线程main_loop函数+中断处理的架构,中断处理程序处理串口输入输出等,main_loop解析U-Boot命令, 并没有另外的任务接受并处理ICMP的包,即使U-Boot支持ICMP的协议栈。
U-Boot的Ping是通过一个NETLOOP发送和接受ARP包的!LOOP会不断的检测是否接受到ARP REPLY。所以可以Ping通PC。但是U-Boot模式下是单线程的,总不会老是停在那里检测是否有ARP 。PC Ping通U-Boot的前提是:U-Boot存在一个类似于ARP请求响应的守护进程
wanweitech# ping 192.168.1.222
dm9000 i/o: 0x30000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:00:3e:26:0a:5b
could not establish link
host 192.168.1.222 is alive
u-boot可ping通PC,PC不可ping通u-boot
标签:
原文地址:http://www.cnblogs.com/embedded-linux/p/4739018.html