码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • RK3568开发笔记(十):开发板buildroot固件移植开发的应用Demo,启动全屏显示


    若该文为原创文章,转载请注明原文出处
    本文章博客地址:https://hpzwl.blog.csdn.net/article/details/133021990

    红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…

    瑞芯微开发专栏

    上一篇:《RK3568开发笔记(九):开发板buildroot固件调通RS485口,运行项目中RS485协议调试工具Demo》
    下一篇:《RK3568开发笔记(十一):开发版buildroot固件移植一个ffmpeg播放rtsp的播放器Demo》


    前言

      上一篇,移植应用前的通讯接口工作和全屏工作都已经完成了。本篇移植开发的商业应用。


    交叉编译好应用

      (略),参照《RK3568开发笔记(八):开发板烧写buildroot固件(支持hdmi屏),搭建Qt交叉编译开发环境,编译一个Demo,目标板运行Demo测试》


    解决全屏标题栏占用问题

      交叉编译好了应用,放过去,跑起来没问题,也可以正常显示,但是一旦操作就出现被默认的qt程序占用。
      这是默认的应用:
      在这里插入图片描述
      这是正常全屏应用:
      在这里插入图片描述

      这是被占用之后的(点击任何地方,让应用获取焦点就这样了):
      在这里插入图片描述

      所以,这里理论上将原来的qt应用停掉,用我们的应用作为启动应用就可以了。


    Buildroot固件系统将设置启动Qt应用

    步骤一:定位到Qt启动的地方,验证标题栏

      一般linux系统大家会默认都在rcS里面加入一个界面启动脚本,界面启动脚本也在/etc/inid.d的S???里面。
      在这里插入图片描述

      首先我们先看下这个桌面进程是哪一个,先top,看到与i个QLauncher,杀掉他试试:
      在这里插入图片描述

    Kill -9 685
    
    • 1

      变灰了,看起来标题栏还是在:
      在这里插入图片描述

      于是我们,跑一下自己的应用测试验证一下,确实点击之后,标题栏还是被占用了,所以不是QLauncher的问题,是有一个灰色底色+任务栏,称之为控制台吧。

    步骤二:定位到控制台,验证启动应用

      这个控制台可能是weton或者哪里的,不太清楚,咨询了官方查看了文档,好像是weston的:
      在这里插入图片描述

      所以直接干掉看效果:
      在这里插入图片描述

      干587

    kill -9 587
    
    • 1

      结果如下图:
      在这里插入图片描述

      确实是黑了,但是因此,我们使用界面的应用也启动不了:
      在这里插入图片描述

      这里陷入两难了,寻求官方支持。

    步骤三:寻求官方支持求改weston的配置

      修改/etc/xdg/weston/weston.ini
      在这里插入图片描述

      在这里插入图片描述

      然后,再重启开发板测试:
      在这里插入图片描述

      再启动自己的应用:
      在这里插入图片描述

      可以启动了

    步骤四:修改为自己的程序为开机启动

      前面已经定位了QLauncher,那么替换一下全路径就可以了。
      注意:这里要注意若是应用中使用了相对路径会直接换成调用脚本的路径为起始路径,这事经常容易犯的错误,且一时半伙定位不到,所以建议开发程序的时候,使用到路径一定要使用QApplication::applicationDir去获取可执行文件的类路径作为起始路径)
      在这里插入图片描述

      修改后为:
      在这里插入图片描述

      然后重启:

    rboot
    
    • 1

      重启就是我们的应用了,已经实测验证完了。


    应用卡顿

      不用想就是RS485的上下拉过程了,因为应用的界面都做了二级缓存,所有的界面操作除开时钟之外,目前只有探测到变化才会修改一次界面值,而多次发送同样的数据,理论上不存在,以这个目标去论证。
      官方的usleep,睡眠是100字节才睡眠0.17ms左右,10016(107+2)约等于0.17ms,这样检测是不够的,直接使用QThread::msleep睡眠,之前做的海思的也是这个问题,具体值要根据测试来,这边测试最终是2ms的时候,不卡顿,当然,可以尝试1ms。
      在这里插入图片描述

      收发即使,收-即使处理了,发-PC即使收到了。
      手痒,测试一下1ms试试,发现1ms更顺利,所以改为1ms了。
      (这里不是105,回发的只有7字节,等于直接就是1ms之后就拉低了)


    小结

      嵌入式linux系统开发就是软硬系统结合,问题出现确实比较多,而且涉猎的知识面比较广,对于基础也有一定要求的入门门槛。


    上一篇:《RK3568开发笔记(九):开发板buildroot固件调通RS485口,运行项目中RS485协议调试工具Demo》
    下一篇:《RK3568开发笔记(十一):开发版buildroot固件移植一个ffmpeg播放rtsp的播放器Demo》


    若该文为原创文章,转载请注明原文出处
    本文章博客地址:https://hpzwl.blog.csdn.net/article/details/133021990

  • 相关阅读:
    关于 SAP UI5 floating footer 显示与否的单步调试以及使用 SAP UI5 的收益
    解决tomcat时区错误问题
    Python 无废话-基础知识流程控制语句
    新手学习:ArcGIS对shp文件裁剪
    `Algorithm-Solution` `AcWing` 4726. 寻找数字
    Apache Paimon实时数据糊介绍
    LINQ(五) ——使用LINQ进行匿名对象初始化
    UnRaid虚拟机安装Uos家庭版并由Windows远程桌面访问的成功流程
    LVS+keepalive配置DNS的UDP53端口负载均衡
    [buuctf]刮开有奖
  • 原文地址:https://blog.csdn.net/qq21497936/article/details/133021990
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号