UEFI学习
文章平均质量分 87
第一次实习所涉及的领域,勉励自己遇到困难不退缩,一直保持学习新东西的态度。乘风破浪会有时,直挂云帆济沧海。
落子摘星
吾尝终日而思矣,不如须臾之所学也。
展开
-
安装EDKII环境遇到的错误解决办法汇总
在刚开始学UEFI时遇到的第一个打击人的困难就是EDKII环境的安装,按照教程来总会遇到让人看不懂的错误,今天把之前遇到的错误及解决办法总结出来。 ①在安装环境时新建的文件夹不要用中文名,以防万一。 ②关于出现C:\NASMnasm不是可执行文件的问题:&n原创 2021-09-26 14:34:47 · 1337 阅读 · 0 评论 -
UEFI中Handle和Protocol的关系
本文参考《UEFI原理与编程》Protocol的设计类似于C++中的类,只不过在UEFI中是用struct代替class,用函数指针模拟成员函数,并且函数指针的第一个参数必须是指向Protocol的指针——用来模拟this指针。这里只简单描述一下Protocol的概念,其他具体的不多说。而Handle和Protocol都是软件上的概念,个人认为把软件的概念和具体的硬件相结合更容易理解Handle与Protocol的关系。那Handle怎么与具体的硬件相结合呢?这就需要了解EFI_HANDLE。EFI原创 2021-09-26 10:45:18 · 1456 阅读 · 0 评论 -
UEFI学习——事件函数WaitForEvent和CreateEvent/CreateEventEx
本文参考戴正华《UEFI原理与编程》1.等待事件的服务WaitForEvent启动服务中的WaitForEvent服务的函数原型:/**等待Event数组内任一事件被触发 @retval EFI_SUCCESS 下表为*index的事件被触发 @retval EFI_UNSUPPORTED 当前的TPL不是TPL_APPLICATION @retval EFI_INVALID_PARAMETER 下标为*index的事件类型为EVT_原创 2021-09-13 10:41:02 · 4237 阅读 · 0 评论 -
读取SMBIOS第二个Type和所有Type41(根据SMBIOS 3.0 (64-bit) Entry Point)
64位的SMBIOS EPS表可以根据SMBIOS 3.x GUID (SMBIOS3_TABLE_GUID, {F2FD1544-9794-4A2C-992EE5BBCF20E394})找到,这在所有遵循SMBIOS规范的BIOS中都是一样的。 #define EFI_SMBIOS3_TABLE_GUID \{ \ 0xf2fd1544, 0x9794, 0x4a2c, {0x99, 0x2e, 0xe5, 0xbb, 0xcf, 0x20, 0xe3, 0x94} \}代码实现的功能是原创 2021-09-07 14:28:44 · 3719 阅读 · 7 评论 -
UEFI学习——使用gRT->GetVariable读取Setup选项值
先列出代码,程序的解释在后面。 代码:#include <Uefi.h>#include <Library/UefiBootServicesTableLib.h>#include <Library/UefiRuntimeServicesTableLib.h>#include <Library/DebugLib.h>#include <Universal\Driv原创 2021-08-30 13:50:29 · 6997 阅读 · 2 评论 -
UEFI学习——SMBIOS笔记
SMBIOS是一套规范,对于符合 SMBIOS 规范的计算机,可以通过访问 SMBIOS 的结构获得系统信息,这里对其介绍不再赘述。本篇文章是将我自己对EDKII代码中SMBIOS的结构体的理解进行一个总结,并结合EDKII里的两个函数对读取SMBIOS信息的程序逻辑提供一个大概的思路。1.SMBIOS结构介绍 上面的图包含了几个独立的结原创 2021-08-27 14:52:45 · 6339 阅读 · 3 评论 -
UEFI学习——读取CMOS信息在Shell上显示时间并一直刷新
x86架构中有两种类型的IO,一种是内存映射的IO(即MMIO,Memory-mapped IO),另一种是端口映射IO(Port-mapped IO)。读取CMOS信息就是使用的端口映射IO,其中,端口0x70是用来设置CMOS中的数据地址,端口0x71是用来读取端口0x70设置的CMOS数据地址中的数据。简单的说,0x70端口写入的是数据地址,从0x71端口读取的是数据,是从0x70端口写入的地址中读取的数据。下面是从CMOS中读取系统时间,并按年/月/日 周几 时:分:秒显示,并一直刷新屏幕。.原创 2021-08-19 13:46:23 · 6875 阅读 · 11 评论 -
UEFI开发,记录第一场胜利——调用一个自己编写的protocol
大四第一个签三方的工作,BIOS的开发,第一次接触这个领域,在实习之前很好奇,也很有兴趣,但是学习BIOS在一开始注定要碰多次壁,原创 2021-03-17 10:37:39 · 3025 阅读 · 16 评论