欢迎来到亿配芯城! | 免费注册
你的位置:Sanken(三垦)半导体IC电源模块全系列-亿配芯城 > 芯片资讯 > QT在Linux嵌入式设备上的系统配置
QT在Linux嵌入式设备上的系统配置
发布日期:2024-01-09 12:14     点击次数:91

QT是目前主流的UI界面设计软件之一,Linux系统也支持QT应用,并且提供了很多方便的接口。所以有必要记录一下基于QT,在LCD屏幕上实现UI界面功能的各种细节。

1. 系统配置

出于方便,我采用的是正点原子提供的出厂系统,里面已经安装并配置好了QT,可以直接烧写QT程序进行功能实现。

里面已经写入了正点原子的出厂UI界面,所以接下来需要对其进行修改。

2. 配置Qt Creator

交叉编译工作的安装参考正点原子的相关文档,这里不再赘述。

启动

启动的时候需要加载交叉编译器,所以需要在qtcreator.sh中插入对应指令

sudo vi /opt/QT5.12.12/Tools/QtCreator/bin/qtcreator.sh # 以自己电脑的QT安装路径为准

在第一行插入以下指令

source /opt/st/stm32mp1/3.1-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

 

 

be5e0cde-6741-11ee-939d-92fbcf53809c.png

启动的时候采用以下指令(也可以将其写入到.sh文件便于启动)

/opt/Qt5.12.9/Tools/QtCreator/bin/qtcreator.sh &

编译器配置

be6f0354-6741-11ee-939d-92fbcf53809c.png

be73f882-6741-11ee-939d-92fbcf53809c.png

be81518a-6741-11ee-939d-92fbcf53809c.png

be8a8ce6-6741-11ee-939d-92fbcf53809c.png

新建项目,并选择以下的编译套件

be96bc78-6741-11ee-939d-92fbcf53809c.png

编译

bea5de38-6741-11ee-939d-92fbcf53809c.png

远程调试

beb99d06-6741-11ee-939d-92fbcf53809c.png

becc96a4-6741-11ee-939d-92fbcf53809c.png

bed0a37a-6741-11ee-939d-92fbcf53809c.png

bee34048-6741-11ee-939d-92fbcf53809c.png

beff6f34-6741-11ee-939d-92fbcf53809c.png

bf0e6f98-6741-11ee-939d-92fbcf53809c.png

bf1c1d46-6741-11ee-939d-92fbcf53809c.png

配置Linuxfb/eglfs方式调试(只需修改Command line arguments 为 linuxfb或eglfs)

bf287abe-6741-11ee-939d-92fbcf53809c.png

注意:Upload Files via SFTP这一步也要添加, 亿配芯城 否则不会自动上传新代码至开发板

bf2eff60-6741-11ee-939d-92fbcf53809c.png

注意:linuxfb采用纯软件渲染,eglfs采用GPU渲染,后者显示会更流畅。

不过eglfs只有在采用EMMC启动Linux内核和根文件系统时可用,对于远程网络调试只能使用linuxfb方式。

配置完成后,运行程序的时候,Qt Creator会把程序发送至开发板,然后开始运行。

Ubuntu本机调试

bf408fa0-6741-11ee-939d-92fbcf53809c.png

3. 修改内核启动LOGO

(1)修改logo显示源码

修改fbcon.c文件下的fbcon_prepare_logo函数

bf4d5c08-6741-11ee-939d-92fbcf53809c.png

修改fbmem.c下的fb_show_logo_line函数

bf5153a8-6741-11ee-939d-92fbcf53809c.png

(2)准备一张适配屏幕大小的.png图片

 

(3)使用netpbm图像转换库处理图片

pngtopnm logo.png > logo.pnm # 转换格式
pnmquant 224 logo.pnm > logo_224.pnm # 修改颜色通道数量
pnmtoplainpnm logo_224.pnm > logo_linux_clut224.ppm # 转换格式

**(4)将文件放置在指定路径 **

sudo cp logo_linux_clut224.ppm 内核路径/drivers/video/logo

重新编译内核后,使用新的内核启动开发板即可。

4. 配置自启动UI界面

关闭正点原子的出厂UI服务

systemctl disable atk-qtapp-start.service # 执行此项关闭Qt桌面服务,下次启动不生效
systemctl enable atk-qtapp-start.service # 执行此项开启Qt桌面服务
systemctl stop atk-qtapp-start.service # 暂时停止Qt桌面服务,重启服务用restart

启动UI界面指令

/usr/local/test -platform linuxfb # 以自己放置UI程序的路径为准

编写自启动服务

cd /lib/systemd/system
touch jozen-qt-start.service
vi jozen-qt-start.service


#添加以下内容
[Unit]
Description=Run a Custom Script at Startup
After=default.target


[Service]
ExecStart=/usr/local/test -platform linuxfb


[Install]
WantedBy=default.target

编辑:黄飞

 



相关资讯