海思移植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。
- 分享
- 举报
-
浏览量:1637次2017-11-24 11:39:01
-
浏览量:392次2023-11-04 15:07:11
-
浏览量:3995次2020-07-31 13:45:09
-
浏览量:1804次2020-04-21 20:27:00
-
浏览量:2920次2020-04-21 20:28:40
-
浏览量:132次2024-02-23 17:34:00
-
浏览量:9336次2020-08-03 14:27:03
-
浏览量:5978次2021-09-02 16:11:45
-
浏览量:6793次2021-03-18 08:54:25
-
浏览量:917次2023-10-12 16:48:04
-
浏览量:3871次2017-09-25 17:46:02
-
浏览量:2890次2018-01-30 11:43:55
-
浏览量:3065次2020-08-29 16:50:56
-
浏览量:2059次2019-12-05 16:46:00
-
浏览量:171次2024-01-24 14:47:22
-
浏览量:120次2024-02-23 16:58:46
-
浏览量:2468次2020-05-06 15:52:54
-
浏览量:285次2024-01-08 18:13:05
-
浏览量:5298次2020-08-03 18:36:13
- Hi3519DV500 SDK内核编译,生成kernel镜像
- HI3516DV300笔记(四)修改uboot环境变量
- 新基建,新物联!海思Boudica 200 SoC芯片助力NB-IoT“亿”征程
- 移植ZLMediaKit 工具到 Hi3516DV500 平台
- HI3516DV300 开发环境搭建及NFS网络挂载
- 海思|海备思高清无线投屏器,震撼上市啦!
- 基于arm-himix200-linux-gcc 交叉编译大疆PSDK
- 长虹爱联发布首款海思平台标准M.2封装5G模组
- 针对Hi3519DV500的ISP开发说明——AIDRC算法应用
- 海思平台深度学习算法仿真使用RuyiStudio生成wk文件
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
warren@伟
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明