u-boot可ping通PC,PC不可ping通u-boot

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请求响应的守护进程

 

tech# 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

posted @ 2015-08-18 11:51  yuxi_o  阅读(1971)  评论(0编辑  收藏  举报