U-Boot与Ping命令

U-Boot与Ping命令

开发板运行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请求响应的守护进程。

你可能感兴趣的:(任务,终端)