RK3568开发笔记(十):开发板buildroot固件移植开发的应用Demo,启动全屏显示

news2024/12/24 10:07:48

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

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

瑞芯微开发专栏

上一篇:《RK3568开发笔记(九):开发板buildroot固件调通RS485口,运行项目中RS485协议调试工具Demo》
下一篇:敬请期待…


前言

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


交叉编译好应用

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


解决全屏标题栏占用问题

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

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

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


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

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

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

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

Kill -9 685

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

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

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

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

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

  干587

kill -9 587

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

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

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

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

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

  在这里插入图片描述

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

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

  可以启动了

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

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

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

  然后重启:

rboot

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


应用卡顿

  不用想就是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》
下一篇:敬请期待…


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1022053.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

few shot目标检测survey paper笔记(迁移学习)

paper: Few-Shot Object Detection: A Comprehensive Survey (CVPR2021) meta learning需要复杂的情景训练,而迁移学习仅需在一个single-branch结构上做两步训练。 常用的结构是Faster R-CNN,下面是Faster R-CNN的结构图。 RPN的修改 当样本数量很少时…

Vue的进阶使用--模板语法应用

目录 前言 一. Vue的基础语法 1.插值 1.1文本插值 1.2HTML插值 1.3属性插值 1.4Vue演示三元条件运算 2 指令 2.1if&&else指令(v-if/v-else-if/v-else) 2.2 v-for 指令 2.3 v-on指令(动态参数) 2.4知识点补充之v-if与v-show的区别 3.过…

著名书法家傅成洪在香港第八届“一带一路”高峰论坛上展示艺术与合作的融合

香港第八届“一带一路”高峰论坛于9月13日至14日在香港隆重举行,吸引了来自海内外的6000多名嘉宾,共同回顾“一带一路”倡议的历程,并展望未来的投资和商贸机遇。这一庆祝活动恰逢“一带一路”倡议的10周年,主题定为“携手十载 共…

[Python进阶] Pyinstaller打包模式

5.3 Pyinstaller打包模式 Pyinstaller将Python源码打包成程序有2种打包的方式: 单文件夹模式:指打包后将所有的程序文件放在一个文件夹内。 单文件模式:打包后只有一个可执行文件,全部的依赖文件都已经被打包进去了。 5.3.1 单文…

Linux 信号相关

int kill(pid_t pid, int sig); -功能:给某个进程pid 发送某个信号 参数sig可以使用宏值或者和它对应的编号 参数pid: >0 ;将信号发给指定的进程 0;将信号发送给当前的进程组 -1;发送给每一个有权限接受这个信号的…

Postman应用——Variable变量设置(Global、Environment和Collection)

文章目录 Global变量设置Environment变量设置Collection变量设置Global、Environment环境变量预览 Global、Environment和Collection变量使用,点击查看。 Global变量设置 全局变量设置,作用域是所有Collection、Folder和Request,全局变量只有…

混淆矩阵和数据不平衡 (1/3)

一、说明 如果数据集数据不平恒,如何评估分类器的效果?如果分类器不好,如何改进分类器?本篇将讲述不平衡数据下,混淆矩阵的应用。 二、混淆矩阵的基本概念 2.1 连续数据分布 LET将数据视为连续的,分类的或有…

阿里云服务器价格更新,轻量应用服务器108元,云服务器182.04元起

阿里云服务器价格更新了,不同时期阿里云服务器的租用价格不同,目前阿里云在官网活动中新增加了一款经济型e实例规格的云服务器,现在购买阿里云轻量应用服务器最低为108元,购买云服务器最低为182.04元,换算到每天只要0.…

零基础学前端(四)3. 重点讲解 CSS:实战补全百度网站首页

1. 该篇适用于从零基础学习前端的小白 2. 初学者不懂代码得含义也要坚持模仿逐行敲代码,以身体感悟带动头脑去理解新知识 3. 初学者切忌,不要眼花缭乱,不要四处找其它文档,要坚定一个教授者的方式,将其学通透&#xff…

前端学习路线,带你入门程序猿

