嵌入式linux与windows之间的tftp文件传输(保姆级)

前言

在我们接触嵌入式Linux之前,你一定接触过ubantu或者centos或者其它Linux发行版吧,很好,目前我们都是使用在虚拟机上面的。而我们所说
的嵌入式Linux,是运行在开发板里面的(裁剪后Linux)。

一、为什么要文件传输

首先,为什么我们要实现将windows的文件传给嵌入式Linux(板子)呢?因为嵌入式设备(板子)的运行速度往往比主机慢得多,许多专用的嵌入式硬件被设计为低成本和低功耗,没有太高的性能。整个编译过程是非常消耗资源的,嵌入式系统往往没有足够的内存或磁盘空间,因为板子的内存空间资源有限,而且因为Linux系统是经过裁剪,很多库也没有,所以,在板子上去安装gcc去编译程序不太现实。

所以我们就需要通过电脑去编译后,然后把可执行文件传输给板子。

二、利用共享文件夹(简要流程)

我的做法是在VMware虚拟机中与windows共享文件夹,这样在虚拟机中(centos7系统)中写C程序,然后在虚拟机中编译程序生成执行文件存放在这个共享文件夹中。

因为是共享文件夹,所以windows可以直接去查看传输这些文件到板子上。

三、tftp传输与环境搭建

windows与嵌入式Linux(板子)间是通过tftp进行文件传输的(至于tftp的知识,这里不介绍,不是很了解也不影响这个操作)。想要进行tftp传输,自然需要去搭建tftp环境,谁要用到,谁就得搭建。所以windows需要搭建tftp环境(作为服务端tftp-service发送),一般来说对于嵌入式Linux设备(板子),该设备中的u-boot支持tftp-client(作为客户端接收),所以嵌入式设备不用配置tfpt,那么windows怎么搭建这个所谓的tfpt环境呢,其实很简单,只需要下载一个软件就好了------tftp32。而板子的嵌入式Linux系统又不用做什么,是不是很简单。(资源链接放下面需要自提)

软件链接:https://pan.baidu.com/s/1L7RxhJEozw160BgzIHDI4Q 
提取码:tftp

四、传输前的准备工作

搭建好环境之后呢,我们就需要进行联网操作,因为我们文件传输是得有网络,才能传输的嘛,所以联网很关键!而且要在同一个网段下(可以两个设备连接上同一个路由器)。一个就是我们的电脑windows连网,还有就是我们的嵌入式设备(开发板),也需要联网,至于开发板怎么联网,好问题!我当时是通过系统自带的脚本文件执行联网的。如下图:
(通过MobaXterm软件中串口连接开发板进入的嵌入式Linux系统)
在这里插入图片描述
etc 目录下有个wlan-connect.sh的脚本文件,
在命令行输入./wlan-connec WIFI名 WIFI密码 1 就可以连接上WIFI了!

MobaXterm软件资源链接:https://pan.baidu.com/s/1k1RAurXizs1IuDzaI7VQkg 
提取码:lsc6

五、测试准备工作是否完成

连上网络之后,我们先用ping命令去测试一下,windows,能不能与嵌入式Linux ping通。
windows中win+R,输入cmd回车,进入一个黑色的窗口,然后输入ping 嵌入式Linux的ip,然后回车
(windows ping 开发板成功的现象)
在这里插入图片描述

如果你不知道你的开发板的IP地址,你可以输入命令ifconfig查看:

在这里插入图片描述

然后在嵌入式Linux中去ping windows的ip,看看是否能够ping通
(嵌入式Linux(开发板) ping windows成功的现象)
在这里插入图片描述
如果你不知道怎么看你的windows的IP地址,你可以点开你电脑连接的WIFI,然后点属性,拉到最下面,那个Ipv4地址就是了。

如果嵌入式Linux ping不同windows但是windows能ping通嵌入式Linux,那么就关闭windows的防火墙,就好了:

在这里插入图片描述
在这里插入图片描述

六、传输文件

以上完成没有问题之后,我们就可以开始传输文件了,我们只需要在tftp中绑定好要传输文件的根目录,然后点击服务端,就可以在嵌入式Linux中获取文件。
题外话:如果在虚拟机中需要传输文件,前题得搭建好tftp环境(centos的tftp环境搭建参考http://t.csdn.cn/rNrmV),其次在修改/etc/xinetd.d/tftp文件中的server_args =-s 根目录 -c去设置一个根目录-c表示可以在这个目录下创建新文件,将其中的disable=yes改为disable=no开启服务。

6.1、windows中tftp32的配置

(点击Browse选择你程序文件存放的目录,嵌入式Linux获取文件就会在这个目录里面去获取,我这里是选择了共享文件夹)
在这里插入图片描述

(然后点击Setting,按下图配置)

在这里插入图片描述
在这里插入图片描述

(最后选择tftp server,这样windows就会处于一个监听的状态,等待嵌入式Linux获取或发送文件)

在这里插入图片描述

6.2、嵌入式Linux(板子)中获取或发送文件

好,那么现在windows我们是已经大功告成了,接下来,我们只需要去嵌入式Linux下输入指令,就可以传输文件了。

6.2.1、tftp命令用法

(centos7虚拟机中测试这个命令,前提虚拟机需要搭建tftp环境,ubantu系统可参考http://t.csdn.cn/NuMtz,centos的话参考http://t.csdn.cn/rNrmV)

tftp 传输的对象的IP地址
输入tftp IP 后回车就会出现:
在这里插入图片描述
可以再输入下面这些命令,去使用tftp:
connect:连接到远程tftp服务器
mode:文件传输模式
put:上传文件
get:下载文件
quit:退出
verbose:显示详细的处理信息
tarce:显示包路径
status:显示当前状态信息
binary:二进制传输模式
ascii:ascii传送模式
rexmt:设置包传输的超时时间
timeout:设置重传的超时时间
help:帮助信息
?:帮助信息

-g表示下载文件(get)
-p表示上传文件(put)
-l表示本地文件名(local file)
-r表示远程主机的文件名(remote file)

例如发送一个文件:
输入put 文件名(这个文件是在当前目录下的文件,如果文件不存在会报错)
在这里插入图片描述

嵌入式Linux(开发板)中使用tftp命令获取执行文件:

例1:要从远程主机(windows)192.168.0.102上下载main(编译过的执行文件),则应输入以下命令:

tftp -g -r main 192.168.0.102

我在/root目录下新建了个linux C的文件夹,刚开始什么没有,执行上面命令后,就获取到windows中tftp32绑定根目录中的执行文件main
在这里插入图片描述
获取到文件后,就可以输入./main执行文件了

本人也是初学者,以上若有什么说的不正确的地方,可以在评论区指点一下(嘿嘿嘿)

  • 43
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点灯学徒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值