Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C DebugPrint推送空行(串行连接)_C_Edk2 - Fatal编程技术网

C DebugPrint推送空行(串行连接)

C DebugPrint推送空行(串行连接),c,edk2,C,Edk2,在决定用EDK2编写一个简单的“Hello World!”程序时, 我偶然发现了以下问题: 由于我使用串行连接进行调试,调试函数的输出(如DebugPrint成功地重定向到我的串行终端(本例中为PuTTY),这是一种很好的方式 在UEFI外壳中编译并执行以下程序后,我只需 结果是空行。 但在再次执行相同的二进制文件后,该行将以其全部优点成功打印出来 这是我运行的程序的源代码: #include <Uefi.h> #include <Library/DebugLib.h>

在决定用EDK2编写一个简单的“Hello World!”程序时, 我偶然发现了以下问题:

由于我使用串行连接进行调试,调试函数的输出(如DebugPrint成功地重定向到我的串行终端(本例中为PuTTY),这是一种很好的方式

在UEFI外壳中编译并执行以下程序后,我只需 结果是空行。 但在再次执行相同的二进制文件后,该行将以其全部优点成功打印出来

这是我运行的程序的源代码:

#include <Uefi.h>
#include <Library/DebugLib.h>

EFI_STATUS
efi_main(EFI_HANDLE ImageHandle, 
    EFI_SYSTEM_TABLE* SystemTable
    )
{
    DebugPrint(DEBUG_INFO, "Hello World!\n");
    return EFI_SUCCESS;
}

#包括
#包括
EFI_状态
efi_主(efi_句柄ImageHandle,
EFI_系统_表*系统表
)
{
调试打印(调试信息,“你好,世界!\n”);
返回EFI_成功;
}
串行输出:

注意:我将我的程序链接到IoLibSerialPortLibDebugLib


是什么导致了这个问题?

经过大量的修改,我意识到我手动指定了我的主函数的入口点(
efi_main
),当使用EDK2中的UefiDriverEntryPoint库时,它应该指向
\u ModuleEntryPoint


这立刻解决了我的问题:)

尝试
DebugPrint(DEBUG_INFO,“Hello World!\n”);调试打印(调试信息,“你好,世界!\n”)
调试打印(调试信息,“Hello World!\n Hello World!\n”)看看发生了什么事已经试过了,但遗憾的是也没用