您的位置:首页 > 其它

ARM移植rz和sz命令

2017-05-15 23:50 429 查看
嵌入式Linux移植rz和sz命令

rz、sz是Linux/Unix 同Windows 进行ZModem 文件传输的命令行工具,windows 端需要支持ZModem 的telnet/ssh 客户端,例如:SecureCRT。

运行命令rz,即是接收文件,SecureCRT就会弹出文件选择对话框,选好文件之后关闭对话框,文件就会上传到当前目录 (默认使用二进制方式传送),运行命令sz <file1name> <file2name>…(可以同时传送 多个文件)就是发文件到windows上。

rz、sz 传输文件是通过串口进行传输,传输速率较慢,只适用于小文件的传输。

1、下载rzsz源码包

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

我在网上尝试找了一下,没有找到下载文件。感兴趣的可以自己去尝试下载源码。这里百度rzsz 源码下面可以下载到

如果在Linux系统命令行下,可以使用wget 命令进行下载。
wget http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz  href="http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz" target=_blank>wget http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz
2、解压rzsz 文件。

使用tar xvzf 命令进行解压。使用-C选项可以解压到指定目录下

[root@codeMonkey rzsz]# tar xvzf rzsz-3.48.tar.gz -C /root/ARM/
解压完成后可以在解压的目录中看到一个src 的文件。

3、修改Makefile 文件。

将第3行和第4行修改成如下所示:

CC=arm-linux-gcc
OFLAG= -O -DREGISTERED -static
第3行的意思是指定交叉编译器,第4行的意思是去掉"UNREGISTERED COPY"提示,并且使用静态编译。

注意:这里一定要指定静态编译!

因为第一次我并没有加-static 选项,编译出来的命令下载到根文件系统的/usr/bin 目录中。执行rz 命令的时候,系统提示找不到该命令!移植的Linux系统一般是没有移植库文件的,所以动态编译出来的程序会提示找不到。这也间接的证明了Linux系统下的编译默认是使用的动态编译。

关于静态编译和动态编译的区别,请自行百度!这里不再解释

也可以参考这篇:http://blog.csdn.net/zhengqijun_/article/details/51849968

4、执行make posix 生成可执行程序。

[root@codeMonkey src]# make posix
arm-linux-gcc   -O -DREGISTERED -static -DPOSIX -DMD=2 rz.c -o rz
size rz
text	   data	    bss	    dec	    hex	filename
501436	   2120	  17232	 520788	  7f254	rz
rm -f rb rx rc
ln rz rb
ln rz rx
ln rz rc
arm-linux-gcc   -O -DREGISTERED -static -DPOSIX sz.c -o sz
size sz
text	   data	    bss	    dec	    hex	filename
508884	   2176	  50096	 561156	  89004	sz
rm -f sb sx zcommand zcommandi
ln sz sb
ln sz sx
ln sz zcommand
ln sz zcommandi
使用ls 命令进行查看

可以发现生成了很多可执行文件,如rz、sz、sx 等。

5、将生成的可执行文件复制到根文件系统的/usr/bin目录下

使用cp 命令进行赋值

[root@codeMonkey src]# cp gz rb rc rx rz sb sx sz zcommand zcommandi ../../rootfs/usr/bin


6、下载到开发板中运行。
Linux系统启动成功后,执行rz 命令进行文件的传输。

[root@MINI2440 /]# rz
rz ready. Type "sz file ..." to your modem program

Starting zmodem transfer.  Press Ctrl+C to cancel.
Transferring test.txt...
Transferring test.txt...

?rz 3.48 01-27-98 finished.
这里我传输了一个test.txt 文件。如果执行rz 命令后能出现下面的图,应该就没有什么问题。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息