海思移植Qt以及tslib
知识点——————————————————————————————
Frmebuffer:linux为显示显示设备提供的一个接口,可以屏蔽图像硬件爱你的底层差异,允许上层应用在图形模式下对显示缓冲区进行读写操作,模仿显卡的功能,可以通过对framebuffer的读写直接对显存进行操作,写操作可以直接反映在屏幕上。操作如下:
1)打开/dev/fbn设备文件;
2)用ioctl()操作取得当前显示屏幕的参数,如屏幕的分辨率、每个像素点的比特数。根据屏幕的参数可计算屏幕缓冲区的大小;
3)用mmap()函数,将屏幕缓冲区映射到用户空间;
4)映射后就可以直接读/写屏幕缓冲区,进行绘图和图片显示。
开发环境———————————————————————————————-
Ubuntu16.04 已安装好交叉编译器,可以通过如下图方式查看
如果没有安装好,可以查看我的另一篇博文进行安装
https://blog.csdn.net/warren103098/article/details/128074192?spm=1001.2014.3001.5502
海思 hi3516DV300
Tslib步骤——————————————————————————————-
获取和下载tslib
获取 tslib 的源码,git 地址为 https://github.com/kergoth/tslib,拷贝至任意目录,解压
tar xf tslib-1.21.tar.bz2
(注意空格)
./configure—host=arm-linux-gnueabiCC=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc-prefix=/home/wzw/Hisi_qt/test/tslib-1.21/arm-tslib
直接Make
接着make install(忽略警告)
安装完后生成arm-tslib文件夹
查看是否编译成功
Cd arm-tslib/bin
File ts_test 看到ARM即成功
至此ts_lib编译完成,接着是把编译好的库移植到板端
tar -jcf ./arm-tslib.tar.bz2 arm-tslib
拷贝至板端,tar xf arm-tslib.tar.bz2 -C /usr/lib
接着配置环境变量,这里注意一下要使用event2
如果板端有source命令,可以直接source /etc/profile使环境变量生效。如果没有,直接重启也可以使环境变量生效;
测试tslib是否生效
cd /usr/lib/arm-tslib/bin/test
./ts_test(这里我是配置好hifb的(后续会将),如果没有配置好,显示会不正常)
触摸点坐标
至此tslib移植完成。
Qt移植——————————————————————————————————
首先获取qt源码
wget https://download.qt.io/archive/qt/5.12/5.12.9/single/qt-everywhere-src-5.12.9.tar.xz
tar vf qt-everywhere-src-5.12.9.tar.xz
cd qt-everywhere-src-5.12.9/
ls
接着修改qmake.conf
vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
接着配置编译选项,为了方便,我们可以写一个脚本来执行,其中第一行和倒数两行的路径需要改成自己的实际路径;
赋予脚本执行权限 chmod +x autobuild.sh
同时确保你装好了g++ 若没有-sudo apt-get install g++
./autobuild.sh
配置完成后可以看到just run ‘make’即为成功
接着开始编译qt———-make -j 16(选择核数)
编译完成后make install 这里会生成arm-qt文件夹
至此qt编译完成
接下来将编译好的qt库移植到板端
tar -jcf ./arm-qt.tar.bz2 arm-qt 打包后拷致板端
tar xf arm-qt.tar.bz2 -C /usr/lib
接着配置环境变量,这里注意一下芯片为Hi3516 dv300只有fb0;
与其他使用linuxframebuffer的soc不同,海思使用的是hifb来管理图层,因此我们并不能直接显示,必须要先初试化hifb才能显示qt界面;
这里我参考了很多资料,很多博文都说采用hifb这个例程,但是我试了很多次依然不行,可能是那个地方没有配置成功,后续我将继续阅读该例程源码后再尝试;偶然看到有位博主使用的是tde这个例程,经尝试可以正常显示qt界面;下面我们以tde例程为例进行改写:
使用到的资料有《HiFB 开发指南》《HiFB API参考》
可以看到在使用hifb时要先加载hifb的驱动并分配内存
Sampl_circumrotate起先是初始化sysy以及vo,开启vo设备
接着是TDE_DragraphicSample函数,主要的过程可以参考下图,我主要讲一下更改哪里
首先更改成我们的屏幕的分辨率1080*1920
把循环播放二十次图片的函数去掉换成如下的函数即可
至此程序部分改动完成,拷贝至板端
./sample_tde &
初始化成功后应该是青色如下图
cd /usr/lib/arm-qt/examples/widgets/animation/animatedtiles/
./animatedtiles
测试qt例程,触摸正常,显示正常
至此板端配置完成,后面测试我们自己编写的qt代码,首先是配置pc的qt creator。
- 分享
- 举报
-
空 2024-06-17 14:39:01回复 举报为啥把编译后的qt可执行文件,加载到海思自启动里面,开机启动特别慢,慢的像卡死了一样,这怎么解决
-
浏览量:1983次2017-11-24 11:39:01
-
浏览量:1105次2024-06-06 09:47:33
-
浏览量:4467次2020-07-31 13:45:09
-
浏览量:1377次2023-11-04 15:07:11
-
浏览量:3387次2020-04-21 20:28:40
-
浏览量:2154次2020-04-21 20:27:00
-
浏览量:591次2024-02-23 17:34:00
-
浏览量:4255次2017-09-25 17:46:02
-
浏览量:10474次2020-08-03 14:27:03
-
浏览量:7308次2021-03-18 08:54:25
-
浏览量:6553次2021-09-02 16:11:45
-
浏览量:1683次2023-10-12 16:48:04
-
浏览量:3322次2018-01-30 11:43:55
-
浏览量:2359次2019-12-05 16:46:00
-
浏览量:3547次2020-08-29 16:50:56
-
浏览量:2941次2020-05-06 15:52:54
-
浏览量:582次2024-01-24 14:47:22
-
浏览量:752次2024-02-23 16:58:46
-
浏览量:843次2024-01-08 18:13:05
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
warren@伟
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明