将QT移植到IMX6ULL_Pro开发板

20 篇文章 3 订阅

前言

在这里使用的是韦东山老师的IMX6ULL_Pro开发板,接下来我将演示如何移植QT程序到该开发板。

一、编译系统

1. 安装 Ubuntu 软件

sudo apt-get update
git clone https://e.coding.net/weidongshan/DevelopmentEnvConf.git
cd DevelopmentEnvConf
sudo ./Configuring_ubuntu.sh

在这里插入图片描述

2. 下载 BSP 及配置工具链

git config --global user.email "user@100ask.com"
git config --global user.name "100ask"
git clone https://e.coding.net/codebug8/repo.git
mkdir -p 100ask_imx6ull-sdk && cd 100ask_imx6ull-sdk
../repo/repo init -u https://gitee.com/weidongshan/manifests.git -b linux-sdk -m imx6ull/100ask_imx6ull_linux4.9.88_release.xml --no-repo-verify
../repo/repo sync -j4

在这里插入图片描述

3. 设置交叉编译工具链

永久生效:

vim ~/.bashrc

在行尾添加或修改,加上下面几行:

export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin

设置完毕后,要执行下面命令使其生效:

source ~/.bashrc 

并执行下面命令测试:

arm-buildroot-linux-gnueabihf-gcc -v

在这里插入图片描述

4. 编译系统

cd /home/book/100ask_imx6ull-sdk/Buildroot_2020.02.x
make clean
make 100ask_imx6ull_pro_ddr512m_systemV_qt5_defconfig
make all -j4

在这里插入图片描述

编译成功后文件输出路径为 output/images

5. 烧写

把上面编译出来的 100ask-imx6ull-pro512d-systemv-v1.img重命名为emmc.img(或sdcard.img),把emmc.img(或sdcard.img) 放到“100ask_imx6ull 烧写工具”的 files 目录里,就可以使用工具烧写到 EMMC(或 SD/TF 卡)。

连接 USB OTG 线,设置USB启动:

在这里插入图片描述

打开烧写工具烧写整个系统:
在这里插入图片描述
在这里插入图片描述

二、Linux中下载QT

1. 安装 Qtcreator

QtCreator 下载网址:https://download.qt.io/official_releases/qtcreator/

这里我使用的 qtcreator 版本为 5.12.9:

此安装过程类似 Windows 下应用的安装方法,一路点击下一步即可。

chmod +x qt-opensource-linux-x64-5.12.9.run
sudo ./qt-opensource-linux-x64-5.12.9.run

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
在这里插入图片描述
在这里插入图片描述

安装成功后打开QT,可以直接打开,也可以通过命令打开,命令如下:

./qtcreator.sh &

这里的“&”符号代表后台运行, 不占用控制命令终端

在这里插入图片描述
在这里插入图片描述

2. 创建第一个程序

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

测试成功:

在这里插入图片描述

3. 配置 QtCreator 开发环境

在这里我们配置 QtCreator 开发环境主要是为了方便将测试程序移植到Linux开发板上。

(1)打开选项界面

在 QtCreator 界面中,依次点击 tools -> options:

在这里插入图片描述

(2)选择编译器

在出现的选项对话框中,在左边点击 Kits,右边选择 Compilers 标签,并点击 Add 选择 Custom->C++:

在这里插入图片描述
同理,也在左边点击Kits****,右边选择Compilers 标签,并点击Add选择Custom->C

(3)设置编译器

在弹出的对话框中填写以下内容: Compiler path , Make path 和 ABI; 填写完成后,点击 Apply 进行保存。
在这里插入图片描述
同理,也设置Custom->C然后保存,如下图:
在这里插入图片描述
在这里插入图片描述
同理,也设置一下GDB然后保存,如下图:
在这里插入图片描述
最后记得点Apply保存。

(4)添加 QT 版本

假设你已经按照上面编译出了 QT 的 SDK。 以 IMX6ULL 为例,你已经做了这些事情: 在执行“make 100ask_imx6ull-qt_defconfig”配置后,再执行“make all”可以编译出 QT 的 SDK 包。
可以在/home/book/100ask_imx6ull-sdk 下执行这个命令找到 qmake,记住它的目录:

