WinCE60 修改开机Logo方法集锦.pdf_第1页
WinCE60 修改开机Logo方法集锦.pdf_第2页
WinCE60 修改开机Logo方法集锦.pdf_第3页
WinCE60 修改开机Logo方法集锦.pdf_第4页
WinCE60 修改开机Logo方法集锦.pdf_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WinCE6 0 修改开机 Logo 方法集锦 从今年4月份开始接触 WinCE 本来计划坚持写相关的博客 记录自己 WinCE 的学习历程 但整个8月份就断层了 这里面有客观原因也有主观原因 工作上的事不顺心啊 项目上需要写 WinCE 上的应用软件开发 无奈 只能把 精力从底层驱动方面撤出来了 其实可以坚持非工作时间学习的 怪自己懒啊 这次重新拾起 一定要坚持下去了 WinCE 终端开发 一般都会涉及到开机 Logo 的工作 单位项目也不例外 正好借此机会 好好研究一下 网络上关于这个问题的帖子不少 主要集中在 csdn 论坛上 思路也都比较清楚 不过就是不够细 所以自己也费了些时间研究 顺便把网上提到的所有方法都尝试汇总一下 于是便有了这个系列 目前只测试 了两种方法 所以先记录下来 后续不断完善其他方法 为了尊重前辈和他人的劳动成果 在博文中会将引用的内容给出声明和链 接 下面进入主题 开机 Logo 的修改方法主要有两种 方法一 定义一个头文件 里面包含一个很大的数组 都是图片的相关数 据 一起打包到 Eboot 的 bin 文件中 这种方法优点是简单直接 缺点是图片不 能太大 否则会导致 Eboot 太大 而且后期的 Logo 更新也变的很麻烦 方法二 将图片的相关数据烧写到 Nand Flash 的某个固定地址 Eboot 初 始化 LCD 时从该地址读取数据 放入显示缓存里面就可以了 这种方法灵活 可以支持比较大的图片 而且后期 Logo 更新比较容易 缺点就是比方法一复杂 需要改动 Eboot 的源代码 今天先给出方法一的详细实现方案 实验平台 WinCE6 0 Android6410 4 3寸 CLD 在 Eboot 中需要对 LCD 进行初始化工作 虽然不是必须的 但目前大多 都这样做 即在函数 OEMPlatformInit 中由 InitializeDisplay 函数来实现 开机 Logo 的 设 置 就 在 这 个 函 数 里 面 如 果 不 清 楚 请 参 看 博 文 如果只是想简单的设置 Logo 为单色的话 直接使用下面代码就可以了 是4 3寸屏下 RGB565格式的填充方法 elif LCD BPP 16 int i unsigned short pFB pFB unsigned short EBOOT FRAMEBUFFER UA START for i 0 i 0 add by jazka 2011 09 05 start case G case g OALMSG TRUE TEXT Please send the Logo through USB r n g bUSBDownload TRUE DWORD dwStartAddr 0 LPBYTE lpDes NULL lpDes LPBYTE FILE CACHE START if OEMReadData LCD WIDTH LCD HEIGHT 2 lpDes OALMSG TRUE TEXT Error when sending the Logo through USB r n SpinForever dwStartAddr DWORD lpDes if WriteLogoToBootMedia dwStartAddr DWORD LCD WIDTH LCD H EIGHT 2 dwStartAddr OALMSG TRUE TEXT Error when WriteLogoToBootMedia r n SpinForever break end 这里把 g bUSBDownload 设置为 TRUE 以便后面选择 USB 进行下载 由于 USB 下载的速 度和写 Flash 速度不匹配 所以先下载到内存中 然后在一下子写入 Flash 中 这部分详解 见博客 WriteLogoToBootMedia 便是 Flash 的写 函数 后面给出实现 3 修改 LCD 初始化函数InitializeDisplay 修改代码如下 Fill Framebuffer if SMDK6410 LCD MODULE LCD MODULE UT LCD35A memcpy void EBOOT FRAMEBUFFER UA START void InitialImage rgb16 320 x240 320 240 2 elif LCD BPP 16 delete by jazka 2011 08 31修改开机启动界面 int i unsigned short pFB pFB unsigned short EBOOT FRAMEBUFFER UA START for i 0 i LCD WIDTH LCD HEIGHT i pFB 0 x0000 0 x001F Blue pFB 0 x001F modify by jazka 2011 07 22 pFB InitialImage rgb16 480 x272 i add by jazka 2011 08 31 memcpy void EBOOT FRAMEBUFFER UA START void InitialImage r gb16 480 x272 480 272 2 modify by jazka 2011 09 07 DWORD dwReadAddr DWORD EBOOT FRAMEBUFFER UA START if DisplayLogoFromBootMedia dwReadAddr DWORD LCD WIDTH LCD HEI GHT 2 dwReadAddr int i unsigned short pFB pFB unsigned short EBOOT FRAMEBUFFER UA START for i 0 i 0 g ImageType IMAGE TYPE LOADER Eboot image return TRUE 这里需要强调一点的是添加的这部分代码 放置的位置 从原来的代码可以看出 依次是 stepldr bin eboot bin nk bin 他们的存放地址和大小都是依次递增的 而 Logo bin 的地址是这里面最大的 可能因平台不同而不同 但是大小仅比 stepldr bin 大一些 所以最好放置到 stepldr bin 的操作代码之后 否则会执行到 其他的 if 语句中 这点仔细阅读代码可以发现了 4 修改 OEMLaunch 函数 添加将 Logo bin 写入 Nand Flash 中的操作 add by jazka 2011 09 14 for logo bin start case IMAGE TYPE LOGO if WriteLogoToBootMedia dwImageStart dwImageLength dwL aunchAddr OALMSG OAL ERROR TEXT ERROR OEMLaunch Failed to store image to Smart Media r n goto CleanUp OALMSG TRUE TEXT INFO Logo image stored to Smart Med ia Please Reboot Halting r n while 1 Wait break start 这里判断是 Logo bin 后 调用函数 WriteLogoToBootMedia 将图片数据写入到 Flash 中 关于该函数后面介绍 5 修改 InitDisplay 函数 启动时调用函数 DisplayLogoFromBootMedia 读 取 Flash 固 定 地 址 然 后 将 数 据 填 充 到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论