helpera64开机bootlogo-BUG

2023-10-21 02:10
文章标签 bug 开机 helpera64 bootlogo

本文主要是介绍helpera64开机bootlogo-BUG,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

环境:

       HelperA64开发板

       Linux3.10内核

时间:2019.01.12

目标:修改开机bootlogo的BUG

问题:

1、24bit深度的bootlogo.bmp图片会导致Qt5有色差,32位的图片没有色差。

2、将开机bootlogo图片修改为32位图片只有部分图片能够点亮屏就显示,大部分图片没有在开机uboot中显示,只在内核中显示。

方法:修改uboot使其能正常显示

1、查找uboot开机显示图片的地方,寻找源码BUG地方

2、通过bmp格式解析发现没错,调用开机bootlogo解码和显示主要如下

3、BUG原因:helperA64每次开机都会执行下图代码,这代码是lzma解压。部分图片执行解压很快,而大部分bmp图片就在这里卡住了多达四五秒时间等待,这是uboot快速启动所不能接受的。

4、uboot开机时开始时为多线程,导致解析图片产生资源冲突,如下是start.S中先调用sunxi_secendary_cpu_task然后是sunxi_third_cpu_task。

5、修改开机bootlogo调用,禁掉lzma解压,修改如下图使其32位图片能正常在uboot和内核显示

6、不足之处:对lzma解压调用还没理清楚,没搞清楚为什么大部分bmp图片会造成多线程资源的抢占,又怎么冲突的。学习内核和UBOOT任重而道远啊~

转载于:https://www.cnblogs.com/jizizh/p/10261862.html

这篇关于helpera64开机bootlogo-BUG的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/251224

相关文章

电脑开机提示krpt.dll丢失怎么解决? krpt.dll文件缺失的多种解决办法

《电脑开机提示krpt.dll丢失怎么解决?krpt.dll文件缺失的多种解决办法》krpt.dll是Windows操作系统中的一个动态链接库文件,它对于系统的正常运行起着重要的作用,本文将详细介绍... 在使用 Windows 操作系统的过程中,用户有时会遇到各种错误提示,其中“找不到 krpt.dll”

前端bug调试的方法技巧及常见错误

《前端bug调试的方法技巧及常见错误》:本文主要介绍编程中常见的报错和Bug,以及调试的重要性,调试的基本流程是通过缩小范围来定位问题,并给出了推测法、删除代码法、console调试和debugg... 目录调试基本流程调试方法排查bug的两大技巧如何看控制台报错前端常见错误取值调用报错资源引入错误解析错误

Windows下Nginx的安装及开机启动

1、将nginx-1.16.1.zip解压拷贝至D:\web\nginx目录下。 2、启动Nginx,两种方法: (1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过。 (2)打开cmd命令窗口,切换到nginx目录下,输入命令 nginx.exe 或者 start nginx ,回车即可。 3、检查nginx是否启动成功。 直接在浏览器地址栏输入网址 http://lo

笔记本电脑开机报错故障的原因及解决办法

笔记本电脑开机报错故障是指笔记本电脑开机自检时或启动操作系统前停止启动,在显示屏 出现一些错误提示的故障。   笔记本电脑开机报错故障的原因及解决办法   造成此类故障的原因一般是笔记本电脑在启动自检时,检测到硬件设备不能正常工作或在自 检通过后从硬盘启动时,出现硬盘的分区表损坏、硬盘主引导记录损坏、硬盘分区结束标志丢失 等故障,笔记本电脑出现相应的故障提示。   维修此类故障时

设置zookeeper开机自启动/服务化

设置启动zk的用户为zookeeper 设置启动zk的用户为zookeeper用户,而非root用户,这样比较安全。 可以使用root用户进行zookeeper的管理(启动、停止…),但对于追求卓越和安全的的人来说,采用新非root用户管理zookeeper更好。 步骤: 1. 创建用户和用户组 2. 相关目录设置用户和用户组属性 3. 采用zookeeper用户启动进程 设置z

Ubuntu 16.04添加开机启动脚本

1,新建个脚本文件new_service.sh #!/bin/bash# command contentexit 0 2,设置权限 sudo chmod 755 new_service.sh 3,把脚本放置到启动目录下 sudo mv new_service.sh /etc/init.d/ 4,将脚本添加到启动脚本 执行如下指令,在这里90表明一个优先级,越高表示执行的越晚 cd

每次开机都会自动打开c:\windows\system32目录

每次开机都会自动打开c:\windows\system32目录   当然,也不排除病毒的可能。如果msonfig里面没有的话,可在“开始”-“运行”里输入msconfig,点“确定”。在对话框里“启动”选项里,把所有项都去掉,只留输入法“ctfmon"这一项,   (如果你能找到你说的这一项,直接去掉对勾也可以)   把里边的东西删除   C:\Documents and Sett

解决开机提示STOP:c0000218办法教程

“STOP:c0000218 {Registry File Failure}”是一个很典型的错误信息,造成错误的原因是硬盘错误或硬盘损坏。解决办法如下:   1. 从 Windows XP 光盘启动计算机。如果出现提示,请选择从光盘启动计算机必须选择的任何选项。   2. 当提示你选择“修复或故障恢复”时,请按R。这将启动Microsoft故障恢复控制台。   3. 根据提示,键

JavaBug系列-解决SpringBoot返回Xml结构的问题

JavaBug系列之SpringBoot返回Xml结构的问题 Java医生一、关于错误信息二、如何解决问题 Java医生 本系列记录常见Bug,以及诊断过程和原因 作者:Java医生 教学: Java企业项目辅导,专注于辅导新入职员工,解决各种问题! V:study_51ctofx 一、关于错误信息 如图,SpringBoot请求返回Xml格式信息 通过以上信息分析,

JavaBug系列- Failed to load driver class com.mysql.cj.jdbc.Driver in either of HikariConfig class load

JavaBug系列之Mysql驱动问题 Java医生一、关于错误信息二、如何解决问题 Java医生 本系列记录常见Bug,以及诊断过程和原因 Java/一对一零基础辅导/企业项目一对一辅导/日常Bug解决/代码讲解/毕业设计等 V:study_51ctofx 一、关于错误信息 APPLICATION FAILED TO START Description: Fai