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

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