Linux下开发板通过串口和PC文件传输(lrzsz)
文章目录Linux操作系统篇一.简介二.准备1.注意2.下载三.调试串口四.lrzsz的移植1.编译生成app2.移植到开发板五.总结Linux操作系统篇一.简介最近刚入职嵌入式方面工作,老大发话了,说要实现板子和pc电脑通过串口来发送文件,说可以用串口助手之类的,传过去的文件在板子rom里存一份,U盘里面同样也存一份,到时候连续的发,来检测板子的稳定性。我听完感觉不是很难,但是这几天踩了不...
Linux操作系统篇
一.简介
最近刚入职嵌入式方面工作,老大发话了,说要实现板子和pc电脑通过串口来发送文件,说可以用串口助手之类的,传过去的文件在板子rom里存一份,U盘里面同样也存一份,到时候连续的发,来检测板子的稳定性。我听完感觉不是很难,但是这几天踩了不少坑
给大家说一下我用的环境
- 开发板:飞凌的OK1012A(Cortex-A53)
- PC端:超级终端
二.准备
1.注意
- 必须安装虚拟机,有linux系统
- 虚拟机里面安装了交叉编译器(和板子里面的交叉编译工具链相同)
- 开发板移植了linux系统可以运行app
2.下载
首先我们需要下载超级终端软件,用于在PC端连接我们开发板,之前用的PUTTY但是发现这个传不了文件
下载:超级终端
如果我们用的是台式电脑,直接通过串口线l连接,不需要安装驱动就可以用(一般为COM1)
但是如果用的是usb转串口就需要安装驱动
下载:串口驱动
我们还需要下载 lrzsz 离线安装包
下载:lrzsz
三.调试串口
我们先得保证超级终端可以连接到我们的开发板,并且可以通过命令来控制,注意这里有个坑
连接成功后终端上有打印启动信息,但是无法输入命令,按任何键都不起作用
这里的COM口会自己识别
问题在这里
我们不能选默认的硬件,当我改为第一个 Xon/Xoff 的时候就好了
四.lrzsz的移植
1.编译生成app
首先下载我们lrzsz压缩包到我们的Linux虚拟机里面,进行解压tar zxvf lrzsz-0.12.20.tar.gz
进入到 lrzsz-0.12.20 这个目录cd lrzsz-0.12.20
输入命令:
CFLAGS=-O2 CC=arm-linux-gcc ./configure --cache-file=arml_cachefile0 --prefix=/usr/local/
- CFLAGS=-O2 //编译选项
- CC=arm-linux-gcc //配置编译器为交叉编译器 加上CC参数表示即时生效,我电脑中的交叉编译器的名字就是arm-linux-…
- ./configure //配置文件 前面两项必须放在./configure的前面 否则设置无效
–cache-file=arml_cachefile0 //这个命令是生成自己的cache-file 后面的arml_cachefile0是我自己为生成的cache-file取的名字 - –prefix=/usr/local/ //表示具体安装到哪里 这个可以不要 我们知道交叉编译生成的lzr和lsr就可以了
敲入回车后从下面打印的信息可以看出使用的是arm-linux-gcc编译器(前提是交叉编译器已经安装配置好了)
这里注意,如果我们ubuntu 里面安装的不是 arm-linux-gcc ,输入后就会会报错,接下来我们需要重新解压,重新输入正确的交叉编译工具链的名字,要不然会报错
配置后的解压文件夹多了arm_cache_file0文件
接下来我们 输入 make 回车
编辑结束后就会在 src目录下生成 lrz 和 lsz 可执行文件
- lrz 板子收文件
- lsz 板子发文件
2.移植到开发板
先将上面生成的可执行二进制文件,移动到板子的 /usr/local/bin 目录下,然后在创建软链接,并命名为 rz和sz
ln -s /usr/local/bin/lrz rz
ln -s /usr/local/bin/lsz sz
到时候用的时候直接输命令就可以了(rz/sz)
到此处我们就大工告成!
五.总结
接下来就来操作一下
PC端 给板子发文件
因为只有一个串口,我们先输入 rz
命令,这时我们的终端就卡着不动了,我们操作软件上面的菜单栏发文件就可以了
板子发送文件到PC端
我们输入 sz 文件名
就会将该文件传的我们的PC机设置的目录下
这样还是挺方便的,在我们开发板没有联网的情况下,编译完app测试,在不用插拔sd卡了所以推荐给大家
至于老大说的任务,我打算有shell命令来实现,将文件拷贝到U盘上,后续看能不能连续的收发
更多推荐
所有评论(0)