建设部注册监理工程师网站随州网站建设哪家专业
目录
- 前言
- 一、为什么要文件传输
- 二、利用共享文件夹(简要流程)
- 三、tftp传输与环境搭建
- 四、传输前的准备工作
- 五、测试准备工作是否完成
- 六、传输文件
- 6.1、windows中tftp32的配置
- 6.2、嵌入式Linux(板子)中获取或发送文件
- 6.2.1、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执行文件了
本人也是初学者,以上若有什么说的不正确的地方,可以在评论区指点一下(嘿嘿嘿)
