在RV1126开发板上移植minicom

在RV1126开发板上移植minicom JQ 2023-11-27 14:02:37 378

在做测试机项目的时候,使用cat /dev/ttyS4命令查看串口接收的数据只能看到字符形式的数据,导致我不能看到上位机发送十六进制的全貌,能不能在嵌入式板子上看到HQ上位机发送的十六进制数据具体是什么?于是萌生了在开发板上安装minicom这个串口工具。下面记录了我移植minicom时的过程和踩的坑。

移植ncurses

minicom 需要用到 ncurses,因此需要先移植 ncurses,首先在ubuntu中 创建一个目录来存放我们要移植的文件 , 我这里是在/home/目录下创建了一个名为“linuxTool”的目录来存放所有的移植文件。然后下载 ncurses 源码,(源码正点原子的IMX6ULL开发板的资料里有提供,路径在:例程源码-》7、第三方库源码-》ncurses-6.0.tar.gz),将 ncurses-6.0.tar.gz 拷贝到 Ubuntu 中创建的linuxTool目录下,然后进行解压,解压命令如下:

tar -vxzf ncurses-6.0.tar.gz

解压完成以后就会生成一个名为“ncurses-6.0”的文件夹,此文件夹就是 ncurese 的源码文件夹。在 linuxTool 目录下新建名为“ncurses”目录,用于保存 ncurses 编译结果,一切准备就绪以后就可以编译 ncureses 库了。进入到 ncureses 源码目录下,也就是刚刚解压出来的 ncurses-6.0 目录中,首先是配置 ncureses,输入如下命令:

./configure
--prefix=/home/linuxTool/ncurses
--host=arm-linux-gnueabihf 
--target=arm-linux-gnueabihf 
--with-shared --without-profile --disable-stripping 
--without-progs --with-manpages --without-tests

上述是一条完整的命令,为了好看我加上了回车,configure 就是配置脚本。

  • --prefix 用于指定编译结果的保存目录,这里肯定将编译结果保存到我们前面创建的“ncurses”目录中。
  • --host 用于指定编译器前缀,这里设置为 “arm-linux-gnueabihf”,
  • --target 用于指定目标,这里也设置为“arm-linux-gnueabihf”。

这里的交叉编译器arm-linux-gnueabihf路径要在环境变量里设置,设置方法是在~/.bashrc下添加交叉编译器路径

易百纳社区

然后输入source ~/.bashrc使环境变量生效。这里如果没有设置好,后面配置minicom的时候会报错。

配置命令写好以后点击回车键,等待配置完成,配置成功以后如下图所示

易百纳社区

随后输入make编译,然后输入make install命令安装,安装的意思就是将编译出来的结果拷贝到--prefix所指定的目录里。安装成功以后,查看ncurses目录下会多出这么一些东西。

易百纳社区

我们需要将上图中include、lib和share这三个目录中存放的文件分别拷贝到开发板根文件系统中的/usr/include、/usr/lib 和/usr/share 这三个目录中,如果哪个目录不存在的话需要自行创建!!使用如下adb命令将文件push到rv1126的开发板对应目录中

adb push .\lib\. /usr/lib/
adb push .\share\. /usr/share/
adb push .\include\. /usr/include/

adb想要把整个文件夹下所有的文件都push到开发板中需要在文件夹后面加.而不是像在linux中加*,还有一点就是使用adb push命令push链接文件的时候会报找不到这个文件的错误,在使用上述命令会报这个错误,由于上述文件中的链接文件的源文件也在同一个目录下,这个错误可以忽略。

然后在开发板根目录的/etc/profile(没有的话自己创建一个)文件中添加如下所示内容:

#!/bin/sh
LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

export TERM=vt100
export TERMINFO=/usr/share/terminfo

移植minicom

同样的,同样在该路径下创建一个叫做minicom的文件夹,将正点原子提供资料的这个路径下的:例程源码-》7、第三方库源码-》minicom-2.7.1.tar.gz 拷贝到 ubuntu 中的linuxTool目录下,然后使用如下命令进行解压:

tar -vxzf minicom-2.7.1.tar.gz

解压完成以后会生成一个叫做 minicom-2.7.1 的文件夹,这个就是 minicom 的源码,进入到此目录中,然后配置 minicom,配置命令如下

cd minicom-2.7.1    //进入 minicom 源码目录
./configure CC=arm-linux-gnueabihf-gcc --prefix=/home/linuxTool/minicom 
--host=arm-linux-gnueabihf 
CPPFLAGS=-I/home/zuozhongkai/linuxTool/ncurses/include 
LDFLAGS=-L/home/zuozhongkai/linux/IMX6ULL/tool/ncurses/lib 
-enable-cfg-dir=/etc/minicom    //配置

CC 表示要使用的 gcc 交叉编译器,

  • --prefix 指定编译出来的文件存放目录,肯定要存放到我们前面创建的 minicom 目录中。
  • --host 指定交叉编译器前缀
  • CPPFLAGS 指定 ncurses 的头文件路径
  • LDFLAGS 指定 ncurses 的库路径

配置成功以后输入make编译。输入make install安装。这时看到minicom文件夹下会有以下文件

易百纳社区

将minicom目录中bin子目录下的所有文件拷贝到开发板根目录中的usr/bin目录下,使用的adb命令如下

adb push .\bin\. /usr/bin

完成以后在开发板中输入minicom -v会报没有执行权限的错误,这是因为从adb push上来的文件都没可执行权限,到/usr/bin下输入命令chmod +x minicom赋予其可执行权限。重新输入命令minicom -v,会看到如下结果。

易百纳社区

输入minicom -s

1. 如果报以下错误

易百纳社区

遇到这种情况在/etc里面添加passwd文件

vi /etc/passwd
#内容如下
root:x:0:0:root:/root:/bin/sh

2. 如果报以下错误

易百纳社区

这里输入命令echo $TERMINFO检查一下有没有TERMINFO这个变量,

易百纳社区

实际上前面我们在开发板更改/etc/profile文件的时候已经命名了,只是我们忘记source了,这里source /etc/profile一下,重新运行命令minicom -s,出现如下配置界面

易百纳社区

选到Serial port setup,配置串口

易百纳社区

输入A,将文字为/dev/ttyS4,回车确认。

到screen and keyboard选项,

易百纳社区

输入S,让Hex Display选项变为yes,这样就可以让数据以16进制的形式显示。在windows端的HQ串口助手向串口发送命令,

易百纳社区

RV1126的minicom得到如下显示:

易百纳社区

可以看到是以16进制显示的,而且数据一致。

退出minicom输入ctrl+A,然后输入Z,然后输入X,跳出退出提示,选中yes,回车即可。

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
JQ
红包 1 1 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
JQ
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区