0
点赞
收藏
分享

微信扫一扫

HMI-66-【MeterDisplay for Arm Linux】液晶仪表Arm Linxu迁移


HMI-66-【MeterDisplay for Arm Linux】液晶仪表Arm Linxu迁移

文章目录

  • ​​HMI-66-【MeterDisplay for Arm Linux】液晶仪表Arm Linxu迁移​​
  • ​​摘要​​
  • ​​修改Pro文件​​
  • ​​设置CPU亲缘性​​
  • ​​后面的解决思路​​
  • ​​1 只用大量属性动画,替换部分效果,现在使用了定时器​​
  • ​​2 使用新的框架,就是那个QGraphics​​
  • ​​◕目前项目进展​​
  • ​​Linux 实机测试​​
  • ​​▶第三阶段 液晶仪表节能模式​​
  • ​​▶第二阶段 液晶仪表运动模式​​
  • ​​▶第一阶段 HUD和液晶仪表舒适模式​​
  • ​​重大说明​​
  • ​​©说明:​​

关键字:​MeterDisplay​​​、​​Linux​​​、​​Debian​​​、​​Qt​​​、​​Arm​

摘要

先说结论,虽然移植成功,但是显示效果不理想,可以直接看和面的视频。先说说做了什么吧。

修改Pro文件

因为之前我的Pro文件是自己手撸的,所以好多Qt默认的都没有写,开始在Win平台下是没有问题的,但是在Linux 下,确实可以编译,但是不可以运行,这明显就是链接不到库文件,所以应该是程序默认的路径没有搞好,于是在Linx下新建了一个工程,对比一下,需要在Pro文件中加入以下代码

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

这样可以保证程序可以编译,并且在板子上运行了。但是呢,很卡。

设置CPU亲缘性

根据之前的经验,可以尝试手动控制程序中每个线程使用对应的CPU内核,所以在这个项目中,任然直接尝试手动控制内核。代码如下,

注意,这个代码智能在Linux下编译通过,每个平台设置内核绑定的接口不一样,所以要对应平台。

cpu_set_t mask;
CPU_ZERO(&mask);
CPU_SET(5,&mask);
if(sched_setaffinity(0,sizeof(cpu_set_t),&mask) < 0)
qDebug() << "False:" << "sched_setaffinity(0,sizeof(cpu_set_t),&mask)";

完成了以上尝试,发现还是很卡,真的很卡,可以看视频,暂时呢,无解了。

后面的解决思路

因为我的代码里面会有大量的painter函数,这会浪费大量CPU资源,所以我会尝试一下两个路子。

1 只用大量属性动画,替换部分效果,现在使用了定时器

属性动画用的基本很好,属于边写边摸索,所以进度不能保证,下一篇啥时候出来,完全看天意。

2 使用新的框架,就是那个QGraphics

据说这个可是使用GPU,从而解放CPU性能,这个也是,基本没有啥大规模使用过,也是得边摸索边写。结果看天意。

举报

相关推荐

0 条评论