相信很多想学前端的小伙伴是非常迷茫的 前端知识体系很多,不知从何学起 而且框架也有不少,不知道该如何下手 很多学习前端的小伙伴都没有一个很好的学习路线图,简直可以说是看见啥学啥 而且自己在学习的时候非常吃力,感觉总是学不…

SQLite 学习笔记1 - 简介、下载、安装

SQLite 简介 SQLite是一款非常轻量级的关系数据库系统,支持多数SQL92标准。SQLite 是世界上使用最广泛的数据库引擎。SQLite 内置于所有手机和大多数计算机中,并捆绑在人们每天使用的无数其他应用程序中。 SQLite 是一个由C语音开发的嵌入式库&#xff…

DataGrip汉化

一、关闭DataGrip,下载新的jar包 链接:https://pan.baidu.com/s/1gTHpyMuIME_n8qC9KYbOzA 提取码:ute3 二、把下载的jar包放在lib文件里,把原来自带的jar替换掉 三、打开datagrip

nginx代理故障总结

一、故障现象 今天公司的某个系统文件下载功能失败,报错network error,其他功能正常。 二、故障定位 首先我们检查了公司的网络情况,包括网络路由、防火墙策略、终端安全产品等,均未发现异常。 尝试访问http://X.X.X.X:7002端口&…

uniapp——实现二维码生成+保存二维码图片——基础积累

最近在做二维码推广功能,自从2020年下半年到今天,大概有三年没有用过uniapp了,而且我之前用uniapp开发的程序还比较少,因此很多功能都浪费了很多时间去查资料,现在把功能记录一下。 这里写目录标题 效果图1.根据接口返…

元数据管理平台Datahub0.10.5版本安装部署与导入各种元数据手册

官网文档连接 DataHub Quickstart Guide | DataHub (datahubproject.io) 本文所选择的Python的版本为3.8.16,Docker版本为20.10.0,Datahub为0.10.5版本 python必须为3.7以上的版本。0.10.5不支持以下的版本 如果要使用web上的 添加数据源 直接调用的…

开源分布式存储系统(HDFS、Ceph)架构分析

文章目录 中间控制节点架构-HDFSNameNode节点分析DataNode节点分析SecondNameNode节点分析Client分析 完全无中心架构-CephCeph Monitor分析Ceph OSD分析Ceph Manager分析Ceph Clients分析 小结HDFS优点缺点 Ceph优点缺点 参考 中间控制节点架构-HDFS 以HDFS( Hado…

五、点击切换、滚动切换、键盘切换

简介 通过事件改变当前展示的信息组件&#xff0c;交互的事件有点击上下切换、鼠标轮动上下切换、键盘上下键切换。欢迎访问个人的简历网站预览效果 本章涉及修改与新增的文件&#xff1a;App.vue、public 一、鼠标点击上下箭头切换 <template><div class"a…

Learn Prompt-Prompt 高级技巧:Agent的颠覆性影响

OpenAI联合创始人Andrej Karpathy在一个开发者活动上发表讲话&#xff0c;谈及了他和OpenAI对AI Agents的看法。他将过去开发 AI Agents 的困难与现在依靠新技术工具而带来的新机会进行了对比。Andrej Karpathy 认为普通人、创业者和极客在构建 AI Agents 方面相比 OpenAI 这样…

还有一天活动就开始我定好闹钟准时上线

&#xff08;整理衣服&#xff09;&#xff08;大步流星走上台&#xff09;&#xff08;拿起麦克风&#xff09;&#xff08;激情发言&#xff09;请大家&#xff08;热泪盈眶&#xff09;&#xff08;哽咽&#xff09;关注&#xff08;流泪&#xff09;&#xff08;擦眼泪&…

蓝桥杯打卡Day11

文章目录 最长上升子序列最长上升子序列II 一、最长上升子序列IO链接 本题思路:本题是一关于dp问题中的一个类型是最长上升子序列问题&#xff0c;首先我们将状态表示出来&#xff1a;f[i]表示以a[i]结尾的最大的上升序列。状态计算&#xff08;集合划分&#xff09;&#xf…