LiteOS组件尝鲜-玩转Ping

Lionlace 发表于 2021/11/12 16:50:31 2021/11/12
【摘要】 本期小编为大家带来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-


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。