Linxux应用开发-串口下载命令rzsz交叉编译

举报
DS小龙哥 发表于 2022/01/24 18:06:09 2022/01/24
【摘要】 rz/sz工具是通过Zmodem协议传输文件的命令,常用于Linux与windows之前的数据传输。 这篇文章就介绍如何在交叉编译rz/sz命令,并在Linux开发板上完成测试。

1.1 简介

rz/sz工具是通过Zmodem协议传输文件的命令,常用于Linux与windows之前的数据传输。

这篇文章就介绍如何在交叉编译rz/sz命令,并在Linux开发板上完成测试。

image-20220124164431355

1.1.1 什么是rz/sz (lsz/lrz)

rz/sz 通过Zmodem协议传输数据的命令,通过串口协议传输,速度较慢,只是适合小文件,如果大文件不适合用这个方法,大文件一般使用NFS或者FTP网络方式传输。

1.1.2 为什么要用rz/sz

普通Linux和Windows之间的文件共享方法,主要有建立nfs实现文件共享,和tftp之类的方法,但是都很麻烦,而如果只是小文件(几十 K,几百K),那么直接用rz/sz,就显得极其地方便了。大文件的话,还是要考虑上面说得,其他的共享方法了,毕竟,rz/sz速度只有10K左右。

1.1.3 如何使用

(1)在Windows下,用SecureCRT(或者Windows自带的超级终端)连接Com端口到开发板,或者ssh等协议连接到Linux服务器上。

(2)在Linux端,安装了rz/sz (lrz/lsz)工具后(嵌入式开发中,多数已经将编译好的rz/sz工具放到rootfs中了,普通的Linux系统,如果没有,可以下载源码,自己安装),就可以直接运行rz/sz,实现和Windows之间的文件传输了:

A、从windows中拷贝/下载文件到Linux(开发板):

运行rz后,会自动弹出WIndows下的文件选择对话框,选择对应文件后,添加,然后确定,就开始传输,将windows中的文件,拷贝到Linux中了。

B、将Linux中的文件拷贝到Windows中某个文件夹:

执行sz file_name 就可以将Linux当前文件夹下的文件file_name拷贝到Windows的对应目录中了,其中,Windows目录是由你当前运行的工具中设定的。

此处我用的是SecureCRT,具体的更改 rz上传/sz下载 的默认的路径的方法:

点击选项 -> 会话选项 -> Xmodem/Zmodem ->配置下载和上传目录:

image-20220124163714669

1.2 移植

1.2.1 源码获取

rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具

windows端需要支持ZModem的telnet/ssh客户端(比如SecureCRT)

下载软件 rzsz-3.48.tar.gz地址:

ttp://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz

1.2.2 解压

将源码包拷贝到linux系统下解压。

[root@xiaolong usart_down]# ls
rzsz-3.48.tar.gz
[root@xiaolong usart_down]# tar xvf rzsz-3.48.tar.gz 

1.2.3 修改Makefile

进入到解压后的src目录。

[root@xiaolong src]# gedit Makefile  

修改:CC=arm-linux-gcc

image-20220124162624659

1.2.4 编译安装

[root@xiaolong src]# make posix

注意:这个软件安装与常规的GNU软件不同,没有configure(配置)及make install (安装过程)。

1.2.5 拷贝生成的命令

编译成功后在顶层目录下就可以看到生成的可执行文件。

这些可执行文件对应不同的传输协议。如:ZMODEM / YMODEM / XMODEM协议

image-20220124162703174

将绿色的文件全部拷贝到开发板根文件系统的bin目录下。

示例:

[root@xiaolong src]# cp rb rc rx rz sb  sx sz zcommand zcommandi /work/rootfs/bin/  

如果在终端执行命令提示缺少库文件,需要到交叉编译器的安装路径下去拷贝。

路径:

/work/arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/lib/ 

1.2.6 测试命令

**sz命令:**将选定的文件发送(send)到本地机器。

**rz命令:**运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)。

(在哪个目录下执行rz指令,那么文件就放在哪个目录下)

1.2.6.1 rz命令测试示例:

image-20220124162750543

image-20220124162802272

1.2.6.2 sz命令测试

将文件传输到window下。(文件接收的目录可以通过CRT软件进行配置)。

image-20220124163514995

image-20220124163530838

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。