双framebuffer显示两张uboot logo

 本来一直走的是一级logo显示,从uboot logo一直持续到系统动画,但考虑期间时间偏长,欲采用标准三级logo。1、uboot logo  2、kernle logo 3 initlogo.rle 最后动画bootanimation.zip。但是kernel 对framebuffer修改较大,故考虑在uboot开始和结束显示两张logo(第二幅logo显示调用在theKernel()跳入内核函数之前),kernel跳过。uboot 直接刷屏显示第二幅logo 动作过慢,效果不佳,经考虑采用双buffer策略。

思路:

  1. 原来只要显示一张uboot logo :把nand 中boot.logo 拷贝至lcd_base+fbsize处,然后搬至lcd_base显示;
  2. 现在创建第二个framebuffer于lcd_base+2*fbsize处,在显示第二幅logo前把nand 中第二幅logo 仍然拷贝至lcd_base+fbsize处,然后搬至lcd_base+2*fbsize第二个framebuffer基地址;
  3. 把第二个framebuffer基地址告诉lcd 控制寄存器,更新framebuffer基地址;
  4. 但在kernel中,寄存器仍然会指向第一个framebuffer基地址,那么第二幅logo显示犹如昙花一现啊,不过这个问题好解决,既然第二幅logo已经搬进了第二个framebuffer那,那么只要在进入内核前做一个memcpy就好了。

注:logo是bmp格式,在拷贝前需要进行相应的解析,参考uboot给的解析代码,自定义函数。

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Framebuffer显示是一种直接在计算机的帧缓冲区(Framebuffer)中进行图像渲染和显示的技术。帧缓冲区是计算机系统中用于存储图像数据的内存区域,它包含了屏幕上每个像素的颜色和其他相关信息。Framebuffer显示技术直接在帧缓冲区中进行图像绘制,然后将绘制好的图像数据发送给显示设备进行显示Framebuffer显示相较于传统的图形窗口系统或者文字终端有以下几个优势: 1. 直接访问:通过Framebuffer显示,可以直接访问帧缓冲区中的像素,可以直接操作像素值来进行图像渲染和处理,而不需要通过窗口系统的API或者终端的字符绘制函数。 2. 更高的性能:由于直接访问帧缓冲区,Framebuffer显示可以获得更高的图像渲染和显示性能。特别是在一些嵌入式系统或者实时图形应用中,需要追求更低的延迟和更高的响应速度。 3. 独立性:Framebuffer显示与具体的操作系统或者窗口系统无关,可以在各种平台上实现,并且可以更好地控制和定制图像显示的方式和效果。 在实际使用中,Framebuffer显示可以通过操作系统提供的API或者直接与硬件交互来实现。一些嵌入式系统或者实时图形应用会直接访问硬件的帧缓冲区,而在一些桌面系统中,会通过操作系统提供的API(如Linux的Framebuffer设备接口)来进行Framebuffer显示。 总之,Framebuffer显示是一种直接在帧缓冲区中进行图像渲染和显示的技术,它具有直接访问、更高性能和独立性等优势,适用于一些对图像渲染和显示性能有较高要求的应用场景。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值