【问题标题】:ARM UEFI C StdLib BDSARM UEFI C StdLib BDS
【发布时间】:2017-01-09 08:46:07
【问题描述】:

据我了解,如果我使用 StdLib Pkg 构建 UEFI 应用程序,它依赖于 ShellPKg,并且应用程序必须通过新的 Shell(UEFI Interactive Shell v2.1 EDK II UEFI v2.60)启动。因此,通过使用 ShellPkg 构建的 2.1 Shell 手动启动应用程序是可行的,但不能使用 EBL shell 或通过 gBS->StartImage。

对于我的问题:是否可以通过 BDS(启动设备选择)启动使用 StdLib 构建的库的 UEFI 应用程序,而无需先启动 Shell 并使用 startup.nsh 启动您想要的 UEFI 应用程序?

例如尝试使用 StdLib 启动 UEFI 应用程序,在 BDS 中使用以下命令将无法正常工作,因为它不是通过 Shell 启动的: 状态 = gBS->StartImage(ImageHandle, NULL, NULL);

所以我想要实现的是在 BDS 启动期间执行带有 StdLib 包的 UEFI 应用程序的函数调用。最好不要通过启动脚本。

BR 吉古

【问题讨论】:

  • 为什么需要 StdLib?不能去掉对 StdLib 的依赖吗?

标签: arm std uefi


【解决方案1】:

是的,您可以通过 BDS 执行 UEFI 应用程序。

要通过 BDS 启动/执行 UEFI 应用程序,我们需要使用 BOOT#### NV 变量来启动/执行 UEFI 应用程序。

要通过 BDS 加载 UEFI 驱动程序,我们可以使用 DRIVER#### NV 变量来加载 DXE、UEFI 驱动程序。

使用这种方式我们不需要使用 Starup.nsh 方式或 Shell 环境来启动/执行 UEFI 应用程序。

【讨论】:

    猜你喜欢
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 2012-09-11
    • 2015-10-28
    相关资源
    最近更新 更多