LiteOS组件尝鲜-玩转Ping
基本介绍
ICMP:Internet Control Message Protocol(互联网控制消息协议)
Ping:Packet Internet Groper(互联网包探索器)
Ping命令使用ICMP协议发送数据,用来检查网络情况是否良好。
原理
Ping用于确定本地主机是否能与另一台主机成功交换(发送与接收)数据包。根据返回的信息推断TCP/IP参数是否设置正确,以及能否正常运行、网络是否通畅等。Ping命令操作步骤如下:
- 通过将ICMP回显数据包发送到计算机并侦听回显数据包来验证与一台或多台远程计算机的连接;
- 每个发送的数据包最多等待一秒;
- 打印已传输和接受的数据包数。需要注意的是:ping成功并不一定代表TCP/IP配置正确,可能还需要执行大量本地主机与远程主机的数据包交换,从而确定TCP/IP配置的正确性。如果出现执行ping成功网络依旧无法使用的情况,问题可能出现在网络系统的软件配置方面。Ping成功只能保证当前主机与目的主机间存在一条连通的网络路径。
使用说明
Ping是用于检测网络是否通畅或者网络连接速度的命令,时延越小网络速度越快,反之时延越大速度越慢。
理论上LiteOS中支持lwIP协议栈的开发板均可支持ping命令,目前已验证ping功能的开发板有:
STM32F769IDISCOVERY
Cloud_STM32F429IGTx_FIRE
Ping命令格式
[ping <IP地址>]
使能ping
设置LiteOS源码根目录下根据实际使用的开发板,拷贝tools/build/config/目录下的默认配置文件${platform}.config到根目录,并重命名为.config。
继续在LiteOS源码根目录下执行make menuconfig命令,按如下菜单路径使能ping功能。
Components --->
Network --->
[*] Enable Ping
使能ping后,LiteOS会自动使能ping依赖的lwIP并设置为Ipv4模式。保存退出menuconfig后,LiteOS会从github上自动下载lwIP源代码,并从gitee的LiteOS组件仓库LiteOS_Components下载对应的patch包,并打入patch。关于组件下载的详细流程请参考:https://gitee.com/LiteOS/LiteOS_Components#%E5%9C%A8%E7%BA%BF%E7%BB%84%E4%BB%B6%E4%B8%8B%E8%BD%BD%E6%B5%81%E7%A8%8B注意:下载需要Linux主机可以访问互联网,并安装git。
测试
1. 准备一台PC,Linux或Windows都可;
2. 将PC与开发板连接到同一局域网内;
3. 将开发版串口和PC连接并打开串口监视软件(测试PC的IP地址为192.168.x.y,用户需要更换为自己的真实IP地址);
4. 使能ping后,在LiteOS源码根目录下执行make clean ; make -j命令编译LiteOS工程,编译成功后将在out/${platform}/lib目录下生成组件静态库文件libping.a,系统镜像文件为Huawei_LiteOS.bin;
5. 烧录系统镜像文件,复位开发板;
6. 进入shell,输入help命令后,如果显示ping命令,则表明已经生效。
Huawei LiteOS # help
*******************shell commands:*************************
date free help hwi ifconfig log memcheck ping
swtmr systeminfo task uname watch
Huawei LiteOS #
7. 测试网络
在shell中输入ping 192.168.x.y命令,如下所示则说明网络畅通。
Huawei LiteOS # ping 192.168.x.y
Ping 4 packets start.
Huawei LiteOS #
Huawei LiteOS # [0]Reply from 192.168.x.y: time=2ms TTL=128.
[1]Reply from 192.168.x.y: time=0ms TTL=128.
[2]Reply from 192.168.x.y: time=1ms TTL=128.
[3]Reply from 192.168.x.y: time=1ms TTL=128.
如果出现请求超时,如下所示则说明网络故障。
Huawei LiteOS # ping 192.168.x.y
Ping 4 packets start.
Huawei LiteOS # Ping : request timed out.
Ping : request timed out
Ping : request timed out.
Ping : request timed out.
以上为“ping”使用说明的全部内容,欢迎大家学习交流。
结语
未来我们还会持续新增更多组件、开发板、架构、特性等。
感谢您的阅读,有任何问题、建议,都可以留言给我们,让我们一起进步:https://gitee.com/LiteOS/LiteOS/issues。
为了更容易找到“LiteOS”代码仓,建议访问https://gitee.com/LiteOS/LiteOS,关注“ Watch”、点赞“Star”、并“Fork”到自己账号下,如图所示。
-end-
- 点赞
- 收藏
- 关注作者
评论(0)