基于网络的连接
在使用 SylixOS 时,可以通过Shell 界面与系统进行交互,执行配置及程序运行、调试等操作。通常可以通过串口连接或者网络连接进行交互操作。
使用网络相比串口有许多优势,如下所示:
- 速度快:网络接口的通信速度一般更快,如 ETH 可以达到 10/100/1000 Mbps。串口通信速度较慢,不适合传输大数据量。
- 方便远程访问:通过网络可以实现远程访问嵌入式设备,只需要设备与主机处在同一网络中即可。而串口需要通过串口线直接连接,只能本地访问。
- 支持更多连接:一个网络接口可以同时连接多个主机进行通信,而串口通常只支持一个连接。
- 电气隔离:网络接口通常有更好的电气隔离性,更稳定可靠。串口容易受外部干扰影响通信质量。
所以,总体来说,相比串口接口,在嵌入式设备上使用网络接口连接通信,可以实现更快速度、更远距离访问、支持更多连接、电气隔离更好等优点。但也不能完全替代串口,在某些场景下串口仍有特定的优势。两者可以根据实际需求选择使用。
通过串口连接后我们会获取系统的网络 IP,然后可以通过网络 IP 进行远程连接 SylixOS 并进行程序部署及Shell 交互等操作。
网络说明
网络交互需要具备以太网通信链路,即搭载 SylixOS 系统的板卡设备与上位机之间需要通过网线直连或者在同一网络环境下。在进行网络连接交互时,翼辉也提供了两种通信协议即 Telnet、SSH2。
Telnet 协议
Telnet 协议介绍
Telnet 协议是一种用于远程登录的网络协议。它允许用户通过使用一个客户端程序(称为 Telnet 客户端)连接到远程主机上的一个 Telnet 服务器,并在远程主机上执行命令。
Telnet 协议是基于 TCP/IP 协议栈的应用层协议。它使用 Telnet 客户端和 Telnet 服务器之间的传输控制协议(TCP)连接来进行通信。当 Telnet 客户端连接到 Telnet 服务器时,它会发送一些初始化信息,包括一些终端类型和选项信息。然后,客户端就可以在远程主机上执行命令,就像在本地主机上一样。
Telnet 连接
IDE-Telnet
RealEvo-IDE 支持打开在线设备的终端。
首先在IDE设备管理区创建一个设备。
右键点击 New Device,填写设备 IP 地址及账户密码,默认 root,root。
右键已经创建的设备,单击 Launch Terminal ,打开设备终端。
在此终端上可以执行 SylixOS Shell 命令,如下图所示。
PUTTY
在获取板卡 IP 后,打开调试工具(PUTTY)。
选择 Session,连接类型选择 Telnet,端口号默认,输入获取的 IP 地址。
点击 open 后即可进入 Telnet 调试界面。
TFTP 协议
协议介绍
TFTP,全称是 TrivialFile Transfer Protocol(简单文件传输协议),基于 UDP 的 69 端口实现,是最简单的文件传输网络协议,该协议只能从远程服务器读取文件或向远程服务器上传文件。虽然 TFTP 不具备FTP的许多功能,但是实现简单,内存占用很小,多用于 BootLoader 或小型系统上进行网络文件传输。
协议启用
SylixOS 支持TFTP通信,提供相关命令进行文件收发,但鉴于FTP协议更加方便高效易用,内网环境下更推荐使用FTP来进行文件收发,故 SylixOS 默认是关闭TFTP功能的,使用的话需要先开启该功能。SylixOS 内核源码中,通过宏定义 LW_CFG_NET_TFTP_EN 控制TFTP功能开关。LW_CFG_NET_TFTP_EN 宏位于“libsylixos/\SylixOS\config\net\net_tools_cfg.h:78”
[root@sylixos:/root]# help tftp
exchange file using tftp protocol.
tftp [-i] [Host] [{get | put}] [Source] [Destination]
[root@sylixos:/root]#
[root@sylixos:/root]# help tftpdpath
set default tftp server path.
tftpdpath [new path]
[root@sylixos:/root]#
设置TFTP服务目录
[root@sylixos:/root]# mkdir /apps/tftpdir
[root@sylixos:/root]# ls /apps/tftpdir/
[root@sylixos:/root]# cp /apps/test /apps/tftpdir/
copy complete. size:20736(Bytes) time:0(s) speed:20736(Bps)
[root@sylixos:/root]#
[root@sylixos:/root]# ls /apps/tftpdir/
test
[root@sylixos:/root]#
[root@sylixos:/root]# tftpdpath
tftpd path: /tmp
[root@sylixos:/root]# tftpdpath /apps/tftpdir/
[root@sylixos:/root]#
SylixOS 提供的是TFTP客户端命令,需要配合客户机下TFTP服务端软件运行,常用 TFTP 服务器软件有 RealEvo-IDE 内扩展工具 TFTP 服务器和“tftpd32”软件。
IDE-TFTP 服务器
在 RealEvo-IDE 菜单栏中点击 Tools->TFTP Server,如下图。
“Directory”路径设置系统镜像 bspzynq7000_zturn.bin 所在的目录,端口号默认”69”,点击 Start 启动 TFTP,如下图。
Tftpd32
启动“Tftpd32”软件。
点击“浏览”设置路径为系统镜像 bspzynq7000_zturn.bin 所在的目录,以及本地服务器地址,如下图。
TFTP 接收文件
[root@sylixos:/apps/tftpdir]# tftp -i 192.168.7.199 get test
getting file...
file transfer completed.
[root@sylixos:/root]# ls
test
[root@sylixos:/root]# tftp -i 192.168.7.199 get test /apps/tftpdir/test2
getting file...
file transfer completed.
[root@sylixos:/root]# ls /apps/tftpdir/
test2
[root@sylixos:/root]#
tftp -i x.x.x.x get file [dstfile]
命令用于从TFTP服务接收文件到本机,-i 参数指定了TFTP服务器地址,从服务器TFTP目录中查找 file 文件并同名存储到设备当前目录,如果存在 dstfile 参数,该参数必须是一个文件名不能是目录,则将接收文件以 dstfile 路径存储,此过程可以重命名文件。
如果TFTP服务器的工作目录中不存在 file 指定的文件,则运行会失败。如果命令运行成功,而接收目录已存在同名文件则直接覆盖接收并不给出提示。
TFTP 发送文件
[root@sylixos:/apps/tftpdir]# tftp -i 192.168.7.199 put test test
sending file...
file transfer completed.
tftp -i x.x.x.x put file dstfile
命令用于将本机文件推送到TFTP服务器工作目录,-i 参数指定了TFTP服务器地址。首先从本机当前目录中查找 file 文件,然后推送到TFTP服务器工作目录,并以 dstfile 命名。
如果本机当前目录不存在 file 文件或TFTP服务器工作目录中已存在 dstfile 文件,则运行会失败。
作为 TFTP 服务器使用
SylixOS 下使能TFTP功能后,tftpk 客户端和服务器都是可用的,前面介绍的TFTP命令是作为客户端使用的,并不会用到 tftpdpath 命令指定的TFTP 服务目录。
这里以 Tftpd64 软件作为客户端进行操作,操作原理类似只是图形化了。要指定好服务器 IP 地址和端口(TFTP默认为 69),local file 为本机任意文件,而 RemoteFile 只能是服务器指定工作目录下。经测试 get 和 put 操作皆正常。
FTP 协议
协议介绍
FTP(File Transfer Protocol)是一种用于在计算机网络中进行文件传输的协议。它允许客户端与服务器之间进行文件的上传、下载和管理。FTP 是 Internet 上最早使用的协议之一,为数据传输提供了一种可靠和高效的方式。
协议使用
使用FTP方式与目标机连接需要使用网线将目标机与主机连接至同一网络下,这里提供两种 FTP 使用方式的说明,分别为 RealEvo-IDE 设备管理的“System FTP”工具及“FileZilla”软件。
IDE-System FTP 工具
在IDE的 Device 界面“Remote”操作区域右键选择“New Device”可以添加目标设备,如下图。
在“Device IP”输入目标设备的 IP(图片 IP 为参考),用户名及密码默认都为“root”,填写完毕点击“Finish”,操作如下图所示。
在目标设备右键选择“LaunchFTP”使用“System FTP”工具连接目标设备,打开设备文件系统,如下图所示。
在本地文件系统选择需要上传的文件后,右键 “Upload”或者拖动至目标设备文件夹可以将文件上传到设备文件系统。
FileZilla
将主机与目标设备使用网线连接或在同一网络下,打开“FileZilla”软件,如下图在“主机”位置填写目标设备 IP,用户名密码默认都为“root”,然后点击“快速连接”,即可完成主机与目标机的连接。
注意 :
设置文件传输类型设置为“二进制”,如下图。
在 本地站点 选择本地需要上传至目标设备的文件,在 远程站点 操作栏打开文件传入的目的文件夹,然后在目标文件右键 上传 ,或直接将目标文件拖至“远程站点”操作栏内的目标文件夹即可。