将QT移植到STM32MP157开发板

前言

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

一、Ubuntu操作

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 "[email protected]"
git config --global user.name "100ask"
git clone https://e.coding.net/codebug8/repo.git
mkdir -p 100ask_stm32mp157_pro-sdk && cd 100ask_stm32mp157_pro-sdk
../repo/repo init -u https://gitee.com/weidongshan/manifests.git -b linux-sdk -m stm32mp1/100ask_stm32mp157_pro_release-v2.0.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_stm32mp157_pro-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin

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

source ~/.bashrc 

并执行下面命令测试:

arm-buildroot-linux-gnueabihf-gcc -v

在这里插入图片描述

4. 编译系统

cd /home/book/100ask_stm32mp157_pro-sdk/Buildroot_2020.02.x
make clean
make 100ask_stm32mp157_pro_ddr512m_systemD_qt5_defconfig
make all -j4

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

5. 烧写

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

在这里插入图片描述

首先我们打开安装好的烧写工具 STM32CubeProgrammer ,设置开发板启动方式为 USB 下载模式启动,连接好 USB OTG 下载线,开启电源,操作方式参考下图:

在这里插入图片描述

打开STM32MP157的烧写软件,把刚刚编译好的文件放在软件上,开始烧写,烧写成功后我们先关闭电源开关,然后设置启动方式为 Emmc 启动,打开电源开关即可启动烧写好的 emmc 系统。

在这里插入图片描述

6. 开发板测试

上电开发板,输入以下命令,打印出关于当前运行的操作系统的全部信息:

uname -a

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

配置wifi,输入以下命令:

vi /etc/systemd/network/50-static.network

添加以下内容:

[Match]
 Name=eth0
[Network]
 Address=192.168.5.9/24
Gateway=192.168.5.1

然后输入以下命令:

systemctl enable systemd-networkd
reboot

挂载NFS目录:

mount -t nfs -o nolock,vers=3 192.168.5.11:/home/book/nfs_rootfs /mnt

Ubuntu输入以下命令,计算文件uImage的MD5哈希值大小:

md5sum uImage

在这里插入图片描述

开发板输入以下命令,计算文件uImage的MD5哈希值是否与Ubuntu中的相同:

mount /dev/mmcblk2p2 /boot
md5sum /boot/uImage

在这里插入图片描述

二、安装 Qtcreator

QtCreator 下载网址: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 &

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

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

三、配置 QtCreator 开发环境

在这里我们配置 QtCreator 开发环境主要是为了方便将测试程序移植到我们的开发板上。安装完成后直接双击打开,或者进入目录,运行如下命令启动QtCreator,如图:

在这里插入图片描述

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。 以STM32MP157为例,你已经做了这些事情:

在执行“make 100ask_stm32mp157_pro_ddr512m_systemD_qt5_defconfig”配置后,再执行“make all”可以编译出 QT 的 SDK 包。可以在/home/book/100ask_stm32mp157_pro-sdk 下执行这个命令找到 qmake,记住它的目录:

find -name qmake

在这里插入图片描述

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

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

在这里插入图片描述

5. 配置 kit 标签

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

① Name:输入100ask_STM32MP157

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

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

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

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

在这里插入图片描述

配置完成后点击apply,点击OK。

四、移植QT程序到开发板

第1步 新建项目:

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

选择项目类型:

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

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

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

在这里插入图片描述

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

在这里插入图片描述

第4步 选择基类:

当前的的应用继承自哪种Widget,默认选择QMainWindow,然后点击 Next 进入下一步。

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

第7步 完成项目创建:

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

在这里插入图片描述

五、编译QT程序

第1步 修改界面:

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

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

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

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

第2步 添加测试代码:

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

第3步 构建:

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

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

在这里插入图片描述

第4步 查看构建结果:

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

在这里插入图片描述

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

输入以下命令,关闭原有的QT界面:

systemctl stop myir

在这里插入图片描述

使用 ssh 远程登陆开发板,将生成的 QT 程序的可执行文件 STM32MP157_hello_and_button拷贝到开发板上:

在这里插入图片描述

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

在这里插入图片描述

开发板显示如下:

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

猜你喜欢

转载自blog.csdn.net/m0_74712453/article/details/140604031