网站备案授权书模板,软文营销文案,windows优化大师是哪个公司的,贵阳中企动力做的网站本帖最后由 3guoyangyang7 于 2017-8-20 22:38 编辑先说一下背景#xff0c;这几天做一个摄像头处理的qt项目#xff0c;摄像头的像素是1280*720的#xff0c;25fps#xff0c;用qt的painter重绘widget窗体#xff0c;会出现大量占cpu的情况#xff0c;在刷新图片的时候整…本帖最后由 3guoyangyang7 于 2017-8-20 22:38 编辑先说一下背景这几天做一个摄像头处理的qt项目摄像头的像素是1280*720的25fps用qt的painter重绘widget窗体会出现大量占cpu的情况在刷新图片的时候整个窗体的事件响应缓慢定时器不准不能忍受基本上网上的办法都尝试过什么多线程只在主线程刷图啊直接写frambuffer啊都没有什么卵用。只能抓住最后的稻草使用gpu刷图这样cpu的占用肯定下来。所以第一步要做的就是搭建ARM环境下OPENGL ES开发环境。以下的方法不是小狂独创是在一个大神的指导下完成有什么不对的地方还希望大家批评指正。给出我的开发环境的参数。开发板友善之臂smart4418,(这个OPENGL ES的驱动支持mail400的gpu。只要是这个的应该都适用)。开发板系统内核3.4.39、系统 Ubuntu 16.04PC机系统ubuntu16.04交叉编译环境arm-cortexa9-linux-gnueabihf-4.9.3 32位。总的步骤按照大体上分为三部分第一部分是编译mail400的内核驱动第二部分是编译用户层的OPENGL ES的库第三部分是测试下面给出具体的做法。一、内核驱动的编译从给出的附件中把所有内容拷贝到你相应内核目录下/driver/gpu目录下如果有了就覆盖就行然后就是开始编译内核我把smart4418具体的编译步骤给出其他开发板的见各个厂商给的编译步骤。1、交叉编译环境的搭建在这里默认交叉编译环境已经建好了。具体可自行百度或者查看厂商给的手册这个肯定会有。2、内核的编译因为我的内核是从git上下载的是有分支的第一步一定要选择分支不然有些东西没有编译会出错然后配置内核先执行以下友善的配置操作然后再更改我们自己的我使用的是ubuntu core的系统所以就按照友善给的手册配置然后执行menuconfig添加GPU驱动如果执行这一步出错那你是没有安装图像话的配置界面执行以下如下指令就行添加gpu相应的驱动这里如果你不知道在哪可以搜索以下在arm文件夹下有个kconfig文件就是把选项加入到菜单的搜索一下如下的就能找到按照如下配置退出menuconfig并且保存设置。然后执行如下指令说实话这一条我也不知道干嘛的一般情况下现在就可以直接编译了。既然友善给了就有他的道理我们执行一下然后编译内核执行如下指令这里的j8根据电脑的性能而定j后边的数字代表几个线程同时编译。等待编译完成出现图片所示的内容就证明编译的没有问题否则就按照提示找错误已经把uImage编译出来了这里只需要把你原来sd或者nand或者emmc中的uimage替换就行。这里我的是sd卡有个小插曲导致浪费了很多时间就是sd卡属于块设备块设备对存储是有优化的就是什么电梯优化算法之类的当你把内容拷贝到里边的时候并没有真正的拷贝只有等你拔卡的时候才会拷贝我当时大意了就直接吧卡拔了导致拷贝的数据不全启动的时候出现了错误在这里提醒各位拔卡前 可以执行一次sync强制同步就行了。到这里驱动添加完成我们需要查看一下是否有设备节点如果出现上图红色框内的内容证明你驱动移植的完全正确。二、用户层OPENGL ES的库的编译和导入这里给出一个连接我也是参考这个链接中的内容来的下面所以的内容都是在开发板上做的。首先导入需要的工具在ubuntu系统中可以按照我边的操作做如果是其他系统则可以参考上边的链接然后下载libump的源文件进入目录准备编译然后执行下边一系列的编译指令前提是在ubuntu系统下到这ump的库编完了我们要编mali的用户驱动了在ubuntu下安装可以执行如下指令2、mali的用户驱动的编译首先下载需要用到的工具然后下载源码3、配置我们要首先探测以下我们的环境需要什么使用make config会打印下边的内容主要关注红色框内的内容然后再配置使用如下指令 把下边红色框内的内容换成探测到的内容就行了等编译完成进行最后一步导入这个时候lib文件就会导入到/usr/lib ,头文件导入到 /usr/include。可以查看一下证明我们的导入已经完成三、测试测试我们可以用sunxi下的一个测试程序然后执行如果你运气足够好你会看到你的屏幕上出现一个彩色的三角控制台出现如下的显示证明已经成功了。但是你要是出现我下图的情形那就是你的系统上本身有其他的opengl的库.你需要吧其他的库删除然后才能使用。就必须smart4418,的ubuntu就存在这个情况需要把nexell的库删掉才能使用。四、总结到了这里基本上开发环境的opengl已经完成了下边要做的就是要建立交叉编译环境使得能在pc上的qt环境中使用opengl的库。再次感谢那位大神又学到了一个技能。需要gpu源文件的见readme.txtreadme.txt(188 Bytes, 下载次数: 109)说明NEXELL官方提供的驱动和库并不能支持HDMI只能支持LCD但是按照上述方法编译的驱动和库是能支持HDMI输出的想怎么玩耍就怎么玩耍你还在为GPU不能适用而发愁吗赶快行动吧。