手把手带你玩转LiteOS Ping组件
摘要:本期小编为大家带来LiteOS开源版本Ping组件的使用说明,请跟随小编的步伐一起进入探索之旅吧!
本文分享自华为云社区《LiteOS组件尝鲜-玩转Ping》,作者:Lionlace 。
基本介绍
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”到自己账号下,如图所示。

更多学习内容,请关注IoT物联网社区添加华为云IoT小助手微信号(hwc-iot),回复“阅读”获取更多资讯。
手把手带你玩转LiteOS Ping组件的更多相关文章
- Java开发不懂Docker,学尽Java也枉然,阿里P8架构师手把手带你玩转Docker实战
转: Java开发不懂Docker,学尽Java也枉然,阿里P8架构师手把手带你玩转Docker实战 Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一 ...
- 手把手带你玩转Linux
今天这篇文章带你走进Linux世界的同时,带你手把手玩转Linux,加深对Linux系统的认识. 一.搞好Linux工作必须得不断折腾,说白了,只是动手力量必须强.我在初学Linux的那片,家中三台计 ...
- Android 手把手带你玩转自己定义相机
本文已授权微信公众号<鸿洋>原创首发,转载请务必注明出处. 概述 相机差点儿是每一个APP都要用到的功能,万一老板让你定制相机方不方?反正我是有点方. 关于相机的两天奋斗总结免费送给你. ...
- 手把手带你玩转 DialogFragment
前言 本文已经收录到我的 Github 个人博客,欢迎大佬们光临寒舍: 我的 GIthub 博客 思维导图 一.为什么要学习 DialogFragment 你还在用 Dialog 吗? 你还在经常烦恼 ...
- 手把手教你玩转 CSS3 3D 技术
css3的3d起步 要玩转css3的3d,就必须了解几个词汇,便是透视(perspective).旋转(rotate)和移动(translate).透视即是以现实的视角来看屏幕上的2D事物,从而展现3 ...
- 手把手教你玩转CSS3 3D技术
手把手教你玩转 CSS3 3D 技术 要玩转css3的3d,就必须了解几个词汇,便是透视(perspective).旋转(rotate)和移动(translate).透视即是以现实的视角来看屏幕上 ...
- 带你玩转Visual Studio
带你玩转Visual Studio 带你新建一个工程 工程目录下各文件的含义 解决方案与工程 在这之前先了解一个概念:解决方案与工程. 解决方案(Solution):一个大型项目的整体的工作环境: 工 ...
- 完毕port(CompletionPort)具体解释 - 手把手教你玩转网络编程系列之三
手把手叫你玩转网络编程系列之三 完毕port(Completion Port)具体解释 ...
- wing带你玩转自定义view系列(1) 仿360内存清理效果
本篇是接自 手把手带你做自定义view系列 宗旨都是一样,带大家一起来研究自定义view的实现,与其不同的是本系列省去了简单的坐标之类的讲解,重点在实现思路,用简洁明了的文章,来与大家一同一步步学习. ...
- 带你玩转Visual Studio——带你了解VC++各种类型的工程
原文地址:http://blog.csdn.net/luoweifu/article/details/48816605 上一篇文章带你玩转Visual Studio——带你新建一个工程一文中提到新建一 ...
随机推荐
- Unity - UIWidgets 2. 控件组合
UIWidgets没有提供完整文档, 称可以去看Flutter的文档 中文 \ 英文 控件(Control)在Flutter中称为"Widget", 一个界面的若干控件是通过wid ...
- vscode/sublime 语法高亮定义和代码段的区别
vscode插件数据格式基于json,sublime插件数据格式基于xml.sublime插件的官方文档说的不清楚,相关教程也很难找,遇到的一些坑记录一下 语法定义文件对比 同样使用TextMate定 ...
- c#使用正则表达式匹配提取日期
string target_p ="2021/09/18"; string target_q ="2021-09-18"; 格式yyyy/MM/dd: Matc ...
- tomcat nio2源码分析
一. 前言 最近在看tomcat connector组件的相关源码,对Nio2的异步回调过程颇有兴趣,平时读源码不读,自己读的时候很多流程都没搞明白,去查网上相关解析讲的给我感觉也不是特别清晰,于 ...
- 圆方树 useful things
圆方树,是解决仙人掌问题的实用方法,假设最初图都是圆点,对于每个环新建一个方点并连接这个环上所有圆点,能很好规避同一个点可能属于很多个环的情况,并且发现build完之后是一棵树 广义圆方树,能够不局限 ...
- this.$router 与this.$route的区别
this.$router是Vue-Router的实例,需要导航到不同路由则用this.$router.push方法 this.$route为当前路由的跳转对象,包含当前路由的name.path.que ...
- CDQ分治(初步入门)
CDQ分治 CDQ分治,传说中是一个神犇创造的算法. 在了解这种算法之前,我们有必要了解一下一种基本的思想:分治. 分治介绍 分而治之,将原问题不断划分成若干个子问题,直到子问题规模小到足以直接解决 ...
- c#实现一个简单的管理系统报错System.Data.SqlClient.SqlException”类型的未经处理的异常在 System.Data.dll 中发生【已解决】
很简单就是把连接数据库语句改成(local)或者"127.0.0.1" 如下 public SqlConnection connect() { string str = @&quo ...
- 练习感受以及经验总结(ing)
connection = DriverManager.getConnection(url, user,password );顺序一定不能搞错,当时顺序写错了.查bug查了一晚上.得益于两个函数都用到了 ...
- SQLBI_精通DAX课程笔记_02_数据类型
SQLBI_精通DAX课程笔记_02_数据类型 PowerBi 和 Analysis Services 在数据加载环节,无论数据源是什么类型,都会自动将数据转化为DAX可用的数据类型集. 以下链接为微 ...