添加系统LOGO

     因为之前在2440的平台上做过这个,所以就觉得应该很简单,但是还是耗费了我两天的时间,现在就简单的介绍下:系统从上电到进入操作系统大体分为两个阶段:BootLoader和lanch os;所以logo必须在这两个阶段都能够正常的显示。

     添加logo有两种方式一种是以数组的形式保存图像数据,然后memcpy到framebuffer;还有一种方法就是把图片预先放置到flash的指定位置,系统上电的时候,从flash读取图像,然后显示出来;考虑到本系统LCD分辨率比较大,1024*600而且是24位的,所以就采用第二种方法。

     首先将图像通过Image2Lcd软件转化成.bin文件,然后通过EVMFlash3530_v1.2软件烧写到flash的block6以后。

     然后在eboot中调用OALFlashStoreOpen,OALFlashStoreBufferedRead,OALFlashStoreClose来读写flash中的图像数据。

     最后用lcd_config(framebuffer)来显示图像。

几个步骤下来,在BootLoader显示图片没有问题,接下来的就是要在OAL层显示logo,一开始的做法就是在OEMInit函数中添加一个InitDisplay函数,因为三星的BSP都是这么干的,但是在OEMInit函数中读写flash就不那么容易了,系统的flash结构应该是属于fal+fmd结构的,将fmd链接到OAL层,但是调用的时候都是死在flash读写的地方,网友和同事都说可能是flash读写冲突所造成的,但是自己在OEMinit中直接往framebuffer里写值,也是不能正确的显示指定的颜色!那肯定是OAL部分其它地方又初始化了,果然在OALPowerPostInit也就是被kernel调用的,将这句话注释掉,果然BootLoader中的图像一直可以显示到进入CE界面!哈哈,看来虽然是不同的BSP,但是其原理还是差不多的,只不过表现形式不一样罢了~~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值