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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值