Linux下开发板通过串口和PC文件传输(lrzsz)

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盘上,后续看能不能连续的收发

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Linux开发板连接串口的步骤如下: 1. 首先,确定电脑自带的串口设备名。对于电脑自带的串口,设备名通常为ttyS0、ttyS1等;对于使用USB转串口串口扩展设备,设备名为ttyUSB0、ttyUSB1等。可以通过命令"dmesg | grep tty"来查看设备名。 2. 进入主目录,并进入serial port setup配置串口相关参数信息,如波特率、停止位、校验位等。确保设置与开发板串口参数一致。 3. 保存设置。选择Save setup as dfl将当前设置保存为默认设置,或选择Save setup as df1保存为其他设置。 4. 退出配置菜单。选择Exit退出设置。 5. 下次需要连接串口时,直接输入"minicom"命令即可进入串口连接界面。如果想以普通用户权限进入,需要进行以下操作: - 使用命令"sudo vim /etc/udev/rules.d/70-ttyusb.rules"编辑udev规则文件。 - 在文件中添加如下内容:"KERNEL=="ttyUSB[0-9]*",MODE="0666""。 - 保存文件,并使用命令"sudo chmod 666 /etc/udev/rules.d/70-ttyusb.rules"给予文件可读写权限。 - 重新插入USB转串口设备,普通用户即可连接串口。 6. 如果需要在PC机上通过串口接收开发板发送的文件,可以使用以下步骤: - 切换到目标板的接收路径。 - 按下CTRL A,然后按下Z键,选择zmodem接收模式。 - 查看相关接收文件。 7. 如果需要在开发板上通过串口接收PC机发送的文件,可以使用以下步骤: - 使用cd命令切换到目标文件所在目录。 - 使用rz命令接收文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [虚拟机主机linux(unbuntu)和开发板使用串口连接以及发送接收文件](https://blog.csdn.net/Feng_8071/article/details/82956200)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值