为非x86目标自定义引导加载程序启动屏幕

时间:2012-06-01 15:16:57

标签: windows-ce splash-screen platform-builder

我正在构建针对ARM9架构的Windows CE 6.0R3中的操作系统(特别是iMX28系列),我想在首次启动设备时更改启动屏幕以显示自定义映像。

我该怎么做?我读了一些相当vague and sparse bits of documentation的内容,建议您需要以.bmx格式创建并启用视频,但我无处可看到如何实际更改设备显示时显示的启动画面启动了。

2 个答案:

答案 0 :(得分:2)

这取决于。一般来说,它是引导加载程序,它控制显示控制器的初始化并将数据发送到控制器,以便在加载OS之前出现的初始图像和它的显示驱动程序接管。在使用Platform Builder附带的开箱即用BIOS引导加载程序的典型 x86 目标设备中,它将加载splash.bmx(压缩的BMP)并显示该内容。

在我所知道的所有基于ARM的情况中,BIOS引导加载程序用于加载映像的内容,而是BSP或特定于供应商的加载程序。我已经看到了从自定义OEM引导加载程序到redboot衍生产品的各种各样的东西。在这些情况下,您必须知道如何设置引导加载程序以显示启动图像以及如何配置它(如果您可以 - 有些是硬编码的)。

由于我们不知道您使用的引导加载程序,因此我甚至无法猜测您的工作方式。您最好的选择是查看平台文档并查看其是否已描述,或与OEM联系。如果您恰好是OEM,那么您必须查看您正在使用的任何引导加载程序的源代码。

答案 1 :(得分:0)

在查看了ctacke推荐的内容之后,我发现对于我的操作系统项目中使用的iMX28-eVK-PDK1_9 BSP,我需要修改display.c中的代码。

具体来说,它是在iMX28-EVK-PDK1_9\SRC\BOOTLOADER\COMMON\display.c下的平台项目中找到的。函数ShowBmp用于从固定的内存位置加载位图。我必须调整ShowBmp的代码,而不是将所需的位图写入屏幕而不是默认的飞思卡尔图像。

默认情况下,ShowBmp从内存位置读取位图图像,并将其逐像素写入设备屏幕。我们真正改变的唯一事情是我们正在从我们的记忆位置读取。