一些情况下,我们需要在 Shell 下面使用文件进行测试,这次编写一个工具,生成使用随机数填充的文件。为了校验方便,文件的末尾有一个 checksum,按照 32Bits 的 UINTN ,整个文件的和应该是 0 .
#include <Uefi.h> #include &l[......]
一些情况下,我们需要在 Shell 下面使用文件进行测试,这次编写一个工具,生成使用随机数填充的文件。为了校验方便,文件的末尾有一个 checksum,按照 32Bits 的 UINTN ,整个文件的和应该是 0 .
#include <Uefi.h> #include &l[......]
EFI 在设计之初就考虑了多语言的支持,使用HII可以轻松的实现汉字的显示。本篇文章介绍获得汉字字形的其他方法,掌握这种方法之后可以在没有HII支持的情况下显示汉字。当然,程序只是为了演示原理,介绍如何读取16x16的汉字字形信息,没有转为图形。
比如:“宋”字查询到的区位码是4346 【参考3】[......]
我们可以通过EFI_HII_FONT_PROTOCOL【参考1】 中的 GetGlyph来取得一些字符的字形定义。
GetGlyph 的原型可以在 \MdePkg\Include\Protocol\HiiFont.h 中找到:
/** Convert the glyp[......]
最近调试程序的时候遇到一个奇怪的 Warning ,查了一会才找到原因:
c:\edk\AppPkg\Applications\C4066\C4066.c(17) : warning C4066: characters beyond first in wide-character consta[......]
串口是非常有效和廉价的Debug手段,在开发中,几乎所有的UEFI 主板都会支持串口,本文介绍如何在Shell下面实现 串口通讯。
与之相关的是 EFI_SERIAL_IO_PROTOCOL,这个 Protocol 的定义可以在 UEFI Spec【参考1】中看到:
代码如下:[......]
UDK2015 发布已经有一段时间了,这几天正好有需要,所以研究了一下。安装和使用上与之前的版本没什么差别,都是解压 MyWorkSpace到需要的目录中,然后再放入 BaseTools(Windows).zip 中的内容。
但是,发布这个版本的人一定没有在 Windows XP 下次试过,编[......]
某些时候因为一些特殊的原因,使得我们不能直接使用U盘之类的存储设备,比如:不容许使用U盘,只能让你手工编辑文档然后按上机时间收费。但是,只要运行在Windows系统上,USB键盘还能使用,我们就有办法输入我们需要的代码进去。
先说一下原理,Windows自带了一个叫做“写字板”的程序,他定义了[......]
我们在 EDK2 的代码中能看到 Shell下部分命令的代码,这里介绍如何把这样的代码提取出来做成能够独立编译和运行的程序。简单起见,以 Stall 命令和 MV 命令为例。
经过试验,这些命令中使用到的大部分函数都可以在 ShellLib.h 中找到,我们要做的只是把这个文件copy一份到[......]
实验了一下之前买的一个 Micro SD Card的模块【参考1】
SD卡是工作在 3.3v电压下面的,这个板子最主要的作用是实现5v转3.3v。我使用的是 Arduino Micro Pro.线路接法如下:
SD Card
Arduino Pro[......]
前面介绍了如何在 Shell下 Dump 系统中各种 ConfigurationTable的方法,这里介绍一下如何取得 ACPI 的 DSDT Table。
简单说一下原理:
1. 在ConfigurationTable中查找 GUID 为 ACPI_TABLE_GUID 和 EFI_ACP[......]