首页>>互联网>>物联网->手把手带你玩转LiteOS Ping组件

手把手带你玩转LiteOS Ping组件

时间:2023-11-29 本站 点击:0

基本介绍

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--->[*]EnablePing

使能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命令,则表明已经生效。

HuaweiLiteOS#help*******************shellcommands:*************************datefreehelphwiifconfiglogmemcheckpingswtmrsysteminfotaskunamewatchHuaweiLiteOS#

7. 测试网络

在shell中输入ping192.168.x.y命令,如下所示则说明网络畅通。

HuaweiLiteOS#ping192.168.x.yPing4packetsstart.HuaweiLiteOS#HuaweiLiteOS#[0]Replyfrom192.168.x.y:time=2msTTL=128.[1]Replyfrom192.168.x.y:time=0msTTL=128.[2]Replyfrom192.168.x.y:time=1msTTL=128.[3]Replyfrom192.168.x.y:time=1msTTL=128.

如果出现请求超时,如下所示则说明网络故障。

HuaweiLiteOS#ping192.168.x.yPing4packetsstart.HuaweiLiteOS#Ping:requesttimedout.Ping:requesttimedoutPing:requesttimedout.Ping:requesttimedout.

以上为“ping”使用说明的全部内容,欢迎大家学习交流。

结语

未来我们还会持续新增更多组件、开发板、架构、特性等。

感谢您的阅读,有任何问题、建议,都可以留言给我们,让我们一起进步:

https://gitee.com/LiteOS/LiteOS/issues。

为了更容易找到“LiteOS”代码仓,建议访问https://gitee.com/LiteOS/LiteOS,关注“ Watch”、点赞“Star”、并“Fork”到自己账号下,如图所示。

本文分享自华为云社区,作者:Lionlace 。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/IOT/1532.html