WinCE6.0 修改开机Logo方法

开机Logo的修改方法主要有两种:

方法一:定义一个头文件,里面包含一个很大的数组,都是图片的相关数据,一起打包到Eboot的bin文件中。这种方法优点是简单直接,缺点是

图片不能太大,否则会导致Eboot太大,而且后期的Logo更新也变的很麻烦。

方法二:将图片的相关数据烧写到Nand Flash的某个固定地址,Eboot初始化LCD时从该地址读取数据,放入显示缓存里面就可以了。这种方法灵

活,可以支持比较大的图片,而且后期Logo更新比较容易,缺点就是比方法一复杂,需要改动Eboot的源代码。

今天先给出方法一的详细实现方案,实验平台:WinCE6.0+Android6410 +4.3寸CLD。

在Eboot中需要对LCD进行初始化工作(虽然不是必须的,但目前大多都这样做),即在函数OEMPlatformInit中由InitializeDisplay函数来实

现,开机Logo的设置就在这个函数里面。(如果不清楚请参看博文http://jazka.blog.51cto.com/809003/603457)

如果只是想简单的设置Logo为单色的话,直接使用下面代码就可以了,是4.3寸屏下RGB565格式的填充方法。

#elif (LCD_BPP == 16)

{

int i;

unsigned short *pFB;

pFB = (unsigned short *)EBOOT_FRAMEBUFFER_UA_START;

for (i=0; i<lcd_width*lcd_height;

*pFB++ = 0x0000;//0x001F; // Blue

如果想设置为自己的图片,那么就需要对图片进行转换了,那么就设计到转换工具的事情了。网上有很多转换工具,也可以自己写一个应用程序

完成转换,但是需要保证以下几点:

第一,根据工具的不同选择相应的图片,有些工具是针对特定图片设计的数据转换,比如有点只能处理BMP格式的图片,有点只能处理24位色的

等等,会有很多限制;

第二,转换完成以后,查看转换后的数组内容,字节是否足够,比如LCD是480*272的分辨率,需要的数据便是480*272*2个字节,如果转换

后的数据量不匹配,显示出来的效果肯定是不正确的。

假设图片转换成的数组名称为const unsigned int InitialImage_rgb16_480x272[],那么只需要执行如下操作即可:

#if(SMDK6410_LCD_MODULE == LCD_MODULE_UT_LCD43D)

memcpy((void *)EBOOT_FRAMEBUFFER_UA_START, (void *)InitialImage_rgb16_480x272, 480*272*2);

当然也可以采用上面那种方法,采用for循环,将数组内容以一定大小,一个一个的填充到显示缓存当中。

看到网上很多都说在使用这种方法时会出现花屏,除了上面两点没有保证外,还有一个可能的原因是最容易被忽视的:

不同的工具转换后的数组形式不一样,可能是char数组,可能是unsigned short数组,也可能是unsigned int数组,当将这些数据填充到显

示缓存的时候,有一个高地位的问题。比如如下代码:

unsigned short* pFB = (unsigned short *)EBOOT_FRAMEBUFFER_UA_START;

*pFB = 0x001F;

这种情况下,存储到显示缓存中的第一个字节其实是0x1F,而并不是0x00,不管是采用for循环填充还是用memcpy填充,都存在一个图片数

据与显示缓存的匹配问题,如果不匹配,就会发生大家所说的花屏现象。

时间: 2024-10-28 17:06:41

WinCE6.0 修改开机Logo方法的相关文章

开机logo以及两种修改开机动画方法

Android开机画面总共有三屏 一.第一屏:开机logo 1.选张png格式的图片,在Linux任意下执行(安装工具): sudo apt-get install pnmtoplainpm 2.在所要定制logo的pngtopnm logo.png目录执行(转换成pnm格式): pngtopnm logo.png > logo_linux.pnm 3.再执行(转化成224的pnm图片): pnmquant 224 logo_linux.pnm > logo_linux_clut224_for

安卓修改开机logo

这里我们是在ubuntu下进行操作我是用root用户登陆的,首先安装netpbm库 执行:apt-get install netpbm 对于Android系统最开始表现logo是在内核当中,所以首先我们要修改内核中的logo. 一.内核中相关修改 编译linux内核logo制造脚本mklogo.sh,内容如下: #!/bin/sh pngtopnm logo.png > linuxlogo.pnm pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm pn

Android开机logo修改方法 【转】

本文转载自:http://blog.csdn.net/qq258711519/article/details/7766303 一体机平台开机logo修改方法 1:修改Kernel中的Logo: 若是要替换Kernel中的开机Logo,只需要把内核目录drivers/video/logo下的logo_android_1024_clut224.ppm文件替换掉即可(注意要保持名字一样,在IMT的SDK里没有这个ppm,默认选择了Standard 224-color Linux logo).然后从新编

修改linux内核kernel开机logo(小企鹅)

修改linux内核kernel的开机图片(原为小企鹅图片). 转载请注明出处:http://blog.csdn.net/wang_zheng_kai 导航制导与控制实验室 2014年12月10日 本文主要是介绍三部分内容: 1>如何制作linux内核所需要的开机图片(ppm格式): 2>修改开机图片的两种方法: 3>调试过程中的问题与技巧: 一.如何制作linux内核所需要的开机图片(ppm格式) 1>在ubuntu系统上安装netpdm,命令如下: # sudo apt-get

Android 系统开机logo的修改【转】

本文转载自:http://blog.csdn.net/yandongqiangZHRJ/article/details/8585273 看到了好几个修改logo的博文,但是说的不是很清楚,在这里亲手送上通过自己的动手修改过验证后的方法. Android 开机其实总共会出现3个画面: 1.第一个就是 Linux 系统启动,出现linux小企鹅画面(reboot): 2.当android系统从Linux内核启动后,将会执行anddroid平台的初始化过程,屏幕上将会出现”A N D R I O D”

Linux修改开机启动logo

默认开机LOGO会在液晶屏的左上脚显示一只小企鹅,分辨率为80*80,具体在kernel/drivers/video/logo下会有logo_linux_clut224.ppm这幅图像,程序会根据这幅图像生成logo_linux_clut224.c和 logo_linux_clut224.o两个文件,最终将小企鹅显示在液晶屏上. 这里我们需要修改开机画面,而且不限于仅显示80*80,如我们需要显示一幅铺满LCD屏的图像,该怎么办呢? 为了以后还能恢复显示这个小企鹅,这里我们另外再添加一组数据用于

修改u-boot的开机logo及显示过程【转】

本文转载自;http://blog.csdn.net/voice_shen/article/details/6789424 [ u-boot: Git://git.denx.de/u-boot.git] [tag: v2011.09-rc1 ] 修改u-boot的开机logo其实很简单.请见下面步骤. 1. 获取一张BMP的图片,修改之,让其色深为8位,即256色,如果用24位,则显示出问题,(至于是否能用24位,有待深究). 2. 将制作好的BMP图片,放置到<u-boot>/tools/l

zookeeper 3.5.0 修改管理控制台监听端口的方法

zookeeper 3.5.0 修改管理控制台 jetty 的监听端口是通过参数-Dzookeeper.admin.serverPort=8088来实现的 而不是-Djetty.port=8088,源代码为 org.apache.zookeeper.server.admin.JettyAdminServer 中的64-67行 public JettyAdminServer() throws AdminServerException {        this(Integer.getInteger

设置安卓开机动画、开机logo

我们要改动的是system>media目录下的bootanimation.zip(手机开机动画)这个文件 先来讲讲这个文件结构:该zip解压后得到两个文件, 第一个文件夹存放了开机时播放的图片(图为佳域G3原厂的动画图片包),见下图: 图片编号001,002,.......010这些是用来控制图片播放顺序的 .第二个 desc. txt的文本文档存放的数据和文字用来控制播放图片的速度(帧速)和播放方式,见下图: 下面讲解这些文字数据的含义:720表示图片像素宽为720像素点 1280表示图片高为