find -name qmake

在这里插入图片描述

添加qmake路径:在 QT 设置界面中,选择 Qt Version 标签,在右侧点击“Add…”,会弹出对话框,切换目录到选择 qmake 文件后,点击 open 按钮,设置完成之后,点击 Apply 按钮保存。

注意:qmake 文件是 buildroot 编译根文件系统后生成的,文件在 buildroot 目录下。

在这里插入图片描述

(5)配置 kit 标签

继续选择上边的Kits标签,点击右侧 Add,填写相应内容:

① Name:输入100ask_imx6ull

② Sysroot:输入交叉编译工具链的目录

③ compiler:c和c++这两个选择框里,都选择Custom

④ Debugger:选择刚刚配置的Debuggers,名称为New Debugger

⑤ Qtversio:选择上图中配置的“Qt5.12.8 (host) ”

配置完成后点击apply,点击OK。
在这里插入图片描述

三、移植第一个QT程序到IMX6ULL开发板

1. 创建第一个移植程序

第1步 新建项目:

运行QtCreator后,在菜单栏选择 File -> New File or Project

选择项目类型:

在打开的对话框中,依次选择 Application -> Qt Widgets Application ,点击 Choose… , 如下图所示:在这里插入图片描述

第2步 输入项目名字、设置保存位置:

在弹出的Qt Widgets Application对话框中,设置项目名称为imx6ull_hello_and_button,Create in一栏填写项目的存储路,点击Next。如下:

在这里插入图片描述

第3步 设置构建系统,然后点击 Next 进入下一步,如下:

在这里插入图片描述

第4步 选择基类:

当前的的应用继承自哪种Widget,默认选择QMainWindow,然后点击 Next 进入下一步。
在这里插入图片描述

第5步 默认none,继续点击next:

在这里插入图片描述

第6步 选择之前添加好的 Kits(100ask_imx6ull),继续点击next:

在这里插入图片描述

第7步 完成项目创建:

以上信息填写完后,点击Finish,完成imx6ull_hello_button项目的创建。

在这里插入图片描述

2. 编译QT程序

第1步 修改界面:

双击左侧的 Forms 里的 mainwindow.ui 文件,打开 Design 视图。

然后如下图所示,从左侧Display Widgets 栏目下,拖动 Label 和 PushPutton到中间的区域。

最后双击中间区域的Label还有Push Button 修改内容如下图:

在这里插入图片描述
在这里插入图片描述

第2步 添加测试代码:

在这里插入图片描述
在这里插入图片描述

第3步 构建:

点击菜单栏Build -> Build Project imx6ull_hello_button,开始编译、构建项目。

在构建过程中,会在左下侧是“Compile Output”窗口打印构建信息。如果有错误,请根据提示出错信息修改,然后重新构建。

在这里插入图片描述

第4步 查看构建结果:

imx6ull_hello_and_button 项目构建成功后,编译好的二进制文件存放在刚刚设置的目录中,可以使用 file 命令查看该 APP 是否被编译为 ARM 架构:

在这里插入图片描述

四、在开发板上运行QT程序

使用 ssh 远程登陆开发板,将生成的 QT 程序的可执行文件 imx6ull_mini_hello_and_button 拷贝到开发板上:
具体可看:开发板挂载 Ubuntu 的 NFS 目录
在这里插入图片描述

上电开发板,开发板使用了Qt默认基于libinput插件,所以我们用手指点击按钮没有反应,输入以下命令:

vi /etc/profile

在开发板这个目录里面修改环境变量,每次打开都默认使用在里面加上下面这一句,这样子就支持了触摸功能。

export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1

在这里插入图片描述

然后执行该文件:点击按钮然后显示文本 test OK

在这里插入图片描述

开发板显示如下:
在这里插入图片描述

在这里插入图片描述

  • 22
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱嵌入式的小佳同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值