WinCE动态修改启动LOGO

    前两天介绍了WinCE启动界面的定制,在实际应用中经常还需要让用户方便修改启动LOGO。通常情况下,启动LOGO是编译到BOOT代码中的。为了实现动态修改启动LOGO,需要将LOGO保存至Flash中,BOOT启动时从特定的位置将其读取出来,并填入FrameBuffer。另外,必须让用户能够通过应用程序在WinCE系统中修改Flash中保存的LOGO。为了方便BOOT中显示,一般会在PC上利用Img2LCD将图片文件转换为能够直接填充进FrameBuffer的格式。如果要让该功能更灵活,则必须在WinCE上实现类似于Img2LCD的功能,直接让用户选择不同格式和大小的图片,转换完成后直接写入Flash中。

    启动LOGO在Flash中存储的位置也是需要考虑的一个问题。最简单的方法就是将其放在WinCE内核的后面。这样BOOT中读取LOGO跟读取内核可以用一套代码。同样,WinCE应用程序中更新内核与更新LOGO也可以用一套代码。只是在划分空间时,需要留出一些余量,以免以后在调整的过程中捉襟见肘,不够灵活。

    在我目前使用的平台上,4GB大小的NAND划分如下。

 

    可以看到BOOT占4MB,System占4KB,用于存储一些必要的数据,Kernel用于存储NK.nb0,目前为56MB,后面剩下8MB的空间就可以用来存储一张或者多张启动LOGO。实际上启动LOGO存放的位置是60MB,与Kernel之间留有4MB的余量,以防后患。4MB用来存LOGO,至少可以存的下一张分辨率为1024*768的32位色图。

    应用程序中添加一小段类似于更新NK的代码实现更新LOGO.bin文件,界面如下。

    目前已经基本实现了以上所说的动态更新LOGO的功能,接下来主要考虑如何支持多种格式、多分辨率和不同位色的图片文件,也就是在WinCE系统上实现一个类似于Img2LCD的软件。

时间: 2024-10-09 23:48:05

WinCE动态修改启动LOGO的相关文章

ARM开发板嵌入式Linux修改开机启动LOGO的方法

1.嵌入式 Linux LOGO显示原理 嵌入式Linux是直接在FrameBuffer的基础上.直接显示一个ppm格式的图象.它 kernel/drivers/video/fbcon.c中的fbcon_show_logo()完成,最大颜色支持224色而不常见的255色. 默认的logo文件是 drivers/video/logo/logo_linux_clut224.ppm. 2.制作流程 因为LINUX LOGO格式需要ppm格式来显示.这种格式是一种用ASCII来描述图像数据一种格式.一般

run.conf配置文件可以在JBoss启动的过程中通过脚本来动态修改么?

问题描述 run.conf配置文件可以在JBoss启动的过程中通过脚本来动态修改么? hello,现在情况是这样的,多个应用在一个JBoss上,共用一个run.conf文件,但是现在相对部分的应用中的JVM参数进行修改:所以想到,是不是能够在JBoss启动的是,针对应用将run.conf进行动态的修改?具体修改只是要加入一条java_opts.

hibernate3-在j2ee环境下如何实现数据库表的动态修改!

问题描述 在j2ee环境下如何实现数据库表的动态修改! 如何实现已经部署启动的应用通过前端的点击来增加或删除某个数据表的字段,有没有什么持久层框架能实现?或者jdbc? 如果表结构改了! javaBean 如何随着表结构一起修改? !!!!前提是服务器已经启动,部署成功!!!!! 急切求大神们解答!!!!!!!! 解决方案 更改表结构:execute immediate 'alter table add column **' using ** Java不是解释型语言,需要先编译才能运行. 使用h

自己动手丰衣足食之轮播图一动态修改marginTop属性实现轮播图

  引言      学习jQuery有年头了,刚开始学习时自己动手写过轮播图,放的久了以至于忘了大致思路了.现在转而做前端,抽空把jquery轮播图拿出来写一写,把各种思路都自己练习练习,这里主要使用动态修改marginTop来实现. 实现原理      1.除第一张图片外,其余图片全部隐藏,4张图片重叠起来.      2.导航按钮添加mouseover和mouseleave事件.      3.设置interval函数,启动定时器调用ShowImg函数.      4.动态修改marginT

微信的分享功能,每次调用分享功能的时候可以动态修改标题吗

问题描述 微信的分享功能,每次调用分享功能的时候可以动态修改标题吗 我现在做了一个h5的小游戏,每次用户玩完游戏后,用户要分享到朋友圈的时候,获取用户成绩,然后分享,是否配置好的标题修改呢 解决方案 可以 用js 修改 title 或者接入 jssdk Ajax.post({ url:"<%=basePath%>external/queryJssdk.action", dataType:"JSON", data:"url="+url,

quartz 定时器-Quartz 定时器动态修改执行时间修改后出现立即执行情况

问题描述 Quartz 定时器动态修改执行时间修改后出现立即执行情况 问题描述: Spring 启动时加载定时器 执行点为 0 0 12 * * ? * 也就是每天12点执行 在11点左右修改为 0 0 14 * * ? * 也就是让它每天14点执行. 在12点多后又重新修改为 0 0 12 * * ? * 此时定时器立即执行了. 想知道是什么原因? 修改定时器的代码如下:job.getJobExpression() 就是传入的修改的执行时间 /** * @Title: modifyJobTim

关于动态修改类属性的问题

问题描述 最近遇到一个关于动态修改类属性可见性的问题定义形状.半径.长度.宽度四个属性,其中形状枚举圆形和矩形两种,选择圆形时显示半径属性不显示长宽,选择矩形时显示长宽不显示半径属性.在网上查到了下面的代码,可以实现这个操作:///<summary>设置属性的可见性</summary>/// <param name="obj">属性所属的类</param>/// <param name="propertyName"

任务调度(二)——jdk自带的Timer 动态修改任务执行计划

       上一篇博文<任务调度(一)--jdk自带的Timer>中,简单介绍了一下Timer,本文将分享一下如何动态修改Timer制定的计划.        先上代码: package com.tgb.ccl.schema.dynamic; import java.util.Date; /** * 可动态修改的任务 * * @author arron * @date 2015年5月9日 下午1:52:15 * @version 1.0 */ public class DynamicTime

Delphi实现动态修改显示器分辨率

本实例演示如何在程序中动态修改屏幕的分辨率,并且不需要重新启动计算机就可以生效. 向窗体上添加两个Button控件,设计完成的主界面如图1所示. 图1 主界面 在程序中添加一个自定义函数DynamicResolution,它有两个参数,分别对应于水平和垂直方向的分辨率,并且该函数有一个BOOL类型的返回值,通过判断返回值可以判断DynamicResolution函数是否正确执行.DynamicResolution函数代码如下: function TfrmMain.DynamicResolutio