【问题标题】:Customize bootloader splash screen for non x86 targets为非 x86 目标自定义引导加载程序启动画面
【发布时间】:2012-06-01 15:16:57
【问题描述】:

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

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

【问题讨论】:

  • SU 的标志。仅仅因为它处理创建操作系统,并不意味着它适用于 SO
  • @ColeJohnson:我不同意。根据他们的常见问题解答,SU 的范围似乎朝向computer enthusiasts, power users。这两种情况都不是。
  • 同意,这是一个开发问题——特别是关于操作系统/平台开发的问题——对 SO 来说是公平的游戏。

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


【解决方案1】:

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

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

由于我们不知道您使用的是什么引导加载程序,因此我什至不会冒险猜测您的工作原理。您最好的选择是查看您的平台文档并查看是否对其进行了描述,或者与 OEM 联系。如果您碰巧是 OEM,则必须查看您正在使用的任何引导加载程序的源代码。

【讨论】:

  • 谢谢。这实际上有助于显着地指出我要去哪里。我们已经(稍微)修改了 BSP 中包含的引导加载程序。
  • 看帧缓冲初始化区域。通常它会在那之后立即被涂上。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    相关资源
    最近更新 更多