TFTP(Trivial File Transfer Protocol),即普通文件传输协议,是用来传送文件的Internet软件程序,它比文件传输协议(FTP)使用简单,但是功能少。
在嵌入式系统中(特别是在开发初期),TFTP和NFS(网络文件系统)这两种方式常用来,为目标板从服务器上下载程序。下面就详细的介绍TFTP方式的使用,以及可能会出现的问题。
实验环境:
PC机:RedHat Linux9.0
ARM开发板: uClinux-2.4.x
其它:数据线若干
1.如何在Linux下配置TFTP:
首先用 rpm -qa|grep tftp查看是否安装,没有的话,安装一下。如下图所示:

假如已经安装好了,我们可以检查一下配置文件,文件位于/etc/xinetd.d/tftp:

我们可以看到TFTP指定的目录是/tftpboot,所以我们把要下载的文件都放到这个文件夹里就行了,输入命令service xinetd restart重新启动tftp服务。

现在我们的tftp 服务器已经设置完成,可以使用tftp 和minicom 下载程序了,但是有一点需要注意,如果你启动了防火墙,有可能不能正常下载,我们需要打来端口69,在此我们也可以做如下选择,点击[应用程序]->[系统设置]->[安全级别],显示如下图,因为我们的开发办接在eth0 上,所以我们可以选择eth0为信任设备,点击[确定]即可,另外也可以在[其它端口:]的文本框里输入69:udp
也可以。
2.服务器端:
到达/根目录下,看看是否有个tftpboot文件夹,如果没有,新建一个,把来下载到目标板的文件放到里面,本实验所用的是一个简单的hello实验,运行后连续输出10个“hello”,程序如下,编译过程略,


上图红线方框中的hello文件就是待下载到目标板的文件。
3.目标板端:
上电启动,进入uClinux界面,tmp和/var两个目录下是以虚拟ram盘的方法实现的可读写目录(系统掉电后,里边保存的内容全丢失),故在进行符号链接时必须链接到这两个可读写的目录下。

进入tmp目录下,输入指令 tftp 192.168.0.100(服务器IP地址),即进入tftp状态,输入“?”即可看到tftp相的命令,输入 get hello,下载hello文件到目标板,输入quit命令退出TFTP模式,输入ls命令,我们就可以看到hello文件已经下载到了tmp目录下,./hello运行文件,这时会出现提示无法执行,原因是访问权限的问题,输入命令chmod 777 hello修改访问权限:

重新运行,输入运行成功,连续输出10个hello,如下图所示:

本文详细介绍了Linux环境下配置TFTP服务器的方法,包括安装、配置、服务器端和客户端操作步骤,并解决了防火墙可能造成的下载问题。通过实例演示了如何在嵌入式系统中使用TFTP进行文件传输,特别适用于开发初期的目标板程序下载。
210

被折叠的 条评论
为什么被折叠?



